Fórum SQLConnection atraves de arquivo .INI #342084
21/05/2007
0
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
Curtir tópico
+ 0Posts
21/05/2007
Zerocalt
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
21/05/2007
Paullsoftware
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
espero ter ajudado
Gostei + 0
22/05/2007
Brunolspp
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
25/05/2007
Zerocalt
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
Clique aqui para fazer login e interagir na Comunidade :)