Subject Re: [firebird-support] Detecting FBEMBED vs. FBCLIENT.DLL
Author Richard Wesley
On 20 Jul 2007, at 07:51, <myles@...> <myles@...> wrote:

> I have an application that I'm working on that will run either
> Single User
> or Multi-User and its licensing is different in these modes. In
> multi-user
> we are using a semi-3 tier approach for the application, but in
> single user
> its just two tier (app + local FB database).
> I'm thinking that FB Embedded for the single user is perfect, but
> if the
> user wishes to run the application with a network database server,
> they will
> need FBCLIENT.DLL installed for network access. In multi-user
> mode, there
> are also a number of services provided by a 'server' application
> that we
> have developed that are also required, but the client communicates
> directly
> with the database server in multi-user configuration.
> I need a way to detect if the user is running the app (Delphi 7)
> against a
> FB Embedded database or against a FB network database. Are there
> any calls
> that can be made to the client DLL that will tell me which client
> DLL is
> being used so that we can detect this on startup?

This is very similar to what we do. Our Standard license can only
talk to local files (e.g. Excel and Firebird database files) but our
Professional license can talk to Firebird (and other SQL) servers.
We just use the fbembed.dll to talk to both and enforce the licensing

I suppose if you are really really really concerned about disk
footprint, you might worry about this, but as it is only about 2Mb I
can't see it as being much of an issue in this day and age.

Incidentally, the small footprint of FB embedded was a major factor
in using it. Aside from the large size of the "personal" editions
from some other vendors (650Mb+ for some of them!) FM embedded is
actually smaller than some of the connectivity libraries for these
other vendors!
Richard Wesley Senior Software Developer Tableau