Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

AlexandreSC

Mapeamento de acesso ao banco de dados

Recommended Posts

boa noite pessoal,Eu fiz uma aplicação bem simples em Delphi utilizando o banco de dados firebird, só que estou com uma dúvida, que tenho certeza ser básica, até porque não sou pogramador e tão pouco tenho experiência, estou mesmo é aprendendo.Bom vamos lá então. Na minha aplicação criei um datamodule e neste tenho alguns componentes para acesso ao banco, neste caso um SQLConnection e uma query. Na propriedade params do meu SQLConnection eu setei a key database com o endereço do meu arquivo do banco de dados, por exemplo 10.217.80.34:\bd\bd_teste.gdb. Até aí tudo ok, funciona perfitamente. Mas como eu tenho que instalar a aplicação de forma a mapear um endereço de banco, o sitado no exemplo e hora eu tenho que instalar a aplicação mapeando outro endereço para o banco, como eu faço isso sem ter que fazer essa alteração no fonte e sim em tempo de execução, do tipo informo qual é o endereço e uso ele sempre até que precise mudar por algum motivo. Mas que eu possa fechar a aplicação e quando abrir novamente eu não precise dizer novamente onde está o arquivo do BD.Obrigado.Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda, mas não é bem isso que eu preciso.A conexão com o banco está ok, funciona tudo direitinho.O que eu descobri é que dá para fazer uso de um arquivo *.ini, o qual é lido pela minha aplicação e é neste arquivo ine que estão algumas parametrizações do SQLConection, dentre elas está o endereço do banco de dados.Sacou a facilidade, eu só edito o arquivo *.ini para "apontar"para outro endereço do meu banco de dados, sem ter que recompilar a aplicação.O problema é que o livro que eu estou pesquisando é meio velho e se reporta aos componentes DBX, que não possui as mesmas funções,atributos...e etc que os componentes dbExpress, com isso não consigo fazer funcionar.ObrigadoAlexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia pessoal,

 

Obrigado pela ajuda, eu consegui agora.

Andei de site em site e pegando um pouco de cada um até que deu certo.Vou postar a solução, assim talvez fique claro o que eu queria e sirva para outros. Valeu mesmo!

 

No diretório onde está a minha aplicação eu crio um arquivo, por exemplo, parametros.ini. O conteúdo deste arquivo nada mais é que o conteúdo da proprieade Params do componente SQLConection que está inserido no meu dataModule, só que nele, o parâmetro database está setado como database = 10.16.64.12:\bd\banco.gdb.

 

Fica assim o arquivo:

 

DriverName=Interbase

Database=10.16.64.12:\bd\banco.gdb

RoleName=RoleName

User_Name=sysdba

Password=masterkey

ServerCharSet=

SQLDialect=3

ErrorResourceFile=

LocaleCode=0000

BlobSize=-1

CommitRetain=False

WaitOnLocks=True

Interbase TransIsolation=ReadCommited

Trim Char=False

Pronto, acabou o arquivo .ini.

 

Agora vamos para o código a ser escrito.

No evento onCreate do DataModule vai o seguinte código:

 

SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName) + 'parametros.ini');

SQLConnection1.Connected := True;

e na cláusula uses do datamodule é importante que seja declarado Forms. Veja Abaixo o exemplo da minha:

 

uses

SysUtils, Classes, DBXpress, FMTBcd, DB, SqlExpr, Forms;

Na propriedade Params do SQLConection, é importante que o database fique em branco, ou seja sem endereço algum, isso porque o endeeço que deve ser seguido é o contido no arquivo Parametros.ini.

 

O próximo passo é compilar a aplicação e se deu tudo certo, deve compilar sem problema algum, mas se você esquecer de colocar o endereço do banco no arquivo Parametros.ini, daí deve dar algum erro caso contrário não.

 

Ah! Lembre que o arquivo ini deve estar localizado no mesmo diretório que a sua aplicação.

 

Agora esperimente mudar o diretóio do seu banco de dados e execute a aplicação sem mudar o endereço no arquivo ini, como resposta vamos obter que o banco não pode ser encontrado, mas se editarmos o arquivo ini colocando no database o novo endereço do banco, tudo funcionará perfeitamente.

 

Era isso que eu procurava como fazer, alterar o endereço do meu banco e garantir que a aplicação funcione sem ter que recompilar o código.

 

Um grande abraço a todos e obrigado.

 

AlexandreSC

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou precisando fazer exatamente o que você descreveu. Tentei no meu banco mais não deu certo. Deixei a propriedade database do params em branco, porém quando "compilo" o programa e vou executar ele da mensagem dizendo que falta a propriedade database do params. Se eu deixar um caminho como default quando mudo ele continua pegando o default, aí tenho que fazer refresh nas tabelas.Tem algo mais para se fazer??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha Ademilson, eu tive o mesmo problema que você, mas foi porque no meu arquivo parametros.ini o database havia ficado sem o endereço, eu havia esquecido mesmo de informar, depois que eu acertei funcionou.Mas no SQLConnection o parâmetro database fica em branco mesmo.Verifica se não é isso.Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz como informado mais quando deixo a propriedade database em branco da a seguinte mensagem:Missing Database Propriety. Process StopedAí eu volto a propriedade para c:\.... e o sistema entra normalmente, porém não respeita os parametros da forma esperada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.