SQLConnection atraves de arquivo .INI
Estou tentando conectar o meu banco de dados através de um arquivo Ini mas está dando errado, muito estranho.
Minha Aplicação começa assim:
É uma telinha de abertura... Nessa tela eu fiz no OnCreate:
Até ai tudo bem, atualiza a linha do Database para onde está o banco de dados.
No datamodule2 está assim:
O arquivo configConect.ini está assim:
Lembrando que eu configurei anteriormente o SQLConnection e ele está TRUE, mas já tentei colocando FALSE. E no SQLCOnnection o DAtabase está configurado para a pasta onde seria a pasta de instação do programa só que se eu modificar a pasta o .ini atualiza corretamente, mas o SQLConnection ainda busca na pasta configurada nele manualmente no Delphi.
Também já tentei utilizar a função:
SQLConnection1.LoadParamsFromIniFile(ExtractFilePath(Application.ExeName)+´configConect.ini´);
O que fazer?
Minha Aplicação começa assim:
AberturaForm:=TFormAbertura.Create(Application); AberturaForm.Show; Application.CreateForm(TDataModule2, DataModule2); AberturaForm.Free; Application.Run;
É uma telinha de abertura... Nessa tela eu fiz no OnCreate:
procedure TFormAbertura.FormCreate(Sender: TObject); begin Data := TIniFile.Create(ExtractFilePath(Application.ExeName)+´configConect.ini´); Try Data.WriteString(´IBLocal´,´Database´,ExtractFilePath(Application.ExeName)+´AGENDAX.gdb´); Finally Data.Free; end; end;
Até ai tudo bem, atualiza a linha do Database para onde está o banco de dados.
No datamodule2 está assim:
procedure TDataModule2.DataModuleCreate(Sender: TObject); begin SQLConnection1.Connected := false; SQLConnection1.Params.Clear; SQLConnection1.Params.LoadFromFile(ExtractFilePath(Application.ExeName)+´configConect.ini´); sqlconnection1.Connected := true; end;
O arquivo configConect.ini está assim:
[IBLocal] DriverName=UIB FireBird15 BlobSize=-1 CommitRetain=False Database=C:\Projetos\AgendaXfull\AGENDAX.gdb ErrorResourceFile= LocaleCode=0000 Password=masterkey RoleName=RoleName ServerCharSet= SQLDialect=3 Interbase TransIsolation=ReadCommited User_Name=SYSDBA WaitOnLocks=True
Lembrando que eu configurei anteriormente o SQLConnection e ele está TRUE, mas já tentei colocando FALSE. E no SQLCOnnection o DAtabase está configurado para a pasta onde seria a pasta de instação do programa só que se eu modificar a pasta o .ini atualiza corretamente, mas o SQLConnection ainda busca na pasta configurada nele manualmente no Delphi.
Também já tentei utilizar a função:
SQLConnection1.LoadParamsFromIniFile(ExtractFilePath(Application.ExeName)+´configConect.ini´);
O que fazer?
Zerocalt
Curtidas 0
Respostas
Zerocalt
21/05/2007
Observei que o banco de dados está certo...
Tipo, ele faz a modificação no local onde está configurado no .Ini, mas se não tiver a pasta AgendaX/AGENDAX.gdb o programa não abre...
Tipo, ele faz a modificação no local onde está configurado no .Ini, mas se não tiver a pasta AgendaX/AGENDAX.gdb o programa não abre...
GOSTEI 0
Paullsoftware
21/05/2007
Observei que o banco de dados está certo...
Tipo, ele faz a modificação no local onde está configurado no .Ini, mas se não tiver a pasta AgendaX/AGENDAX.gdb o programa não abre...
Verefique se o componente não está [b:d0c781dfc5]Connected = True[/b:d0c781dfc5]... se ele estiver como true, mesmo vc setando para false na inicialização do seu sistema não abre e as vezes não apresenta erro...
coloque dentro de bloco try except para ver o erro que é mostrado!
Também mude a TAG [IBLOCAL] para o nome do seu alias de conexão
[IBLocal] <==Mude aqui
DriverName=UIB FireBird15
BlobSize=-1
CommitRetain=False
Database=C:\Projetos\AgendaXfull\AGENDAX.gdb
ErrorResourceFile=
LocaleCode=0000
Password=masterkey
RoleName=RoleName
ServerCharSet=
SQLDialect=3
Interbase TransIsolation=ReadCommited
User_Name=SYSDBA
WaitOnLocks=True
espero ter ajudado
GOSTEI 0
Brunolspp
21/05/2007
entao...
pega meu exemplo do borcon 2006 no meu link de downloads gratuitos(abaixo da minha assinatura).
e veja na aplicação servidora como faço pra conectar o sqlconnection com arquivo de configuracao, e bem facil e funciona 100¬.
pega meu exemplo do borcon 2006 no meu link de downloads gratuitos(abaixo da minha assinatura).
e veja na aplicação servidora como faço pra conectar o sqlconnection com arquivo de configuracao, e bem facil e funciona 100¬.
GOSTEI 0
Zerocalt
21/05/2007
Já tentei de tudo...
Baxei exemplos, e mesmo assim nada...
Ou eu sou muito burro... Ou vou ter de mudar de componente huahuahua...
No arquivo .dfm do DataModule está assim:
No .pas
O Problema é que tipo oq configurei manualmente para fazer a conexão que seria: C:\Projetos\AgendaXfull\AGENDAX.gdb , ele sempre localiza esse arquivo... Se não existir ele na pasta da erro na abertura do programa, se ele existir, tudo bem, ele carrega o banco de dados correto que está no arquivo .INI , mas primeiramente ele tenta encontrar esse arquivo... Porém eu não crio esse arquivo nesse local na instalação do programa...
Se alguém puder me exemplificar ou me enviar um e-mail com um exemplo, ou mostrar-me como fazer a conexão em RunTime, pq já tentei tb e da erro...
SQLConnection1.Create(Self ou Application);
Da erro tb.
Baxei exemplos, e mesmo assim nada...
Ou eu sou muito burro... Ou vou ter de mudar de componente huahuahua...
No arquivo .dfm do DataModule está assim:
object DataModule2: TDataModule2 OldCreateOrder = False OnCreate = DataModuleCreate OnDestroy = DataModuleDestroy Left = 339 Top = 150 Height = 383 Width = 460 object SQLConnection1: TSQLConnection ConnectionName = ´AGENDAX´ DriverName = ´UIB FireBird15´ GetDriverFunc = ´getSQLDriverINTERBASE´ LibraryName = ´dbexpUIBfire15.dll´ LoginPrompt = False Params.Strings = ( ´DriverName=UIB FireBird15´ ´BlobSize=-1´ ´CommitRetain=False´ ´Database=C:\AgendaX\AGENDAX.gdb´ ´ErrorResourceFile=´ ´LocaleCode=0000´ ´Password=masterkey´ ´RoleName=RoleName´ ´ServerCharSet=´ ´SQLDialect=3´ ´Interbase TransIsolation=ReadCommited´ ´User_Name=SYSDBA´ ´WaitOnLocks=True´) VendorLib = ´fbclient.dll´ Left = 40 Top = 8 end
No .pas
{$R *.dfm}
procedure TDataModule2.DataModuleCreate(Sender: TObject);
var
vFile: String;
begin
SQLConnection1.Connected := false;
ShowMessage(SQLConnection1.Params.Text);
SQLConnection1.Params.Clear;
vFile := ExtractFilePath(Application.ExeName)+´configConect.ini´;
SQLConnection1.Params.LoadFromFile(vFile);
ShowMessage(SQLConnection1.Params.Text);
Try
sqlconnection1.Connected := true;
except
ShowMessage(´Não foi possível Conectar ao banco de dados!´);
end;
end;
procedure TDataModule2.DataModuleDestroy(Sender: TObject);
begin
sqlconnection1.Connected := false;
end;
end.O Problema é que tipo oq configurei manualmente para fazer a conexão que seria: C:\Projetos\AgendaXfull\AGENDAX.gdb , ele sempre localiza esse arquivo... Se não existir ele na pasta da erro na abertura do programa, se ele existir, tudo bem, ele carrega o banco de dados correto que está no arquivo .INI , mas primeiramente ele tenta encontrar esse arquivo... Porém eu não crio esse arquivo nesse local na instalação do programa...
Se alguém puder me exemplificar ou me enviar um e-mail com um exemplo, ou mostrar-me como fazer a conexão em RunTime, pq já tentei tb e da erro...
SQLConnection1.Create(Self ou Application);
Da erro tb.
GOSTEI 0