Alterar Propriedades SQLConnection
Caros Colegas
Como faço para alterar em RUNTIME os CONNECTION SETTINGS da Propriedade Connection do SQLConnection??
Estou compilando .CLX
Preciso disso pois utilizo um arquivo .INI e tenho o caminho do Banco de Dados neste arquivo, e preciso alterar isso no CONNECTION SETTINGS no momento da conexão..
agradeço antecipadamente
Cabelo
Como faço para alterar em RUNTIME os CONNECTION SETTINGS da Propriedade Connection do SQLConnection??
Estou compilando .CLX
Preciso disso pois utilizo um arquivo .INI e tenho o caminho do Banco de Dados neste arquivo, e preciso alterar isso no CONNECTION SETTINGS no momento da conexão..
agradeço antecipadamente
Cabelo
Cabelo
Curtidas 0
Respostas
Jubrovolski
12/03/2004
Você vai precisar mudar a propriedade LoadParamsOnConnect para true.
Fazendo isso, ele procurará os arquivos
dbxconnections.ini e dbxdrivers
Faça com que seu programa altere a linhas necessárias no arquivo dbxconnections.ini
Mas antes de fazer alteração mude a propriedade connected para false.
Depois conecte novamente após a mudança.
Espero ter ajudado.
Fazendo isso, ele procurará os arquivos
dbxconnections.ini e dbxdrivers
Faça com que seu programa altere a linhas necessárias no arquivo dbxconnections.ini
Mas antes de fazer alteração mude a propriedade connected para false.
Depois conecte novamente após a mudança.
Espero ter ajudado.
GOSTEI 0
Cabelo
12/03/2004
Muito Obrigado..
Só mais uma pergunta...
Se existe então um arquivo .INI do DBExpress, tem como eu alterar o arquivo que ele irá usar para realizar a conexão???
sem mais
Cabelo
Só mais uma pergunta...
Se existe então um arquivo .INI do DBExpress, tem como eu alterar o arquivo que ele irá usar para realizar a conexão???
sem mais
Cabelo
GOSTEI 0
Jubrovolski
12/03/2004
Dentro do arquivo dbxconnections.ini, há a sequencia abaixo:
[MySQLConnection]
DriverName=MySQL
HostName=server
Database=test
User_Name=root
Password=123456
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Você pode criar uma função para buscar dentro do arquivo as linhas e o texto que deseja mudar. Ou caso apenas trabalhe com um tipo de banco de dados, pode deletar o arquivo e criar um outro apenas com o banco de dados que trabalha. No meu caso, trabalho com mysql.
[MySQLConnection]
DriverName=MySQL
HostName=server
Database=test
User_Name=root
Password=123456
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Você pode criar uma função para buscar dentro do arquivo as linhas e o texto que deseja mudar. Ou caso apenas trabalhe com um tipo de banco de dados, pode deletar o arquivo e criar um outro apenas com o banco de dados que trabalha. No meu caso, trabalho com mysql.
GOSTEI 0
Cabelo
12/03/2004
Tudo bem, isso eu sei fazer..
a minha dúvida é :
Tem como utilizar outro arquivo? Com nome e diretórios diferentes??
sabe pq? Eu compilo em .CLX e o executável será usado em Windows e no Linux, simplismente compiladno para um e para outro, mas o código não deve ser alterado..entende? Por isso a minha pergunta.
sem mais
Cabelo
a minha dúvida é :
Tem como utilizar outro arquivo? Com nome e diretórios diferentes??
sabe pq? Eu compilo em .CLX e o executável será usado em Windows e no Linux, simplismente compiladno para um e para outro, mas o código não deve ser alterado..entende? Por isso a minha pergunta.
sem mais
Cabelo
GOSTEI 0
Jubrovolski
12/03/2004
Desconheço se há como fazer ou como fazë-lo
Tente colocar um novo tópico perguntando:
Como informar qual arquivo de inicialização usar na propriedade
LoadParamsOnConnect.
Tente colocar um novo tópico perguntando:
Como informar qual arquivo de inicialização usar na propriedade
LoadParamsOnConnect.
GOSTEI 0
Jubrovolski
12/03/2004
Acabo de pesquisar no grupo e descobri
SqlConnection1.LoadParamsFromIniFile(´dbxconnections.ini´);
SqlConnection1.LoadParamsFromIniFile(´dbxconnections.ini´);
GOSTEI 0
Cabelo
12/03/2004
Colega jubrovolski
vc conseguiu fazer a conexão?
Pq aqui eu não consegui..
tentei de todos os jeitos.
Mas sempre dá um erro assim ´Missing DriverName property´, já cheguei a excluir a conexão, tentei refazê-la e nada..
Vc saberia dizer o quê pode ser, já que vc utiliza isso..
Agradeço antecipadamente.
Cabelo
vc conseguiu fazer a conexão?
Pq aqui eu não consegui..
tentei de todos os jeitos.
Mas sempre dá um erro assim ´Missing DriverName property´, já cheguei a excluir a conexão, tentei refazê-la e nada..
Vc saberia dizer o quê pode ser, já que vc utiliza isso..
Agradeço antecipadamente.
Cabelo
GOSTEI 0
Jubrovolski
12/03/2004
Consegui fazer sem problemas: Vai parte de um código que usei para testar.
procedure TForm1.FormCreate(Sender: TObject);
begin
sqlconnection1.Connected:=false;
SqlConnection1.LoadParamsFromIniFile(´config.ini´);
if SQLConnection1.ParamsLoaded = true then
showmessage(´Arquivo Carregado´)
else
begin
showmessage(´Não foi possível carregar o arquivo´);
exit;
end;
// aqui abaixo eu abro os dataset1
sqlclientdataset1.CommandText := ´select * from clientes´;
sqlclientdataset1.Active :=true;
procedure TForm1.FormCreate(Sender: TObject);
begin
sqlconnection1.Connected:=false;
SqlConnection1.LoadParamsFromIniFile(´config.ini´);
if SQLConnection1.ParamsLoaded = true then
showmessage(´Arquivo Carregado´)
else
begin
showmessage(´Não foi possível carregar o arquivo´);
exit;
end;
// aqui abaixo eu abro os dataset1
sqlclientdataset1.CommandText := ´select * from clientes´;
sqlclientdataset1.Active :=true;
GOSTEI 0
Jubrovolski
12/03/2004
Lembre-se que ele somente carregará o arquivo na execução. Por isso em tempo de projeto, você tem que especificar o tipo de conexão.
procedure TDataModule2.DataModuleCreate(Sender: TObject);
begin
sqlconnection1.Connected:=false;
sqlconnection1.ConnectionName := ´MySQLConnection´;
sqlconnection1.DriverName := ´MySQL´;
sqlconnection1.GetDriverFunc := ´getSQLDriverMYSQL´;
sqlconnection1.LibraryName := ´dbexpmysql.dll´;
sqlconnection1.LoadParamsOnConnect := True;
sqlconnection1.VendorLib := ´libmysql.dll´;
SqlConnection1.LoadParamsFromIniFile(´config.ini´);
if SQLConnection1.ParamsLoaded = true then
showmessage(´Arquivo Carregado´)
else
begin
showmessage(´Não foi possível carregar o arquivo´);
exit;
end;
end;
procedure TDataModule2.DataModuleCreate(Sender: TObject);
begin
sqlconnection1.Connected:=false;
sqlconnection1.ConnectionName := ´MySQLConnection´;
sqlconnection1.DriverName := ´MySQL´;
sqlconnection1.GetDriverFunc := ´getSQLDriverMYSQL´;
sqlconnection1.LibraryName := ´dbexpmysql.dll´;
sqlconnection1.LoadParamsOnConnect := True;
sqlconnection1.VendorLib := ´libmysql.dll´;
SqlConnection1.LoadParamsFromIniFile(´config.ini´);
if SQLConnection1.ParamsLoaded = true then
showmessage(´Arquivo Carregado´)
else
begin
showmessage(´Não foi possível carregar o arquivo´);
exit;
end;
end;
GOSTEI 0
Cabelo
12/03/2004
Deu certo..
Valeu..
Estava tentando fazer como no Delphi 5, carregando parâmetro a parâmetro, mas vi que não tem como criar uma conexão em RUNTIME, simplesmente com o arquivo .INI, vc tem mesmo que abrir o componente e criar a conexão lá..
por isso dava erro..
mas infelizmente terei que abandonar a idéia..
Muito obrigado pela sua atenção..
sem mais
Cabelo
Valeu..
Estava tentando fazer como no Delphi 5, carregando parâmetro a parâmetro, mas vi que não tem como criar uma conexão em RUNTIME, simplesmente com o arquivo .INI, vc tem mesmo que abrir o componente e criar a conexão lá..
por isso dava erro..
mas infelizmente terei que abandonar a idéia..
Muito obrigado pela sua atenção..
sem mais
Cabelo
GOSTEI 0
Everton
12/03/2004
mas vi que não tem como criar uma conexão em RUNTIME, simplesmente com o arquivo .INI, vc tem mesmo que abrir o componente e criar a conexão lá..
Cabelo,
em todos os meus sistemas durante o desenvolvimento eu crio uma conexão, porém quando distribuo a única alteração que faço é alterar o caminho do servidor, que carrego através de um arquivo INI. Para isso utilizo o seguinte comando:
SQLConnection.Close;
SQLConnection.Params.Values[´SERVER NAME´] := LocalGDB_informado_no_INI
SQLConnection.Open;
Não esqueça de fechar a conexão com o banco antes de compilar o programa.
qualquer dúvida estamos aqui.
GOSTEI 0
Cabelo
12/03/2004
Caro Everton
Mudar as propriedades da conexão eu tb já faço..
O problem é que eu gostaria de criar a conexão, em tempo de execução..
Exemplo, quando entro no editor de conexões do SQLConnection, eu visualizo todas as conexões, dos programas a qual estou desenvolvendo. O que gostaria é de não criar estas conexões no componente, e sim somente na hora de rodar o sistema, entende?
Mesmo assim grato pela sua atenção.
sem mais
Cabelo
Mudar as propriedades da conexão eu tb já faço..
O problem é que eu gostaria de criar a conexão, em tempo de execução..
Exemplo, quando entro no editor de conexões do SQLConnection, eu visualizo todas as conexões, dos programas a qual estou desenvolvendo. O que gostaria é de não criar estas conexões no componente, e sim somente na hora de rodar o sistema, entende?
Mesmo assim grato pela sua atenção.
sem mais
Cabelo
GOSTEI 0
Juamaral
12/03/2004
Gostaria de saber como criar uma nove conexão no SQLConnection via run time, estou usando um arquivo .ini, mas não da certo
GOSTEI 0
Rdrigo
12/03/2004
Alguém sabe me dizer os parametros a ser passados se o banco for Firebird ou Interbase???
GOSTEI 0
Cabelo
12/03/2004
Colega..
Este é um exemplo de um arquivo .INI usando o Firebird...
se usar assim dentro do delphi tb funciona..
abs..
Este é um exemplo de um arquivo .INI usando o Firebird...
[TE] LIBRARYNAME=dbexpint.dll GETDRIVERFUNC=getSQLDriverINTERBASE VENDORLIB=gds32.dll DRIVERNAME=Interbase CONNECTIONNAME=TESTE [TESTE] DriverName=Interbase Database=C:\TESTE.FDB RoleName=RoleName User_Name=SYSDBA Password=masterkey ServerCharSet=WIN1252 SQLDialect=3 BlobSize=-1 CommitRetain=False WaitOnLocks=True ErrorResourceFile= LocaleCode=0000 Interbase TransIsolation=ReadCommited Trim Char=true
se usar assim dentro do delphi tb funciona..
abs..
GOSTEI 0
Rdrigo
12/03/2004
Muito obrigado amigo..
deu certinho aqui...
deu certinho aqui...
GOSTEI 0