Subject Re: [firebird-support] fbembed: let's get it straight (was Re: FB Embedded: How does it know if it should be a server?)
Author Nando Dessena
as I suspected most of the confusion we have happens on the
terminology ground, not in the substance.

I have to admit that each time I happen to get involved in this kind
of discussion I am tempted to forward everything to Dmitry Y, since
when I was saying that overriding the IPServer connection string
syntax to do embedded connections would have caused confusion he
assured that wouldn't happen. It has happened on a regular basis since
then and it is happening still. Oh well...

Let's try to get a common terminology for the benefit of all. Firebird
supports several *communication protocols*. Examples:

1) Local (a.k.a. IPServer) c:\some\file\name.fdb
2) TCP/IP hostname:c:\some\file\name.fdb
3) NetBeui (a.k.a. Named Pipes) \\hostname\c:\some\file\name.fdb
4) IPX/SPX (a.k.a. Netware) hostname@c:\some\file\name.fdb

All of these are supported by the *client library* fbclient.dll.

The *embedded engine* fbembed.dll embeds a client library and a
Firebird SS engine in one file. Its client library supports 2), 3) and
4) above for connectiong to a *stand-alone Firebird server*, and in
addition supports:

5) Embedded c:\some\file\name.fdb

Since 1) and 5) share the same syntax, one of them has to give. Thus,
fbembed cannot support 1). This means that it cannot be used as a
client for a local (meaning on the same machine) stand-alone Firebird
server via the Local/IPServer protocol. It *can* be used as a client
for a local Firebird server via any other supported protocol.

Aside: when using the TCP/IP protocol with "localhost" or ""
as hostname, it is conventional to say that we are using the "TCP/IP
local loopback protocol". Actully there's no such thing as a loopback
protocol per se: it's just that the TCP stack detects localhost and and doesn't send the packets over the wire. This can be
thought of as an optimization that happens at a much lower level that
Firebird and as such, as far as the Firebird client library is
concerned, there's no difference between




I hope this clears things a bit. If it does, it would be useful to
publish it somewhere. If it doesn't, then it should be corrected or
things should be made clearer by themselves! :-)

Nando Dessena
I support Firebird, I am a Firebird Foundation member!
Join today at