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