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

> 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

Reply via email to