A powerful, PEP-249-compliant Python driver for InterBase, supporting both 32-bit and 64-bit.
The InterBase Driver for Python is based on the FDB driver and provides access to the InterBase RDBMS using a robust and flexible Python interface. This package supports the Python Database API 2.0 standard (PEP-249) while offering extended access to the native InterBase API.
π InterBase Documentation
π GitHub Source Code
- PEP-249 compliance
- Full Unicode and character set support
- Native API access
- Multiple independent transactions per connection
- Distributed transaction support
- Automatic conversion of textual data
- Prepared statement support
Requires Python 3.x (32-bit or 64-bit version to match InterBase client).
Install via PyPI:
pip install interbase
Or install from the GitHub repository:
pip install git+https://github.com/Embarcadero/InterBasePython.git
# or via SSH:
pip install git+ssh://git@github.com/Embarcadero/InterBasePython.git
cd test/files
isql -i create-test-db.sql
import interbase
con = interbase.connect(
host=IBTEST_HOST, # Hostname or IP address of the InterBase server
database=IBTEST_DB_PATH, # Path to the database file on the server
user=IBTEST_USER, # Username for authentication
password=IBTEST_PASSWORD, # Password for authentication
sql_dialect=IBTEST_SQL_DIALECT, # SQL dialect to use (usually 1 or 3)
ssl=IBTEST_SERVER_PUBLIC_FILE is not None, # Enable SSL if a public server key is provided
server_public_file=IBTEST_SERVER_PUBLIC_FILE # Path to the server's public SSL key file (if SSL is enabled)
)
cur = con.cursor()
cur.execute("SELECT * FROM employees")
for row in cur:
print(row)
cur.execute("INSERT INTO employees(name, age) VALUES (?, ?)", ("John Doe", 34))
con.commit()
transaction = con.main_transaction
transaction.begin()
cursor = transaction.cursor()
cursor.execute("INSERT INTO t (c1) VALUES (1)")
transaction.commit()
import interbase
with interbase.TransactionContext(con) as tr:
cursor = tr.cursor()
cursor.execute("INSERT INTO t (c1) VALUES (1)")
# The transaction is automatically committed when the block ends.
Explore the test
folder in the GitHub Repository for full coverage of features, including:
- Working with BLOBs
- Using metadata APIs
- Working with stored procedures
- SSL support
- Error handling
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
This project is licensed under the Embarcadero license terms.
π Stay up to date with the latest changes and enhancements to InterBase by following the official Embarcadero Blog.