Subject Re: [IBO] Install Problems and After Install Problems
Author Helen Borrie
At 09:59 AM 1/04/2006, you wrote:
>I am using Delphi 5 Ent and trying to install IBO 4.6. Before this I
>had 4.3xx. My problem seems to be coming from the IB_OLEContainer. It
>uses a ZLib.pas. I use another component for Report Builder called
>XtraDev, which also uses a pas file called zLib.

It's a known bug with this version of the installer into IDE's that
have a conflicting lib reference.

>I don't think I need the IB_OLEContainer so I removed all reference to
>it in the IBO packages. Well, I finally got it to work and things seem
>to be fine so far....Is this going to be a problem?


>Ok for the after install problem. MY MAIN PROBLEM....
>One of our main apps is still using both BDE and IBO for connections.
>We have code that worked with the previous version of IBO but now does
>not. Basically, our app would connect the BDE's TDatabase first...Then
>it would get the Data handle from the TDatabase object and assign it to
>the IB_Connection's dbHandleShared. Well since I have installed the
>new version, it is throwing an access violation.
>'Access violation at address 00000000. Read of address 00000000'
>Below is the line of my code throwing the error....
>'Ib_Connection1.dbHandleShared := GetNativeHandle(dbBDEMain);'
>I have verified that the IB_Connection and the TDatabase Connection are
>NOT nil...It must be something with the dbHandleShared property. I
>have tried to trace the code down. Here are the procedure calls that I
>can successfully trace down:
>TIB_Connection.SetdbHandle( AValue: isc_db_handle );
> -> SysUpdateCharacteristics
> -> API_Database_Info( Items, Results );
> -> errcode := isc_database_info
>It seems to throw the error somewhere from the isc_database_info.
>I am using firebird 1.5...Not sure what else I need to say..

It's a good report. :-)

The most likely problem here is in the creation order. Make certain
that the creation order is such that the TDatabase gets created ahead
of the TIB_Connection ; *then* make sure that your code doesn't try
to connect to the TIB_Connection before it has a) connected to the
TDatabase and b) tested to make sure it actually got a connection.

Make it a rule to be very explicit with your objects and the timing
of creation and access: don't depend on defaults, as you might do in
a pure BDE or pure IBO app.