Bom dia gostaria de saber se alguém pode me explicar como fazer uma Conexão com o Banco de Dados via arquivo.ini
E como fazer isso no Dlephi 7 com Firebird 1.5?
Como tenho que configurar no Delphi ?
Desde já gardeço pela atenção.
Conexão Com Banco.fdb Via Arquivo.ini
Started By rumao, 05/05/2008, 11:07
1 reply to this topic
#1
Posted 05/05/2008, 11:07
#2
Posted 22/07/2008, 09:20
Bom dia eu fiz assim no meu form. Se alguém puder dar uma ajuda ficarei grato.
Para confirurar tem que ser no Form Principal da Aplicação ou pode ser em um DM?
unit UPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ImgList, ToolWin, ExtCtrls, Winsock;
type
TFormPrincipal = class(TForm)
MainMenu1: TMainMenu;
Principal1: TMenuItem;
Configuraes1: TMenuItem;
BackUp1: TMenuItem;
N1: TMenuItem;
Sair1: TMenuItem;
Vendas1: TMenuItem;
Estoque1: TMenuItem;
Cadastros1: TMenuItem;
Produtos1: TMenuItem;
Operaesdeestoque1: TMenuItem;
N2: TMenuItem;
Clientes1: TMenuItem;
Fornecedores1: TMenuItem;
N3: TMenuItem;
Lojas1: TMenuItem;
Funcionrios1: TMenuItem;
N4: TMenuItem;
Administradoras1: TMenuItem;
Bancos1: TMenuItem;
Contascorrentes1: TMenuItem;
Planosdepagamento1: TMenuItem;
Logradouros1: TMenuItem;
Logradouros2: TMenuItem;
N5: TMenuItem;
Pases1: TMenuItem;
Estados1: TMenuItem;
Municpios1: TMenuItem;
Zonas1: TMenuItem;
Bairros1: TMenuItem;
iposdelogradouros1: TMenuItem;
Preposies1: TMenuItem;
stsMensagens: TStatusBar;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ImageList1: TImageList;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
Timer1: TTimer;
procedure Sair1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Pases1Click(Sender: TObject);
procedure Funcionrios1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormPrincipal: TFormPrincipal;
implementation
uses UDM, URotinasGenericas, UCadPais, UCadFuncionarios;
{$R *.dfm}
procedure TFormPrincipal.Sair1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TFormPrincipal.Timer1Timer(Sender: TObject);
begin
stsMensagens.Panels[0].Text := TimeToStr(Time);
end;
procedure TFormPrincipal.FormShow(Sender: TObject);
begin
stsMensagens.Panels[1].Text := MostraData;
end;
procedure TFormPrincipal.Pases1Click(Sender: TObject);
begin
FormCadPais:= TFormCadPais.Create(Self);
FormCadPais.ShowModal;
FormCadPais.Release;
FormCadPais:= nil;
end;
procedure TFormPrincipal.Funcionrios1Click(Sender: TObject);
begin
FormCadFuncionarios:= TFormCadFuncionarios.Create(Self);
FormCadFuncionarios.ShowModal;
FormCadFuncionarios.Release;
FormCadFuncionarios:= nil;
end;
// Procedure para conexão via arquivo .ini
//Url: caminho do banco
//Usr: nome de usuário
//Pws: senha
procedure Gravar_Configuracao(Url , Usr, pws : String);
var Banco : TIniFile;
Begin
Try
SetCurrentDir(ExtractFilePath(Application.ExeName));
Banco := TIniFile.create(GetCurrentDir + '\database.ini');
(* onde "c:\database.ini" e o caminho eu por padrão deixo somente
database.ini sem o "c:\" assim será salvo em c:\windows\
Eu alterei o exemplo para que o INI seja sempre gravado no
diretório onde se encontra o executável do programa *)
Banco.WriteString('DATABASE','\logradouro\banco.gdb',URL);
Banco.WriteString('DATABASE','SYSDBA',USR);
Banco.WriteString('DATABASE','masterkey',PWS);
Finnaly
Banco.Free;
End;
End;
//url : caminho do banco / USR : nome de usuário / PWS : senha
(*
O código original não poderia funcionar pois é necessário
que esses parâmetros sejam passados por referência em vez
de por valor como no código original
*)
procedure Ler_Configuracao(var Url: String;
var Usr: String;
var pws: String);
Begin
Try
Banco := TIniFile.create(GetCurrentDir+'\database.ini');
URL := Banco.ReadString('DATABASE','\logradouro',URL);
USR := Banco.ReadString('DATABASE','SYSDBA',USR);
PWS := Banco.ReadString('DATABASE','masterkey',PWS);
Finnaly
Banco.Free;
End;
End;
// Fim arquivo .ini
procedure TFormPrincipal.FormCreate(Sender: TObject);
// Arquivo .ini
var url,usr,pwd : string
begin
SetCurrentDir(ExtractFilePath(Application.ExeName));
IbDatabase.Close;
Ler_configuracao(Url,Usr,Pwd);
IbdataBase.params.add('user_name='+USR);
Ibdatabase.params.add('password ='+PWD);
ibdatabase.DatabaseName := Url;
IbDatabase.Open;
end;
// Fim Arquivo .ini
end;
end.
Para confirurar tem que ser no Form Principal da Aplicação ou pode ser em um DM?
unit UPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, ImgList, ToolWin, ExtCtrls, Winsock;
type
TFormPrincipal = class(TForm)
MainMenu1: TMainMenu;
Principal1: TMenuItem;
Configuraes1: TMenuItem;
BackUp1: TMenuItem;
N1: TMenuItem;
Sair1: TMenuItem;
Vendas1: TMenuItem;
Estoque1: TMenuItem;
Cadastros1: TMenuItem;
Produtos1: TMenuItem;
Operaesdeestoque1: TMenuItem;
N2: TMenuItem;
Clientes1: TMenuItem;
Fornecedores1: TMenuItem;
N3: TMenuItem;
Lojas1: TMenuItem;
Funcionrios1: TMenuItem;
N4: TMenuItem;
Administradoras1: TMenuItem;
Bancos1: TMenuItem;
Contascorrentes1: TMenuItem;
Planosdepagamento1: TMenuItem;
Logradouros1: TMenuItem;
Logradouros2: TMenuItem;
N5: TMenuItem;
Pases1: TMenuItem;
Estados1: TMenuItem;
Municpios1: TMenuItem;
Zonas1: TMenuItem;
Bairros1: TMenuItem;
iposdelogradouros1: TMenuItem;
Preposies1: TMenuItem;
stsMensagens: TStatusBar;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ImageList1: TImageList;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
Timer1: TTimer;
procedure Sair1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Pases1Click(Sender: TObject);
procedure Funcionrios1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormPrincipal: TFormPrincipal;
implementation
uses UDM, URotinasGenericas, UCadPais, UCadFuncionarios;
{$R *.dfm}
procedure TFormPrincipal.Sair1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TFormPrincipal.Timer1Timer(Sender: TObject);
begin
stsMensagens.Panels[0].Text := TimeToStr(Time);
end;
procedure TFormPrincipal.FormShow(Sender: TObject);
begin
stsMensagens.Panels[1].Text := MostraData;
end;
procedure TFormPrincipal.Pases1Click(Sender: TObject);
begin
FormCadPais:= TFormCadPais.Create(Self);
FormCadPais.ShowModal;
FormCadPais.Release;
FormCadPais:= nil;
end;
procedure TFormPrincipal.Funcionrios1Click(Sender: TObject);
begin
FormCadFuncionarios:= TFormCadFuncionarios.Create(Self);
FormCadFuncionarios.ShowModal;
FormCadFuncionarios.Release;
FormCadFuncionarios:= nil;
end;
// Procedure para conexão via arquivo .ini
//Url: caminho do banco
//Usr: nome de usuário
//Pws: senha
procedure Gravar_Configuracao(Url , Usr, pws : String);
var Banco : TIniFile;
Begin
Try
SetCurrentDir(ExtractFilePath(Application.ExeName));
Banco := TIniFile.create(GetCurrentDir + '\database.ini');
(* onde "c:\database.ini" e o caminho eu por padrão deixo somente
database.ini sem o "c:\" assim será salvo em c:\windows\
Eu alterei o exemplo para que o INI seja sempre gravado no
diretório onde se encontra o executável do programa *)
Banco.WriteString('DATABASE','\logradouro\banco.gdb',URL);
Banco.WriteString('DATABASE','SYSDBA',USR);
Banco.WriteString('DATABASE','masterkey',PWS);
Finnaly
Banco.Free;
End;
End;
//url : caminho do banco / USR : nome de usuário / PWS : senha
(*
O código original não poderia funcionar pois é necessário
que esses parâmetros sejam passados por referência em vez
de por valor como no código original
*)
procedure Ler_Configuracao(var Url: String;
var Usr: String;
var pws: String);
Begin
Try
Banco := TIniFile.create(GetCurrentDir+'\database.ini');
URL := Banco.ReadString('DATABASE','\logradouro',URL);
USR := Banco.ReadString('DATABASE','SYSDBA',USR);
PWS := Banco.ReadString('DATABASE','masterkey',PWS);
Finnaly
Banco.Free;
End;
End;
// Fim arquivo .ini
procedure TFormPrincipal.FormCreate(Sender: TObject);
// Arquivo .ini
var url,usr,pwd : string
begin
SetCurrentDir(ExtractFilePath(Application.ExeName));
IbDatabase.Close;
Ler_configuracao(Url,Usr,Pwd);
IbdataBase.params.add('user_name='+USR);
Ibdatabase.params.add('password ='+PWD);
ibdatabase.DatabaseName := Url;
IbDatabase.Open;
end;
// Fim Arquivo .ini
end;
end.
Edição feita por: rumao, 22/07/2008, 11:43.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)