quinta-feira, 30 de julho de 2015

O que precisamos saber sobre: DB HFSQL

Informações sobre: DB HFSQL
By: Wladimir Albuquerque Silva, Eng TI
Revised By: José Jorge Matos

Como todos sabem o HFSQL é o Banco de Dados Nativo das Ferramentas PcSoft.
Há duas versões que podemos trabalhar com o Data Base HFSQL:
·         HFSQL Classic
·         HFSQL Client/Server

Onde se encontram Fisicamente estes Arquivos.
Eu tinha grande dificuldades em entender onde encontraria os arquivos fisicamente no HD do meu micro, pois como por muito tempo eu utilizei o Access (.MDB) eu não conseguia entender como era o comportamento do HFSQL.

Pois bem, vamos o que interessa.
Os arquivos .FIC são as tabelas com os Dados Armazenados.
Os arquivos .NDX são apoios aos “arq.FIC” e ficam no mesmo local/Pasta, contém informações de indexação.
·         HFSQL Classic
Quando criamos na Análise, estrutura da Tabela, uma tabela com o nome CLIENTE, e após criar a Janela e todos os seus controles, ao executar pela primeira vez o Teste do Projeto (GO!), será criado no local onde está sendo desenvolvido o Projeto o Arquivo “CLIENTE.FIC”, dentro da Sub-Pasta “\EXE”.
Todas as Tabelas e seus Índices serão Criados nesta Pasta/Diretório.

Entendendo o que ocorre com os Arquivos HFSQL Classic, podemos alterar MANUALMENTE a Base de Dados para testar em DB diferentes, por exemplo, imagine que temos uma tabela preenchida com 1000(hum mil) registros na tabela de CLIENTE e esses são dados reais, ao fazer alterações e realizar TESTES (GO!) no WD podemos começar a colocar sujeiras nessa base e depois perder a sequência de ID e tantas outras coisas, ou seja, populacionar a DB com registros irreais.
Para resolvermos este problema, e é muito comum utilizarmos desse recurso, devemos tão somente copiar os Arquivos “CLIENTE.FIC” e “CLIENT.NDX” para um outro diretório, e após todos os TESTES realizados, podemos retornar com os Arquivos ao local original.
ATENÇÃO:
Associe os Arquivos “file.FIC”, quando sofrerem um Duplo Click ou Enter, para abrir com o Executável WDMap.EXE que se encontra dentro da Pasta Programs dentro do Diretório onde o WinDev foi instalado.
Isso facilitará dar manutenção diretamente nas Tabelas “.FIC”, podendo inclusive Copiar e Colar dados de outros aplicativos como Planilhas Excel, arquivos MDB, e tantas outras possibilidades.
  
·         HFSQL Client/Server
Tudo que falamos para o HFSQL Classic também se aplica a esta versão, apenas com alguns detalhes.
Quando instalamos o HFSQL Client/Server, definimos onde seria o Servidor, normalmente “LocalHost”.
No meu caso ele se encontra: C:\PC SOFT\LocalHost
Dentro dessa Pasta você encontrará outras sub-pastas, procure por algo como “HFSQL server”, digo “algo” porque o nome pode mudar de acordo com o perfil de instalação e/ou a quantidade de vezes que Excluímos e Criamos novos Servidores.
Dentro da Pasta, no meu caso o caminho é: “C:\PC SOFT\LocalHost\HFSQL Server_2”, vamos encontrar mais uma sub-pasta “BDD”, enfim aqui estão todas as Bases de Dados criadas pelo Desenvolvedor, podem ter tantas quantas necessárias, cada DB será criado uma nova Pasta com o mesmo nome da DB, dentro dela encontramos todos os Arquivos “.FIC” mencionados na versão HFSQL Classic.
ü  Como utilizar vários DB, por exemplo: um para Teste de desenvolvimento e outro com Dados Reais?

Para este caso, aconselho abrir a Conexão com o Servidos, através do Aplicativo “HFSQL Control Center” na seleção de Servidor forneça as informações necessárias, após abrir a conexão selecione o DB que está trabalhando e com um Click do Botão Direito do maous, no menu suspenso, selecione DUPLICAR, uma replica exata do DB será criada, mais uma Pasta dentro do LocalHost (lembra?), e agora você pode através de conexões dentro do seu aplicativo alterar a sua DB, e assim Preservar a DB Real da DB para Testes.

ATENÇÃO:
Sempre utilizo o comando: HOpenConnection(Wiazard...
A estrutura, pode inicialmente ficar no Projet Code, ou seja, é a Primeira ação a ser executada.
Minha estrutura de Conexão final fica assim, por exemplo:


Connect_WAS is Connection //Declaração do Nome da Conexão


// Parâmetros da Conexão, Linhas Criadas através do WIZARD
Connect_WAS..Provider = hAccessHFClientServer // Informe o Provider
Connect_WAS..User = "Admin" // Informe o Usuário do Servidor
Connect_WAS..Password = "" // Informe a Senha do Servidor
Connect_WAS..Server = "LocalHost:4900" //Informe o Servidor e a Porta de Conexão
Connect_WAS..Database = "Nome_da_DB" // Informe o Nome da Data Base
Connect_WAS..CryptMethod = hCryptNo // Informe se está Criptografado ou Não

// Abre a Conexão, se há ERRO, mostra Aviso e sai do Programa.
IF HOpenConnection(Connect_WAS)=False THEN
       Info("Erro na Conexão: ",HErrorInfo())
       EndProgram()
END


//Força usar a Conexão desejada à todas as Tabelas
HChangeConnection("*",Connect_WAS)

HCreationIfNotFound("*"//CRIAR AS TABELAS QUANDO ELAS NÃO EXISTIREM


OBSERVAÇÃO:
Utilizar HCreationIfNotFound("*")  apenas em ambiente de desenvolvimento, porque em produção e no caso de uma aplicação com muitas tabelas, essa função degrada o arranque do programa, porque faz uma verificação de todas as tabelas da análise, "conferindo" se as mesmas existem no banco de dados.
Noutras palavras, a instrução HCreationIfNotFound("*"), deve e pode ser utilizado, quando por exemplo, você está desenvolvendo um Projeto e precisa fazer algumas considerações como populacionar sua DB antes mesmo de fazer os primeiros Testes.





Nenhum comentário:

Postar um comentário