My program (DB) (written by Delphi7 ) works under Firebird . Also on the PC is also Delphi10.2 (with its Client InterBase ).
The program uses the “ IBBackupService1 ” component, which uses the “ GetNextLine method ”.
After some time, an error has occurred on this method:

“... exception class EIBInterBaseError with message 'unavailable database unknown ISC error 336330835'

I read that this is due to the wrong use of the gds32.dll program. The truth is that I have 4gds32.dll ” libraries on my PC and different sizes, see fig. enter image description here

Yes, and I on this PC, then installed, then uninstalled FB . (and I have “ gds32.dll ” in system32 only from FB )

On another PC, on which there is only FB and one “ gds32.dll ” (and I deleted all unnecessary “ gds32.dll ”, once there was InterBase too), there are no such problems. What do I need now, in Delphi10.2 , to demolish Client InterBase ?

Yes, I also put the "IBXDP705.EXE" and "IBXDP708.EXE" updates for Delphi7 - but that was a long time ago.

    2 answers 2

    The situation you describe is called DLL Hell . To avoid it, never copy files to System32.

    Use either the full path to the dll when loading it or put the correct version of the dll in the folder with the exe file.

    • Something does not really help, copying "gds32.dll" to the directory with the program. The error remains. I’m on a 64-bit system and tried to copy both versions of the dll in turn, or rather one version, but a different size. On the PC on which the program runs, the 32-bit OS is installed - Konstantin78
    • Take the fbclient.dll file from the Firebird\bin` и скопируйте его в каталог программы, изменив его имя на gds32.dll` - Anton Shchyrov
    • This means either you are launching another file, or exe loads the library with a different name, or the library is loaded with the full path. Himself exe, by chance, can not be deleted? Run ProcessMonitor and see what is being searched for and where. - Anton Shchyrov
    • Yes, yes, I have already changed the gds32.dll files in system32 and SysWow64, restarted the server, now when starting the program, the error "Exception EIBClientError in module setting.dll at 0008DDB4." throws one of my libraries. Exe - I run with Totalcommander - Konstantin78
    • Although it may not be a library, I compared them with the PC "WinXP" (x32) system32 and Win 10 (x64) SysWOW64, they are the same, all the more so 2 weeks ago I compiled the same code on the PC Win10 - it was all normal. I was just confused. Stackoverflow.com/questions/800892/… - Konstantin78

    1) Delete all gds32.dll, copy to System32 the correct one from Firebird. If you do not use connections to Interbase (namely Interbase) from the programs on Delfi xe10, then it will.

    2) If in Delphi 7 connect via FIBPlus, then write in the project file

     uses .. ibase... ... begin IBASE_DLL = 'mycollfbclient.dll'; //любое имя 

    ... and rename gds32.dll from Firebird to mycollfbclient.dll. It is enough to throw it into the directory with the program or in System32. True in different versions of FIBPlus it can be a constant, or it can be a variable.

    3) If you use IBX in Delphi 7, then look at the IBHeader.pas file for IBASE_DLL. In my Delphi 6 is a constant. So either fix it on var, or name it directly on the other in IBHeader.pas and recompile, if possible.

    Notify

    • what is your version of firebird

    • whether there are source codes of the program on Delfi 7

    • what access components do you use in it