Issue Details (XML | Word | Printable)

Key: CORE-2186
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Adriano dos Santos Fernandes
Reporter: Chau Chee Yang
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Firebird Core

fbintl.dll never get unloaded in Firebird 2.X Embedded after invoke isc_dsql_execute_immediate for CREATE DATABASE

Created: 13/Nov/08 04:40 AM   Updated: 08/Nov/09 08:37 PM
Component/s: None
Affects Version/s: 2.1.1
Fix Version/s: 2.5 Beta 1

Time Tracking:
Not Specified

Environment: Windows, Firebird Embedded

Planning Status: Unspecified


 Description  « Hide
In Firebird 2.0 and 2.1 Embedded, I notice fbintl.dll will be loaded once I executed isc_dsql_execute_immediate for "CREATE DATABASE". However, the fbintl.dll never get unloaded after I free fbembed.dll.

This cause problems when I use Firebird 2.0 embedded and Firebird 2.1 embedded engine in same application where the fbintl.dll for both 2.0 and 2.1 is not compatible.

To solve the problem temporary, I unload the fbintl.dll library manually:

const FLibrary = 'fbembed.dll'

var s: string;
  h: THandle;
begin
  ...
  s := ExtractFilePath(FLibrary) + 'intl\fbintl.dll';
  h := GetModuleHandle(PChar(s));
  if h <> 0 then
    FreeLibrary(h);
end;


 All   Comments   Work Log   Change History   Version Control   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Sean Leyne added a comment - 13/Nov/08 02:33 PM
I don't understand why a *single* application needs to use 2 embedded engines (of different versions) at the same time.

Please explain.

Chau Chee Yang added a comment - 13/Nov/08 09:48 PM
My application works with both ODS version 10.X and 11.X database, thus I may switch the firebird engine to access database depends on the ODS version. The reason why not upgraded to latest 11.1 version is I have other legacy apps that can't work with 11.X database yet.

Regardless of the above issue, I think it is a good habit to unload fbintl.dll when it is no longer needed.