Author: Gabe Goldfield
Table of Contents
Install PyDev using the Eclipse IDE
The instructions for installing PyDev are here:
http://www.pydev.org/manual_101_install.html
In the Eclipse IDE I chose Help > Install Updates and Entered the URL for PyDev
Install Python3.4
I chose the Windows x86 .msi installer from here
https://www.python.org/downloads/release/python-342/ and installed to C:Python34_2
Configure Eclipse to use Python
In Eclipse select Windows>Preferences
Under the Pydev tree, select PyDev> Interpreters> Python Interpreter
Click New and set the Python Interpreter name and executable to the previously install Python
Download the FDB 1.4.9 driver sources
The sources are available here
https://pypi.python.org/pypi/fdb
I extracted the sources to
C:fdb-1.4.9
Edit the sources to use the InterBase client library gds32.dll instead of the FireBird default library
There were 2 files that needed to be changed to work with Embarcadero InterBase XE7 instead of the Default FireBrid server.
Ibase.py
Starting at line 1163
Original
1 2 3 4 5 6 7 8 9 10 11 12 13 |
fb_library_name = find_library('fbclient.dll') if not fb_library_name: # let's try windows registry if PYTHON_MAJOR_VER == 3: import winreg else: import _winreg as winreg # try find via installed Firebird server baseKey = 'SOFTWAREFirebird ProjectFirebird ServerInstances' key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, baseKey) instFold = winreg.QueryValueEx(key,'DefaultInstance') fb_library_name = os.path.join(os.path.join(instFold[0], 'bin'), 'fbclient.dll') |
New
1 2 3 4 5 6 7 8 9 10 11 12 13 |
fb_library_name = find_library('gds32.dll') if not fb_library_name: # let's try windows registry if PYTHON_MAJOR_VER == 3: import winreg else: import _winreg as winreg # try find via installed Firebird server baseKey = 'SOFTWAREEmbarcaderoInterBaseServers' key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, baseKey) instFold = winreg.QueryValueEx(key,'RootDirectory') fb_library_name = os.path.join(os.path.join(instFold[0], 'bin'), 'gds32.dll') |
Starting at line 1479
Original
1 2 3 |
self.fb_interpret = fb_library.fb_interpret self.fb_interpret.restype = ISC_LONG self.fb_interpret.argtypes = [STRING, c_uint, POINTER(POINTER(ISC_STATUS))] |
New
1 2 3 |
#self.fb_interpret = fb_library.fb_interpret #self.fb_interpret.restype = ISC_LONG #self.fb_interpret.argtypes = [STRING, c_uint, POINTER(POINTER(ISC_STATUS))] |
Fbcore.py
Starting at line 542
Original
1 |
result = api.fb_interpret(msg, 512, pvector) |
New
1 |
result = api.isc_interprete(msg, pvector) |
Starting at line 923
Original
1 |
verstr = self.db_info([isc_info_firebird_version])[isc_info_firebird_version] |
New
1 |
verstr = self.db_info([isc_info_version])[isc_info_version] |
Starting at 1343
Original
1 |
elif infoCode in (isc_info_version, isc_info_firebird_version): |
New
1 |
elif infoCode in (isc_info_version, isc_info_version): |
Install the driver to your local Python Environment
After making the changes to ibase.py and fbcore.py, you are now ready to install the driver to your Python Environment.
From the commandline navigate to the fdb1.4.9 directory.
C:fdb-1.4.9>python.exe setup.py install
After installed you should see the message
Installed c:python34_2libsite-packagesfdb-1.4.9-py3.4.egg
Processing dependencies for fdb==1.4.9
Finished processing dependencies for fdb==1.4.9
Write a simple test to connect to InterBase in Eclipse
In Eclipse select file > new > project > PyDev > PyDev project
More complete instructions can be found here
http://www.pydev.org/manual_101_project_conf.html
After creating a blank Python module, I added this code.
1 2 3 4 5 6 7 8 9 10 |
# The server is named 'localhost'; the database file is at 'C:ProgramDataEmbarcaderoInterBasegds_dbexamplesdatabaseemployee.gdb'. con = fdb.connect(dsn='localhost:C:ProgramDataEmbarcaderoInterBasegds_dbexamplesdatabaseemployee.gdb', user='sysdba', password='masterkey') cur = con.cursor() # Execute the SELECT statement: cur.execute("select * from country") # Retrieve all rows as a sequence and print that sequence: print (cur.fetchall()) |
This is all the code needed to import the driver, create a connection, create a cursor, select the data, and print the result.
After adding this code to a blank Python Module, select the Module > Run As > Python Run.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition