Hello,
Hope everyone is doing well.  Having this problem of not being able to
connect to an existing embedded Firebird database using Python.
I work regularly on a Windows 7 x64-bit, Python 2.7 (switched to 2.6 for
kinterbasdb w/o success, then switch back). I also have a licensed copy
of Firebird Maestro.  Tried three different library packages:

    * firebirdsql (relatively new, but does not seem to have support for
embedded) (http://pypi.python.org/pypi/firebirdsql
<http://pypi.python.org/pypi/firebirdsql> )


    * kinterbasdb (last update was in 2010, seemed to install) (


    * fdb (could not install either on Windows or
MacOS).(http://pypi.python.org/pypi/fdb
<http://pypi.python.org/pypi/fdb> )

have the bellow code (basically trying to invoke the sample code on the
documentation:
# import firebirdsqlimport kinterbasdb
# the server is named test.fsdb# con =
firebirdsql.connect(dsn='TEST.FDB', user='SYSDBA',
password='masterkey')con = kinterbasdb.connect(host='',
database=r'C:\src\python\pyfirebirdsql\TEST.FDB',user='sysdba',
password='masterkey')
cur = con.cursor()
# execute the select statementcur.execute("select * from languages order
by year_released")
# retrieve all rows in a sequence and print the sequenceprint
cur.fetchall()
TEST.FDB file is in the same directory as I am running the script. With
firebirdsql package, I receive below:
c:\src\python\pyfirebirdsql>python fsdb_test.pyTraceback (most recent
call last):  File "fsdb_test.py", line 5, in <module>    con =
firebirdsql.connect(dsn='TEST.FDB', user='SYSDBA', password='masterkey')
File "c:\src\python\pyfirebirdsql\firebirdsql\__init__.py", line 64, in
connect    database=database, charset=charset, port=port)  File
"c:\src\python\pyfirebirdsql\firebirdsql\fbcore.py", line 759, in
__init__    self.sock.connect((self.hostname, self.port))  File
"C:\Python27\lib\socket.py", line 224, in meth    return
getattr(self._sock,name)(*args)socket.error: [Errno 10061] No connection
could be made because the target machine actively refused it
Looks like support for embedded is missing for firebirdsql.
With kinterbasdb, I get this:
c:\src\python\pyfirebirdsql>python fsdb_test.pyTraceback (most recent
call last):  File "fsdb_test.py", line 2, in <module>    import
kinterbasdb  File
"C:\Python27\lib\site-packages\kinterbasdb\__init__.py", line 119, in
<module>    import _kinterbasdb as _kImportError: DLL load failed: %1 is
not a valid Win32 application.
This is 32 bit vs 64-bit issue looks like. I made sure I used both
64-bit editions of Python 2.7 and kinterbasdb-3.3.0. Still getting this
message. Created an embedded folder as described here in the
Python27\Lib\site-packages\kinterbasdb\embedded and copied the three
DLLS (unblocked on Windows).
Could not even install fdb using below command:
c:\src\python\fdb-0.9.1>python setup.py buildTraceback (most recent call
last):  File "setup.py", line 7, in <module>    from fdb import
__version__  File "c:\src\python\fdb-0.9.1\fdb\__init__.py", line 23, in
<module>    from fdb.fbcore import *  File
"c:\src\python\fdb-0.9.1\fdb\fbcore.py", line 26, in <module>    from .
import ibase  File "c:\src\python\fdb-0.9.1\fdb\ibase.py", line 39, in
<module>    fb_library = WinDLL(fb_library_name)  File
"C:\Python27\lib\ctypes\__init__.py", line 353, in __init__   
self._handle = _dlopen(self._name, mode)TypeError: expected string or
Unicode object, NoneType found
Just to see if embedded works, I switched to .NET (sigh) and able to
connect to the same database using the below:
class Program    {        static void Main(string[] args)        {
string ConnectionString =
"Database=E:\\TEST.FDB;User=SYSDBA;Password=masterkey;Dialect=3;ServerTy\
pe=1";            FbConnection addDetailsConnection = new
FbConnection(ConnectionString);            addDetailsConnection.Open();
             Console.WriteLine("connection open");           
Console.ReadLine();            addDetailsConnection.Close();           
Console.WriteLine("connection closed");            Console.ReadLine();
} }
For .NET, I followed the detailed and easy-to-follow instructions found
here.
http://nazmialtun.blogspot.com/2012/01/using-embedded-firebird-database-\
in-net.html
<http://nazmialtun.blogspot.com/2012/01/using-embedded-firebird-database\
-in-net.html>
Any help, expertise with the above would be appreciated. Thanks!
Baskin Tapkan





Reply via email to