Zugriff auf eine PSQL-Zen-Datenbank mit Python und ODBC
Actian Germany GmbH
Januar 4, 2018

Als Programmierer der alten Schule von vor ein paar Jahrzehnten beschloss ich, herauszufinden, wie schwer es sein würde, mit meinen neu erworbenen Python auf eine Zen-Datenbank (früher bekannt als PSQL) zuzugreifen. Für den Fall, dass Sie nicht damit vertraut sind, Zen ist Actians eingebettet Zero-Admin, Nano-Footprint Hybrid NoSQL und SQL-Datenbank-Software, und Python ist eine High-Level-Programmiersprache, die häufig in der data science und Internet-Anwendungen (neben vielen anderen Dingen) verwendet wird.
Da ich bereits über einige Kenntnisse von Actian Zen verfügte, musste ich lediglich einen EdX-Einführungskurs in die Python absolvieren und anschließend Python 3.6 zusammen mit der entsprechenden pyodbc-Bibliothek herunterladen und installieren.
Das unten gezeigte einfache Programm zur Verbindung von Zen mit Python besteht aus etwa 30 Zeilen Code! Es stellt eine Verbindung zur Datenbank "demodata" her, weist einen Cursor zu und führt eine Reihe von SQL-Anweisungen für DROP TABLE, CREATE TABLE, INSERT und SELECT aus. Wie einfach ist das? Ich habe es sogar geschafft, eine Eingabeaufforderung zu erstellen und einen Parameter in der INSERT-Anweisung für den Nutzer Wert zu verwenden. Hier ist der Code:
import os import sys import pyodbc def main(): conn_str = 'Driver={Pervasive ODBC Interface};server=localhost;DBQ=demodata' db = pyodbc.connect(conn_str) c = db.cursor() c.execute("DROP TABLE IF EXISTS test_table") c.execute("CREATE TABLE test_table (id identity, name char(32), create_date date)") isql_dml = """INSERT INTO test_table VALUES (0, ?, CURRENT_DATE())""" iinserting = True while iinserting: new_name = input('Enter name to insert, Q to quit: ' ) if new_name.lower() == 'q': iinserting = False else: if new_name == '': print(' Please enter a non-empty string.') else: print(' Inserting:', new_name) c.execute(isql_dml, (new_name,)) c.commit() c.execute("SELECT COUNT(*) FROM test_table") row = c.fetchone() if row: print('You inserted', row, 'name(s)') return 0 if __name__ == "__main__": sys.exit(main())
Es ist leicht zu erkennen, wie einfach und dennoch leistungsstark dieser Zugang ist und wie leicht er für Test- und Kundensupport-Szenarien verwendet werden kann.
Laden Sie noch heute die Actian Zen Testversion herunter und schreiben Sie Ihre erste Python ODBC Anwendung! 30-Tage-Testversionen sind hier erhältlich. Wenn Sie Fragen zu Zen oder anderen ActianProdukten haben, können Sie diese gerne in unseren Community-Foren stellen.
Abonnieren Sie den Actian Blog
Abonnieren Sie den Blog von Actian, um direkt Dateneinblicke zu erhalten.
- Bleiben Sie auf dem Laufenden: Holen Sie sich die neuesten Informationen zu Data Analytics direkt in Ihren Posteingang.
- Verpassen Sie keinen Beitrag: Sie erhalten automatische E-Mail-Updates, die Sie informieren, wenn neue Beiträge veröffentlicht werden.
- Ganz wie sie wollen: Ändern Sie Ihre Lieferpräferenzen nach Ihren Bedürfnissen.