views:

225

answers:

3

I'm pretty perplexed... I've got 5 different test computers, all relatively blank Windows XP machines running similar hardware specs. I run a silent install of the FireBird (Classic) database and my application. Some computers require "localhost:" (or 127.0.0.1) before the database location to make a connection, and some simply don't work at all! This is running the exact same software across the board. Does anybody have any suggestions as to what needs to happen to make the connection string universal, or what I could be doing wrong??

It's firebird version 2.1.1.17910 Classic

By the way, i tried connecting to the same database using FlameRobin (a small db management tool) and it worked just fine on the computers that don't connect.

Any more information necessary just let me know! Thanks a lot in advance

+1  A: 

I'm not sure whether you are aware of that, but a connection string without "localhost:" or "127.0.0.1:" in front of the database name or alias will use the local protocol, which can't be used when connecting to Firebird Classic Server (see this link for more information). If a host name or IP address is given, then TCP port 3050 will be used for the connection.

If you have registered a server in FlameRobin, and did not leave the hostname field in the registration dialog blank, then the host name will be part of the connection string. That would explain why you can connect using FlameRobin.

As for the differences between the machines: You should first go to the Firebird Server Manager applet and make sure that the server is indeed running on all machines, and that the version is the same.

mghie
Cyprus106
Can you connect using isql on the non-functional machines? Also, are there any error messages in the firebird.log file (FB installation directory), or any Windows event log entries?
mghie
A: 

Does it have something to do with the hosts file on some of the computers? Or is that what you're referring to with your

Some computers require "localhost:" (or 127.0.0.1) before the database location...

comment?

Knobloch
I just don't know. the ones that do work i don't even need localhost, just the path to the local db file. the ones that dont work just dont seem to work with any connection string, following the exact same procedure i did with working computers
Cyprus106
+1  A: 

For anybody's future reference, the answer is in the services. Apparently it's not being registered as a service for some reason, and on the working computers, was at some point registered, probably through some sort of far earlier tests of Interbase is my best guess.

C:\Windows\System32\drivers\etc and opening up the file 'services' and adding the following line allows the server to run properly.

gds_db 3050/tcp

Cyprus106
Additionally, utilizing some connection methods through C++, (For me: DBExpress in Borland C++ Builder) particularly using legacy Interbase connection methods CAN work with FB, but if they utilize GDB32.dll instead of fbclient.dll, there is a good chance for some funky problems.
Cyprus106