Subject Re: [firebird-support] Re: Undefined service gds_db/tcp error
Author Stefan Heymann
>> machine.Undefined service gds_db/tcp..

> It means either that port 3050 is firewalled [...] or something else
> has commandeered port 3050.

Sorry, Helen. But "Undefined service" means just that: the network
subsystem is unable to resolve a request to a TCP service named
"gds_db" into a port number. Which means that there is no such entry
in the "services" file.

The question is: why does the network subsystem even try to resolve
this service? To me, it seems there is a GDS32.DLL involved. IbObjects
seems to fall back to GDS32.DLL when it doesn't find what you have
specified in IB_Constants.IB_GDS32.

@Pete: Is there a GDS32.DLL anywhere on the machine that gives this
error? (especially in the Windows\System32 directory?) Or is there/has
there been an InterBase server/client app installed?

When you just specify "fbclient.dll" as the library name, the order
that the Windows API LoadLibrary searches for this library is (see
Windows API documentation):

1. The directory from which the application loaded.
2. The current directory.
3. Windows 95: The Windows system directory.
Windows NT: The 32-bit Windows system directory (Windows\System32)
4. Windows NT: The 16-bit Windows system directory (Windows\System)
5. The Windows directory.
6. The directories that are listed in the PATH environment variable.

LoadLibrary *will not* search for fbclient.dll in the bin directory of
your Firebird installation (unless you uncluded this in your PATH
environment variable, which would be rather unusual).

What you can do:
- Open the Registry and search for
HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances
- There is a value named "DefaultInstance" here that gives the name of
the Firebird directory ("C:\Programme\Firebird\" here on my machine)
- Add this directory to your fbclient.dll library name:

IB_Constants.IB_GDS32 := FirebirdDir + '\bin\' + 'fbclient.DLL';

If you can't find the key in the registry, fbclient.dll should be
directly in the application directory (this will work, you don't have
to install the complete Firebird Client to get client access for an
application, see ) or in the
System32 directory.

Best Regards


Stefan Heymann