Hello Robert, here's what I found about Firebird the last two days:

As you might have noticed I've started working on a ASP.NET application 
using Delphi and I obviously wanted to use my favorite database, 
Firebird. First of all there's not much info on Firebird + ADO.NET 
provider + Delphi.NET, but there's a good raison for that: Firebird's 
ADO.NET is, well, an ADO.NET provider! It works like any other ADO.NET 
provider and there isn't much specific info to say about it. For the 
parts that are specific to Firebird, make sure you take a look at the 
SDK / CHM documentation that got installed on your system when you 
installed the ADO.NET provider.

Moving on, I noticed you're taking the hard road building the connection 
string. The FbConnectionStringBuilder has properties for every single 
parameter, you don't need to add them as text. If you add them as text 
and you miss-spell something you'll be in trouble, the engine might miss 
them.

    CNB := FbConnectionStringBuilder.Create;
    CNB.UserID := 'SYSDBA';
    CNB.Password := 'masterkey'; // default password
    CNB.Database := 'C:\TechDB\TechDB.FDB'; // Database path
    CNB.Port := 3050; // This is the default
    CNB.Pooling := True; // Smart for ASP.NET
    CNB.ServerType := 1; // This has to be 1 for embeded

    // Start the connection
    FConnection := FbConnection.Create(CNB.ToString);

Since you ran into trouble starting the application because of the not 
found DLL, here's something about that DLL and it's history (I suspect 
there's an bad error message). Your application is complaining about the 
thing that's called "the client library". Historically this was called 
GDS32.DLL (back in the days when Firebird was actually Interbase). When 
the switch was made to Firebird, they changed the name of the default 
client library to "FBCLIENT.DLL". This "new" client library exposes 
almost the same interface as GDS32 and, in fact, changing it's name to 
GDS32.DLL will keep older applications happy. When they shipped the 
Embedded version of Firebird they shipped the library with yet an other 
name, and the developer is supposed to change it's name to whatever's 
required. This is documented in the "readme_embeded.txt" file in the 
"doc" subfolder of the embeded installation. My guess is that you'll 
need to change it's name to "fbclient.dll", those I haven't tried it, I 
haven't used the embeded version of Firebird with NET.

Further on, you should install the FULL version of Firebird on your 
development machine. This is not really required but it makes debugging 
easy: The Embeded version of Firebird only allows one application  
access to the database at any given time (that's why it's embeded, it 
has no inter-process communication capabilities), and this makes things 
a bit difficult. Ex: if you keep a connection to the database opened 
from the Delphi IDE and you hit Run to start the application, the 
application will complain about not being able to connected to the 
database as the database is opened by a different application. Besides, 
when I'm working on a database application I always keep a DB Management 
application opened and connected to the Database. This gives me the 
ability to quickly test a SQL query in a better / more forgiving 
environment and gives me the ability to change stuff around.

And yes, about the DB Management application, please install IBExpert 
Personal Edition. It's about a million times better then IBConsole so it 
really helps a lot! You'll find it at www.ibexpert.com. You'll need to 
fight the interface a bit (as they're running an "odd" experiment with 
the Personal Edition download page) but keep going, it will eventually 
work. Note: use Internet Explorer. I wasn't able to get it working with 
Opera.

If you need an introduction to SQL and Interbase/Firebird, take a look 
here: 
http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download_documentation 
Most documentation is about Interbase 6.0, but it all works with 
Firebird 2.0 as well. And please note, you don't really need to use the 
"isql" tool to run the sample codes in that document. IBExpert works 
just fine. I personally prefer a GUI for whatever. I'm a Windows 
programmer after all...

P.S: Fell free to mail me directly if the list moving too slow.

Robert Meek wrote:
>       It took more than a lot of searching, but finally after combining
> and extrapolating the code I found on 4 different sites, I finally came up
> with what I believe is a proper start to using Firebird in an embedded
> application.  Here it is in Pascal NET code, ( the types and vars are
> elsewhere):
>
> MyFBConnectionString := new FbConnectionStringBuilder();
>   MyFBConnectionString.Add('ServerType', 1);
>   MyFBConnectionString.Add('User', 'SYSDBA');
>   MyFBConnectionString.Add('Pooling', False);
>   MyFBConnectionString.Add('Password', 'masterkey');
>   MyFBConnectionString.Add('Dialect', 3);
>   MyFBConnectionString.Add('Database', DataStoreFile);
>   MyFbConnection := new FbConnection();
>   MyFbConnection.CreateDatabase(MyFBConnectionString.ToString);  
>
>       At least this seems to compile!  Unfortunately however, I am now
> getting an error message when I attempt to run it thru the debugger saying
> that it cannot find the fbembed.dll, which is located not only where it was
> originally installed, but also in the application's exe directory!   So the
> only thing I can think of is that I'm still missing something in my
> connection string.  Does anyone know how to get past this?
>       Also, it's hard for me, coming from a strict Delphi background, to
> believe how difficult it seems to be to get decent info on using Firebird!
> I've asked everywhere including here before, and all I get are cryptic
> replies like google it or your connection string is wrong!  The docs have
> absolutely no information to help a beginner start using it, and even the
> code above, which is an extrapolation of googled code I can't say for sure
> will work because it matches nothing I found anywhere!  Nothing I found
> would compile!  This makes it very improbable that I would waste any money
> of a Firebird book because if the internet docs and the docs that come with
> the installation are this bad I'd be afraid of what I'd find in a real book!
>       I'm not trying to be a smartass.  I'm really frustrated by the lack
> of honest help and documentation that I've always depended upon with Delphi.
> One guy replied to my query on the firebird list privately and told me that
> I didn't know how to read, then proceeded to give me code and instructions
> that had nothing to do with what I had asked!  
>       So now even IF someone is able to tell me that the above code is
> correct, or help me fix it if it is not, and can tell me how to get the app
> to find the dll it cannot seem to now, I have no idea of what to do next!
> The docs are full of interesting facts about SQL, but nowhere have IO seen
> any instructions that show one how to setup and create tables, fields, give
> them values, indexes, and retrieve data back without SQL!  Yet I'm told it
> is possible!  Please tell someone who has only worked with dB's via
> components where to find the information I need to make use of what I'm told
> is a great system!
>
> from Robert Meek dba Tangentals Design  CCopyright 2006
> Proud to be a moderator of "The Delphi Lists" at elists.org
>
> (["An unused program is the consequence of a higher logic!", nil])  As
> written in The Compendium of Accepted Robotic and Surrlogic Theorems Used in
> the Self Analysis of Elemental Positronic Pathways...1st Edition Revised
>
>
>
> _______________________________________________
> Delphi-DB mailing list
> Delphi-DB@elists.org
> http://www.elists.org/mailman/listinfo/delphi-db
>
>   

_______________________________________________
Delphi-DB mailing list
Delphi-DB@elists.org
http://www.elists.org/mailman/listinfo/delphi-db

Reply via email to