Subject Re: [firebird-python] Differences between drivers
Author Mario Lacunza
Hello Pavel,

Nice and clear explanation!! thank you!

Can I translate and put it in my spanish blog? Obviously put you like
the author.


Saludos / Best regards

Mario Lacunza
Email:: mlacunza@...
Personal Website:: http://www.lacunza.biz/
OpenOffice.org:: http://es.openoffice.org/
OpenOffice.org PerĂº:: http://openoffice-peru.com/
Hosting:: http://mlv-host.com/
Mascotas Perdidas:: http://mascotas-perdidas.com/
Google Talk: mlacunzav Skype: mlacunzav
MSN: mlacunzav@... Y! messenger: mlacunzav


El vie 25 may 2012 01:55:28 PET, Pavel Cisar ha escrito:
> Mario,
>
> Dne 24.5.2012 19:10, Mario Lacunza napsal(a):
> >
> > I want to know whats the differences between KI and FDB ??
>
> 1. KDB is implemented using mix of C/C++ and Python (extension library
> for Python), while FDB is pure Python module using Firebird client
> library via ctypes Python module. This has several consequences, namely
> KDB doesn't work with Python 3 or other implementations than CPython,
> while FDB supports Python 2 and 3, and can potentially run on other
> Python implementations with ctypes module.
>
> 2. KDB support InterBase and Firebird starting from version 1. FDB
> supports only Firebird 2.0 and newer.
>
> 3. FDB follows the KDB interface and functionality as close as possible,
> except in parts that are specific to implementation method differences
> and legacy support. For example FDB uses much simpler system for Dynamic
> Type Translation than KDB.
>
> 4. Some KDB features are not yet implemented in FDB: event notification
> (will be available in next release by the end of May), array support,
> stream BLOB support to name a few. But core functionality should
> identical or equivalent. Some features are implemented *slightly*
> differently in FDB (different API), namely Distributed Transactions.
>
> 5. FDB implements some features that KDB doesn't, because they're of
> recent date, like support for Trace Service, nbackup service etc.
>
> > for what is better each one??
>
> KDB is necessary when you want to work with InterBase or Firebird 1.x,
> and is still better choice if you want "stable" driver as FDB is still
> in development and you may to run into bugs or rough edges (but we fix
> issues promptly, so it could be a non-issue or event better option as
> more users will help us to iron out the driver into "stable" one more
> quickly).
>
> FDB is necessary when you want to use Python 3 or some new features of
> Firebird 2.5, and it could be also easier (at least that's the
> intention) to work with it.
>
> > which one is better to use in new projects?
>
> Depends on your criteria for immediate stability. Right now, KDB is more
> "stable" than FDB, but from long term POV, FDB is definitely the right
> choice. It's also possible to start with KDB and replace it later with
> FDB, as differences between them are really very small and
> well-isolated. For example, Firebird's QA tool-chain built in Python
> using KDB was converted to use FDB by changing 3 lines of code and
> everything worked out of the box. Of course, we had to adjust
> dependencies to driver exception format stored in test data - which is
> different in both drivers (same "semantics", but different "syntax", so
> to speak), but changes in test engine itself was really just 3 lines.
>
> > The dev of KI was stopped for Firebird?
>
> Yes. You can learn all details why it was stopped and why FDB was
> started as replacement here:
> http://web.firebirdsql.org/index.php?op=devel&sub=python
> <http://web.firebirdsql.org/index.php?op=devel&sub=python>
>
> > I use FB a lot many years ago but for job reasons I dont use it in over
> > 3 years, I plan to use it with Python to development desktop app single
> > and network environment. Im using Python 2.7 over Ubuntu 12.04 64 bits.
>
> In such environment you can freely choice between both drivers.
>
> best regards
> Pavel Cisar
> IBPhoenix
>
>