[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