Subject | RE: [IBO] Passing an IB_Connection to a dll function |
---|---|
Author | Jason Wharton |
Post date | 2004-11-04T20:15:51Z |
Just make sure you don't have different threads acting upon the same
connection handle at a time. To my knowledge the connection handle has not
been made thread safe, and even if they did, it would probably be just to
serialize access anyway, which defeats the benefit of allowing multiple
threads to access it simultaneously.
Someone please correct me if I'm wrong, as it certainly could be possible
for the connection handle to allow asynchroneous access to it at some point.
Jason Wharton
connection handle at a time. To my knowledge the connection handle has not
been made thread safe, and even if they did, it would probably be just to
serialize access anyway, which defeats the benefit of allowing multiple
threads to access it simultaneously.
Someone please correct me if I'm wrong, as it certainly could be possible
for the connection handle to allow asynchroneous access to it at some point.
Jason Wharton
> -----Original Message-----
> From: Robert martin [mailto:rob@...]
> Sent: Thursday, November 04, 2004 12:55 PM
> To: IBObjects@yahoogroups.com
> Subject: Re: [IBO] Passing an IB_Connection to a dll function
>
>
>
> Thanks Daniel, will give that a whirl. The dll is
> dynamically loaded from within the thread so all should be ok :)
>
>
> Rob Martin
> Software Engineer
>
> phone 03 377 0495
> fax 03 377 0496
> web www.chreos.com
> Wild Software Ltd
> ----- Original Message -----
> From: Daniel Rail
> To: IBObjects@yahoogroups.com
> Sent: Friday, November 05, 2004 1:07 AM
> Subject: Re: [IBO] Passing an IB_Connection to a dll function
>
>
> Hi,
>
> At November 4, 2004, 00:37, Robert martin wrote:
>
> > In our app we have an ability to call a Dll function each time and
> > transaction is processed. Under Dbase we just connected
> to the database for
> > a second time, under Firebird this would require another
> connection (which
> > can be slow). We want to avoid this, can a Ib_Connection
> be passed to a dll
> > function?
>
> What I usually do, is pass the TIB_Connection.dbHandle
> property to the
> DLL and assign it to the TIB_Connection.dbHandleShared
> property in the
> DLL. And, you don't have to call Connect and Disconnect,
> since you are
> already using an existing connection handle.
>
> > If that is possible, is there any problem if it is passed
> from a thread in
> > the main application?
>
> If the DLL is dynamically loaded and unloaded within the
> context of the thread,
> then I don't see any problems. Otherwise, there would most
> likely be
> problems.
>
> --
> Best regards,
> Daniel Rail
> Senior System Engineer
> ACCRA Group Inc. (www.accra.ca)
> ACCRA Med Software Inc. (www.filopto.com)
>