Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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
No caso então qual seria a sua dúvida principal ? O que deseja que lhe ajudemos ?
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
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??
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
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.
Alguem sabe como resolver isto?
Veja se algum destes exemplos lhe ajuda:
http://www.imasters.com.br/artigo/2169/int...ao_ao_firebird/
http://www.devmedia.com.br/visualizacompon...=971&site=3
http://www.clubedelphi.net/apostilas/apostilas.asp