Skip to main content

A set of tools to simplify connecting to and working with an ODBC data source

Project description

Overview

odbc tools is a set of tools to simplify connecting to and working with an ODBC data source. It includes a context manager for handling connections to the data source and the ability to return a result set in an easy to use format or write the results to a file.

Install It

From PyPI

$ pip install odbctools

Use It

Odbctools by default uses a file called config.ini, or you can override this for different scenarios, including passing the dsn directly.

Create config.ini

[odbc]
DSN=SourceName

Code Example

from odbctools import OdbcManager

query_string = "Your query here"
params = [p1, p2]

with OdbcManager() as datasource:
    result_list = datasource.get_dictionaries(query_string, params)
    for result_dict in result_list:
        for col_name, col_data in result_dict.items():
            print("{0}{1}".format(str(col_name).ljust(25), col_data))

Another Example

from odbctools import OdbcManager

query_string = "Your query here"
params = [p1, p2]

with OdbcManager(dsn='ODBC Name Here') as datasource:
    result_list = datasource.get_dictionaries_in_queue(query_string, params)
    for result_dict in result_list:
        for col_name, col_data in result_dict.items():
            print("{0}{1}".format(str(col_name).ljust(25), col_data))

Encapsulating the connection in your classes is also possible

class Foo:
    def __init__(self):
        self.connection = OdbcManager(dsn='unity64')

    def __enter__(self):
        self.connection.open_connection()
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        self.connection.close_connection()

with Foo() as f:
    data = f.connection.get_dictionaries('select top 1 * from people', list())

Note: You can now create a OdbcManager object with a connection string, passing in the connection_string argument.

Returning data from a query

query - Returns list that contains [0]A list containing the query columns [1:] A list of the resulting data (rows)

get_dictionaries - Queries data source, returns a list of dictionaries.

get_dictionaries_in_queue - Queries data source, returns a deque of dictionaries.

write_to_csv - Queries data source and writes results to a CSV file

Updating data

Note: by default commit is turned off, if you want to enable auto commit, you can set it when creating the OdbcManager object or when calling this function.

query_no_resultset - For running DDL/DML queries for creating, deleting, updating records.

Dependencies

  • pypyodbc

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

odbctools-0.7.1.tar.gz (28.2 kB view details)

Uploaded Source

Built Distribution

odbctools-0.7.1-py3-none-any.whl (28.4 kB view details)

Uploaded Python 3

File details

Details for the file odbctools-0.7.1.tar.gz.

File metadata

  • Download URL: odbctools-0.7.1.tar.gz
  • Upload date:
  • Size: 28.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for odbctools-0.7.1.tar.gz
Algorithm Hash digest
SHA256 61e6661d0066fb21bdbe4b723608aff71fb9755eb22b846d06bf026198116fc8
MD5 589fd677bdb6245e706aeb31b2fcee8d
BLAKE2b-256 87e65045dd449e3c45bf3e2b5cfe153c020f88d1d31cb39e9a77431d50367384

See more details on using hashes here.

File details

Details for the file odbctools-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: odbctools-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 28.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.13

File hashes

Hashes for odbctools-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f8c98b8c181105772649ec7f2f15a181faecb9a802c4d1660e9548edc9d47112
MD5 4a9c6f5038c9c4e4c2d062640016bef0
BLAKE2b-256 81006c6f3f50cd354e56f420a873ffd95324c9f12270e546e122f815d67a6e88

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page