Skip to main content

InterBase Driver for Python

InterBase

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)

Table of built distributions (wheels) for interbase 1.0.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.0.1 This release

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page