Subject RE: [IBDI] ODBC Driver - Where is it?
Author Claudio Valderrama C.
> -----Original Message-----
> From: Mark Pawelek [mailto:mark@...]
> Sent: Lunes 8 de Abril de 2002 12:22
>
> I downloaded the Firebird ODBC driver (OdbcJdbc-20010711.zip) but was
> not able to get it working when I installed it on Windows 2000 pro boxes
> networked to a Windows 2000 server which had Firebird on it.

In NT4, in the [ODBC] Data Sources' Drivers tab, the driver is listed.
Sorry, I don't remember if the install did anything for me or I did extra
manual steps. There was never a polished installation routine.


> The Firebird database was working OK (with QuickDesk Pro on the clients)
> but the ODBC driver did not install properly.

How do you see this? No entry in the Drivers tab? You should look for
OdbcJdbc in the list.


> What is the current status of the ODBC driver?

When that driver was done, ODBC3 was the aim, but most applications use a
mixture of ODBC2 and ODBC3 calls, so the driver had to undergo extra work.
When a public appeal for funds reached some level of success, the driver was
open sourced, but since then, there has not been more development on it.
It's not deliberate. It's simply lack of volunteers.


> What do I need to get Firebird to work with either (preference is in
> order):
> 1) ASP,

In theory, you should be able to use OdbcJdbc, I used it once to test some
trivial requests and it worked from ASP/IIS4, but an early one (not the
version currently at SF) showed some issues against an ancient copy of
Embarcadero's ER/Studio (a CASE). There's also the free XTG driver, open
sourced by the company that uses it to interface with one of its products.
There are at least two commercial offerings, the Gemini one (Aleksey
Karyakin) and the EasySoft one (Nick Gorham). I recommend Gemini -and this
is my personal opinion- because:
- If you want more features in the driver, you will find that Easysoft has
another products that can interface with the driver to provide it (for
example, advanced client-side caching). When I asked Aleksey for some extra
features, he was willing to look into them for integration in the driver.
- Nobody doubts about Nick's expertise with ODBC, but Aleksey is one of the
makers of Yaffil, so he knows the inside story, too. :-)
This shouldn't be seen as an slam on Easysoft in any way. It's a consequence
of my feature v/s budget analysis.

However, for ASP it's more efficient to use ADO->OLE/DB instead of ADO
through the extra layer in the ODBC-OLE/DB bridge provided by MS
automagically. Whether you see a difference relates to the optimizations in
the ODBC driver and the OLE/DB driver (if they are equally good, you should
see the OLE/DB provider ahead in performance). I've only played with the
SIBProvider (Marcio W. B.) from Brazil and the Lipetsk OLE/DB provider
(Dmitry Kovalenko) from Russia. The following information is old, so if
anybody can say something current, please post: I found Marcio's answer
times to be random and I never was sure on his licence and future plans. The
driver used always client-side caching. Dmitry driver didn't have autocommit
initially and didn't offer client-side rowset caching. Response times were
one day or less (good considering our mismatching time zones) and I kept
pushing him because I needed to test a large shitty application that didn't
manage txns at all (done for Access & upgraded by brute force to MsSql) and
relied on some client-side caching tricks. After a few weeks, he delivered a
new version with my and others' requested enhancements. The parameters in
the connection string may seem unconventional, but the thing works.

And no, I'm not a mole promoting Russian developments or I would be working
in Yaffil instead of Firebird.
:-)


> 2) PHP 4 or

There are extensions for several languages to interface with IB/FB.


> 3) Apache ASP under Mod_Perl

For one side, there's IBPerl but also, there's the DBI driver. And there's a
new JDBC/JCA driver for Java that's not an elephant like InterClient and
works with both IB and FB. I think David Jencks should do at least an
one-time announcement here.


> In short - how do I use Firebird as a web server database engine?

You can have a look at the list here:
http://www.cvalde.com/misc/packages_and_utilities.htm
And also, you can go to the main page and click at the bottom in the
WebRing's links. By listing all sites you may find something interesting.


> How much work is involved writing an ODBC driver

I don't think it's a trivial task. Worse, it will take time to make it
functional. I don't recommend to reinvent the wheel if you aren't forced to
do so. You could look at the sources of OdbcJdbc and enhance it instead of
starting from scratch. After all, anybody could benefit from your work. But
first you have to go past the install problem. :-) As I said, at least in
NT4 it got installed.


> and should this driver
> be written in Delphi, C++ or C# or does it not matter?

My biased opinion is that anything that relates to low level Win32
developments and MS SDK's or DDK's is better handled by MSVC in the Windows
world. But the Lipetsk OLE/DB provider is written in BCB (but you have to
carry Borland's C runtime library) and Borland's implib has improved over
years. The Jedi project ported several MS extra headers to Delphi for
example.

A friend mine said he would port MS bugs to Borland's libraries, but I don't
think you'll be interested.
:-)

C.