Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3122 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Eu gostaria de saber como eu faço uma conexão a um banco Firebird via INI no Lazarus, para que eu consiga ter acesso aos dados e assim inserir dados e/ou puxar relatórios e para que eu possa ter o software instalado em estações conectadas ao servidor.

Ex:

[BANCO]

SERVIDOR=localhost

ARQUIVO=C:\BANCO\BASE.GDB

LOGIN=SYSDBA

SENHA=masterkey

 

Vlw

  • Moderadores
Postado

Você precisa nos ajudar a te ajudar :)

Você não disse como está querendo acessar esta base de dados, qual componente de acesso pretende utilizar (nativo, zeos, etc) e por ai vai, dê mais informações que com certeza algum usuário poderá lhe ajudar melhor.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Postado

var
 F1: TextFile;
 vPath1: String;
 ResultTemp: Boolean;
 CAMINHO : String ;
 Ini     : TIniFile ;
 varBD_ALIAS:string;
 varBD_PATH :String;
 varBD_HOST :String;
 varBD_USER :String;
 varBD_PASS :String;
 varBD_PORTA:String;

begin
varBD_ALIAS := 'DB';
ResultTemp := False;
CONEX01.Show ;
CONEX01.Repaint;

     //-----------> acertando alias <------------------------------
     Caminho := IncludeTrailingPathDelimiter(ExtractFileDir(application.ExeName))+'ARQCONEXAO.INI';

     if not(fileexists(CAMINHO)) then
      begin
       Showmessage('Arquivo inexistente => '+CAMINHO);
       APPLICATION.Terminate ;
       Abort ;
      end else begin
       Application.CreateForm(TSISINI,SISINI);
       if SISINI.LoadAlias > 1 then
        begin
         SISINI.ShowModal;
         if SISINI.ModalResult = MROK then
          varBD_ALIAS := SISINI.ALIAS_SELEC;
        end;
       freeAndNil(SISINI);
      end;

     //#############################################################################
     //###################> lendo paramentros do ARQUIVO INI <######################
     //#############################################################################
     Ini := TIniFile.Create(Caminho);
     try
      varBD_PATH := Ini.ReadString( varBD_ALIAS, 'PATH', '' );
      varBD_HOST := Ini.ReadString( varBD_ALIAS, 'HOST', '' );
      varBD_USER := Ini.ReadString( varBD_ALIAS, 'USER', '' );
      varBD_PORTA:= Ini.ReadString( varBD_ALIAS, 'PORTA', '' );

      if trim(Ini.ReadString( varBD_ALIAS, 'PASSWORD', '')) <> '' then
       varBD_PASS := Decrypt(HextoAscii(Ini.ReadString( varBD_ALIAS, 'PASSWORD', '')))
      else
       varBD_PASS := 'masterkey';

     finally
      Ini.Free;
     end;

    try
      DM.DATABASE.Connected := False  ;
      DM.DATABASE.HostName  := varBD_HOST ;
      DM.DATABASE.Database  := varBD_PATH ;
      DM.DATABASE.User      := varBD_USER;
      DM.DATABASE.Password  := varBD_PASS;
      if trim(textotonum(varBD_PORTA)) <> '' then
      DM.DATABASE.Port      := strtoint(textotonum(varBD_PORTA));
      DM.DATABASE.LoginPrompt := False;

      DM.DATABASE.Connected := true;


      ResultTemp := True;

     Except
     On E: Exception do
      begin
         ShowMessage('Não foi possível conectar ao Banco de Dados !!!'+E.Message);
      end;
    end;

CONEX01.Close;
Result := ResultTemp;
end;

  • Curtir 1
Postado
31 minutos atrás, adilsonpazzini disse:

var
 F1: TextFile;
 vPath1: String;
 ResultTemp: Boolean;
 CAMINHO : String ;
 Ini     : TIniFile ;
 varBD_ALIAS:string;
 varBD_PATH :String;
 varBD_HOST :String;
 varBD_USER :String;
 varBD_PASS :String;
 varBD_PORTA:String;

begin
varBD_ALIAS := 'DB';
ResultTemp := False;
CONEX01.Show ;
CONEX01.Repaint;

     //-----------> acertando alias <------------------------------
     Caminho := IncludeTrailingPathDelimiter(ExtractFileDir(application.ExeName))+'ARQCONEXAO.INI';

     if not(fileexists(CAMINHO)) then
      begin
       Showmessage('Arquivo inexistente => '+CAMINHO);
       APPLICATION.Terminate ;
       Abort ;
      end else begin
       Application.CreateForm(TSISINI,SISINI);
       if SISINI.LoadAlias > 1 then
        begin
         SISINI.ShowModal;
         if SISINI.ModalResult = MROK then
          varBD_ALIAS := SISINI.ALIAS_SELEC;
        end;
       freeAndNil(SISINI);
      end;

     //#############################################################################
     //###################> lendo paramentros do ARQUIVO INI <######################
     //#############################################################################
     Ini := TIniFile.Create(Caminho);
     try
      varBD_PATH := Ini.ReadString( varBD_ALIAS, 'PATH', '' );
      varBD_HOST := Ini.ReadString( varBD_ALIAS, 'HOST', '' );
      varBD_USER := Ini.ReadString( varBD_ALIAS, 'USER', '' );
      varBD_PORTA:= Ini.ReadString( varBD_ALIAS, 'PORTA', '' );

      if trim(Ini.ReadString( varBD_ALIAS, 'PASSWORD', '')) <> '' then
       varBD_PASS := Decrypt(HextoAscii(Ini.ReadString( varBD_ALIAS, 'PASSWORD', '')))
      else
       varBD_PASS := 'masterkey';

     finally
      Ini.Free;
     end;

    try
      DM.DATABASE.Connected := False  ;
      DM.DATABASE.HostName  := varBD_HOST ;
      DM.DATABASE.Database  := varBD_PATH ;
      DM.DATABASE.User      := varBD_USER;
      DM.DATABASE.Password  := varBD_PASS;
      if trim(textotonum(varBD_PORTA)) <> '' then
      DM.DATABASE.Port      := strtoint(textotonum(varBD_PORTA));
      DM.DATABASE.LoginPrompt := False;

      DM.DATABASE.Connected := true;


      ResultTemp := True;

     Except
     On E: Exception do
      begin
         ShowMessage('Não foi possível conectar ao Banco de Dados !!!'+E.Message);
      end;
    end;

CONEX01.Close;
Result := ResultTemp;
end;

Esse código eu coloco em um data module?

Postado
19 minutos atrás, adilsonpazzini disse:

ref ao Trecho ... Foi mau Juliomar ...

 

Ref ao Datamodule , sim eu uso dentro de um Datamodule

Adilson, desculpe a ignorância minha, mas eu não estou me achando, coloquei o código no DM, mas não estou conseguindo interagir com ele. 

  • Este tópico foi criado há 3122 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.