Subject Re: [firebird-support] How do attach to a remote database server?
Author Ann W. Harrison
Jeff Lynn wrote:
> I am a bit confused how the client/server model work in the case of
> using the fbclient.dll API.

Normal client applications use the InterBase/Firebird API whether
they are remote or local. The attach_database call parses the
file name to determine whether the database is local or remote,
including translating logical names and probing for NFS mounts.

If the database is remote, a part of the fbclient.dll packages
the requests for transmission across the network, managing
network protocol issues and translating the data (where necessary)
into a common transfer format - we happen to use Sun's XDR. For
example, a network communication between a Mac PowerPC client
and a Linux Intel server requires that data be converted, while
communication between a Windows Intel client and a Linux Intel
server does not, because client and server use the same data

That digression aside, the other end of the network is the
Firebird (or InterBase) server, which takes the packets apart,
and translates the communication back into the InterBase API
for local execution.

Although the API is documented and (reasonably) strictly
controlled, the wire protocol is not.

The Firebird JDBC interface (JayBird) uses the underlying wire
protocol directly, as does the Firebird .NET driver.
> There is a isc_service_attach() API, does this one I should use if I
> want to attach to the remote Firebird database server?

No. That's a special attachment call for the services API...