Delphi + Firebird 1.5

09/01/2013

0

Galera gostaria de uma ajuda...

Eu preciso criar um banco e rodar os scripts em tempo de execução usando o delphi 10 e o firebird 1.5

Eu fiz o processo e funciona, porem so funciona se eu instalar o firebird 1.5 como aplicação. Se eu instalar como processo nao funciona. Da erro na linha "CreateDatabase;" (unavailable database)

Alguém sabe me informar algo ou pode me ajudar nesse problema? Agradeço desde ja.

procedure TFrmPrincipal.FormShow(Sender: TObject);
var
  DataBase : TIBDatabase;
begin
  if NOT ((FireBirdGetProcess('fbserver.exe')) OR (FireBirdGetProcess('fb_inet_server.exe'))) then
    ControlFBSvr(True);
  If not((FileExists(ExtractFilePath(Application.ExeName)+'PANDORA.FDB'))) then
  begin
    if ((FireBirdGetProcess('fbserver.exe')) OR (FireBirdGetProcess('fb_inet_server.exe'))) then
    begin
      DataBase := TIBDatabase.Create(nil);
      try
        with DataBase do
        begin
          DatabaseName := 'PANDORA.FDB';
          SQLDialect   := 3;
          Params.Clear;
          Params.Add     ('USER ''SYSDBA''');
          Params.Add     ('PASSWORD ''masterkey''');
          Params.Add     ('PAGE_SIZE 16384');
          Params.Add     ('DEFAULT CHARACTER SET WIN1252');
          CreateDatabase;
        end;
        DmPandora.gerarIni;
        DmPandora.CnxPandora.Close;
        DmPandora.CnxPandora.Params.Clear;
        DmPandora.CnxPandora.Connected := False;
        DmPandora.CnxPandora.ConnectionName := 'PANDORA';
        DmPandora.CnxPandora.DriverName := 'FIREBIRD';
        DmPandora.CnxPandora.LoadParamsOnConnect := False;
        DmPandora.CnxPandora.Params.LoadFromFile(ExtractFilePath(Application.ExeName)+'\conexao.ini');
        DmPandora.CnxPandora.Connected := True;

        GeraScripts;
        DmPandora.CdsEmail.Open;
      finally
        FreeAndNil(DataBase);
      end;
    end
    else
    begin
      MessageDlg('O banco de dados não foi ativado!', mtWarning, [mbOK], 0);
      MessageDlg('Verifique se o mesmo esta instalado. Tente novamente!', mtError, [mbOK], 0);
      Application.Terminate;
    end;
  end;
end;
Vinicius Snachez

Vinicius Snachez

Responder

Posts

10/01/2013

André Celestino

Olá Vinícius, eu testei aqui com Delphi XE/Firebird 2.5 e funcionou normal.
Só não sei te dizer se isso é um problema de versão, já que aparentemente a sua lógica está correta.

A DLL do Firebird está na pasta do sistema?
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar