[firebase-br] trabalhando com a FBCLIENT.DLL do Firebird no IBO 4.5...

RedDevil reddevil em reddevil.eti.br
Ter Fev 22 04:16:13 -03 2005


ola pessoal.
tudo bem com voces?
sincerely, espero que sim.

eu peço desculpas a todos se essa msg que estou postando soar meio que off
topic, mas ela tem tudo a ver com o Firebird, uma vez que trata do acesso ao
banco de dados do Firebird usando a FBCLIENT.DLL do Firebird como a DLL de
conexao com o banco no IBObjects versao 4.5...
;o)

sendo assim, estou encaminhando, æ abaixo, a parte relevante de uma msg que
eu respondi agora a pouco para alguem que me pediu, em private, uma força
sobre como trabalhar com a FBCLIENT.DLL do Firebird no IBObjects versao
4.5.Ai, okeyz?


[]s
força sempre.
ate +++

Luiz "RedDevil" Stefanski
=======><=========
====> Delphi 4 <=====
====> powered <=====
======> by <=======
===> IBObjects <=====
=======><=========
more in:
http://www.RedDevil.eti.br (home)
instalaçao versao -4.3.A:
http://www.firebase.com.br/cgi-bin/firebase.cgi/artigo?ID=630
exemplos e dicas :
http://www.firebase.com.br/cgi-bin/firebase.cgi/dnld?ID=165



----- Original Message -----
Sent: Tuesday, February 22, 2005 3:47 AM
Subject: Re: invoking the RedDevil


ate a versao 4.3.Aa do IBObjects (ou ate alguma versao mais recente, antes
de ter sido criado o instaladar... eu nao acompanhei todas as versoes), a
gente indicava que queria trabalhar com a FBCLIENT.DLL do Firebird editando
a unit "IB_Constants.pas" e setando a variavel IB_GDS32 como æ abaixo:
IB_GDS32: string = 'fbclient.dll';
(se voce trabalha com a FBCLIENT.DLL na tua pasta system)

ou como:
IB_GDS32: string = '\Arquivos de
programas\Firebird\Firebird_1_5\Bin\fbclient.dll';
(dessa maneira, a gente foge do bendito DLL HELL da M$, trabalhando com a
FBCLIENT.DLL na pasta dela...;o)

em seguida bastava recompilar todas as packages que dava certo...

mas agora, com o instalador, a gente tem que instalar usando o idioma
English e nao eh possivel fazer a alteraçao æ acima, pois da erro quando a
gente vai recompilar as packages, e eu ainda nao descobri a causa desse
erro... pode ser que alguem ja tenha resolvido isso... nao sei...

maaasss, quanto ao teu caso, eu acredito que fazendo a coisa da maneira que
eu vou te sugerir æ abaixo vai funcionar, independente de a tua versao ser
de avaliaçao ou nao, pois, pelo que eu entendi, a versao "oficial" tambem
esta em avaliaçao, devido ao instalador...

para trabalhar com o IBObjects usando a FBCLIENT.DLL do Firebird como a DLL
de conexao com o banco de dados, basta que voce localize, na pasta onde o
instalador te gerou as units (provavelmente em C:\Ibo4), a unit
"IB_Session511.pas", use o delphi para editar ela, e procure pelo codigo æ
abaixo:

initialization
// Replace the normal value with the alternate client DLL value.
  IB_Constants.IB_GDS32 := 'GDS511.DLL';


uma vez que voce achar esse codigo, deixe ele assim:

initialization
// Replace the normal value with the alternate client DLL value.
  IB_Constants.IB_GDS32 := '\Arquivos de
programas\Firebird\Firebird_1_5\Bin\FBCLIENT.DLL';

em seguida, basta salvar e fechar essa unit, e, quando voce for trabalhar no
teu projeto, declare essa unit, a "IB_Session511.pas", como a primeira
declaraçao no "uses" da "interface" do teu projeto, de modo que a coisa
fique mais ou menos conforme æ abaixo:

interface

uses
  IB_Session511, Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, IB_NavigationBar, Grids,
IB_Grid;


e pronto, basta compilar o teu projeto que ele vai acessar os bancos de
dados do Firebird usando a FBCLIENT.DLL ao inves da GDS32.DLL...

note que eh necessario compilar o teu projeto para que a historia funcione,
pois se voce simplesmente informar os parametros no componente IB_Connection
e tentar, ainda no form, deixar a propriedade "Connected" como True, vai dar
uma msg dizendo que a GDS32.DLL nao esta instalada, mas basta compilar que
isso nao acontece... apos a compilaçao o teu projeto roda usando a
FBCLIENT.DLL do Firebird para acesso...

mas tem um detalhe nessa historia toda que eu acho necessario salientar...
nos testes que eu fiz agora a pouco, apos descobrir esse lance, eu somente
consegui trabalhar usando os componentes da classe TIB_, os componentes
nativos do IBObjects (usando um componente IB_Connection para fazer a
conexao e uma IB_Query para acessar a tabela)... quando eu tentei usar os
componentes da classe TIBO, os componentes compativeis com o DataSet (um
IBODatabase e uma IBOQuery), deu um erro dizendo que o "IBODataset" nao foi
encontrado...






Mais detalhes sobre a lista de discussão lista