hello
i want to use firebird-2.0 ...
when i connect to database show this error
non of the dynamic liberallys can be found:fbclientd20.dll and fbclientd.dll
so i want that two dlls ...
where can i find thats ?
looking for fbclientd20.dll and fbclientd.dll
Moderators: gto, cipto_kh, EgonHugeist
embedded wants exact directory
As i also got problems with this error
non of the dynamic liberallys can be found:fbclientd20.dll and fbclientd.dll
although i put the librarys nearly everywhere ...
o in the database directory
o in the application directory
o in the windir\system32 directory
and so on ...
i made the following change in the file ZConnection.pas:
Now it works perfect with the librarys ONLY in the database directory.
non of the dynamic liberallys can be found:fbclientd20.dll and fbclientd.dll
although i put the librarys nearly everywhere ...
o in the database directory
o in the application directory
o in the windir\system32 directory
and so on ...
i made the following change in the file ZConnection.pas:
Code: Select all
procedure TZConnection.Connect;
var
//Local variables declared in order to preserve the original property value
//and to avoid the storage of password
Username, Password: string;
DirOrg, DirDB : string ;
begin
if FConnection = nil then
begin
// Fixes Zeos Bug 00056
// try
DoBeforeConnect;
// except
//This is here to support aborting the Connection in BeforeConnect event without fatal errors
// on E: EAbort do
// Exit;
// end;
UserName := FUser;
Password := FPassword;
// ### LH - 21.04.2009 set CurrentDirectory to Database-Directory
// otherwise causes problems when working with Firebird-embedded
// if (csDesigning in ComponentState) then
if (true) then
begin
DirOrg := GetCurrentDir() ;
DirDB := ExtractFileDir(FDataBase) ;
SetCurrentDir(DirDB) ;
end ;
// -### LH end
if FLoginPrompt then
begin
{ Defines user name }
if UserName = '' then
UserName := FProperties.Values['UID'];
if UserName = '' then
UserName := FProperties.Values['username'];
{ Defines user password }
if Password = '' then
Password := FProperties.Values['PWD'];
if Password = '' then
Password := FProperties.Values['password'];
if Assigned(FOnLogin) then
FOnLogin(Self, UserName, Password)
else
begin
if Assigned(LoginDialogProc) then
begin
if not LoginDialogProc(FDatabase, UserName, Password) then
Exit;
end
else
raise Exception.Create(SLoginPromptFailure);
end;
end;
ShowSqlHourGlass;
try
FConnection := DriverManager.GetConnectionWithParams(
ConstructURL(UserName, Password), FProperties);
try
with FConnection do
begin
SetAutoCommit(FAutoCommit);
SetReadOnly(FReadOnly);
SetCatalog(FCatalog);
SetTransactionIsolation(FTransactIsolationLevel);
Open;
end;
except
FConnection := nil;
raise;
end;
finally
HideSqlHourGlass;
end;
// ### LH - 21.04.2009 set CurrentDirectory to Database-Directory
// otherwise causes problems when working with Firebird-embedded
// if (csDesigning in ComponentState) then
if (true) then
begin
SetCurrentDir(DirOrg) ;
end ;
// -### LH end
if not FConnection.IsClosed then
DoAfterConnect;
end;
end;
- mdaems
- Zeos Project Manager
- Posts: 2766
- Joined: 20.09.2005, 15:28
- Location: Brussels, Belgium
- Contact:
Does the problem you have only occur at design time, so within the running IDE? In that case the dll's are probably needed in the directory your IDE is running from.
Otherwise, I wonder if your solution is a safe one. Isn't it possible some users have one dll for all their embedded databases? In that case it's not possible to use your patch. Generally I would say : it's up to the developper to make sure a dll is available.
Mark
Otherwise, I wonder if your solution is a safe one. Isn't it possible some users have one dll for all their embedded databases? In that case it's not possible to use your patch. Generally I would say : it's up to the developper to make sure a dll is available.
Mark