Discussion:
[Firebird-odbc-devel] ODBC to networked computer
Craig Fogg
2013-09-18 22:05:11 UTC
Permalink
Friends,

I have a database installed on a central computer (not running a server
OS) that I am trying to connect to two clients. The database folder is
shared on the network as L:\database\ All PC's are running Windows 7.
For one client simply connecting to L:\Database|{dbname} in the ODBC
configuration worked fine. For the other, I cannot connect no matter
what string I use. Following the Help documentation I have tried all
combinations suggested. But each time I cannot connect. Both client PC's
are running the same, newly updated 2.0.2.153 ODBC Driver. Any
suggestions?? Why did L:{etc} work when this not documented as a valid
connect string/method? Something hiding in the code we don't know about?

Any comments would be appreciated.
Craig
--
Craig Fogg

Phone 603-380-3208
Email ***@portfogg.com
Tweet rebelfogg
Helen Borrie
2013-09-19 08:34:41 UTC
Permalink
Post by Craig Fogg
Friends,
I have a database installed on a central computer
(not running a server OS)
What does that mean, exactly?
Post by Craig Fogg
that I am trying to connect to two clients.
Clients connect to databases, not the other way around. And remote clients do so *only* through a running Firebird server.
Post by Craig Fogg
The database folder is
shared on the network as L:\database\
Firebird is not a file-served system so this (purposely) will not work.
Post by Craig Fogg
All PC's are running Windows 7.
For one client simply connecting to L:\Database|{dbname} in the ODBC
configuration worked fine.
Check that one again. There's no reason it should work.
Post by Craig Fogg
For the other, I cannot connect no matter
what string I use. Following the Help documentation I have tried all
combinations suggested. But each time I cannot connect. Both client PC's
are running the same, newly updated 2.0.2.153 ODBC Driver. Any
suggestions??
The connection string is hostname:D:\path\to\database_file, where "D:" MUST BE the actual drive letter of a drive that is under the control of the machine that is running the Firebird server. Better, use an alias for the "D:\path\to\database_file" segment.

That's TCP/IP protocol. You could alternatively use Named Pipes protocol with a string like

\\hostname\D:\path\to\database_file

Although valid, it is deprecated and is a noisy protocol.
Post by Craig Fogg
Why did L:{etc} work when this not documented as a valid
connect string/method? Something hiding in the code we don't know about?
It's not valid and it would be astonishing if it actually does work. But if it really does then stop right now, as working with a database in any location that isn't under the control of Firebird's hosts is kamikaze. (With a setting in firebird.conf, you can do it on some non-Windoze platforms, at your peril.)



Helen Borrie, Support Consultant, IBPhoenix (Pacific)
Author of "The Firebird Book" and "The Firebird Book Second Edition"
http://www.firebird-books.net
__________________________________________________________________
Loading...