InterBase Driver for Python
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
✨ Features
- 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
📦 Installation
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
🧪 Setting Up a Test Database
cd test/files
isql -i create-test-db.sql
🔌 Sample Usage
Basic Connection
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)
)
Executing a Query
cur = con.cursor()
cur.execute("SELECT * FROM employees")
for row in cur:
print(row)
Using Parameters
cur.execute("INSERT INTO employees(name, age) VALUES (?, ?)", ("John Doe", 34))
con.commit()
Handling Transactions
Manual Transaction Control
transaction = con.main_transaction
transaction.begin()
cursor = transaction.cursor()
cursor.execute("INSERT INTO t (c1) VALUES (1)")
transaction.commit()
Using a Context Manager
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.
🧰 More Examples
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
🤝 Contributing
Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.
📜 License
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.
Metadata
Release files for interbase 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| interbase-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / interbase-1.0.1-py3-none-any.whl
| Download URL | interbase-1.0.1-py3-none-any.whl |
|---|---|
| Size | 212.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c45a39903aa8327cfa5d900744b34211b1bbdad90f4c9d435067debd69d47f05
|
|
BLAKE2b-256 checksum How to use checksums |
45fd265a76b64e61a506af407049f21e8177502f8358802230a3a254a95d023c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 11, 2025.
Transparency log