Accès à une base de données PSQL Zen avec Python et ODBC
Actian Corporation
4 janvier 2018

En tant que programmeur de la vieille école d'il y a quelques décennies, j'ai décidé de voir s'il serait difficile d'accéder à une base de données Zen (anciennement connue sous le nom de PSQL) à partir de ma connaissance nouvellement acquise de Python. Au cas où vous ne le connaîtriez pas, Zen est le logiciel Embarqué de base de données NoSQL et SQL hybride à administration zéro et empreinte nanométrique d'Actian, et Python est un langage de programmation de haut niveau fréquemment utilisé dans la science des données et les applications Internet (parmi beaucoup d'autres choses).
Déjà armé d'une certaine connaissance d'Actian Zen, tout ce que j'avais à faire était de suivre un cours EdX d'introduction à la programmation Python , puis de télécharger et d'installer Python 3.6 ainsi que la bibliothèque pyodbc correspondante.
Le programme simple de connexion à Zen avec Python présenté ci-dessous comporte environ 30 lignes de code ! Il se connecte à la base de données "demodata", alloue un curseur et exécute une série d'instructions SQL pour DROP TABLE, CREATE TABLE, INSERT et SELECT. Comme c'est facile ! J'ai même réussi à demander une entrée et à utiliser un paramètre dans l'INSERT pour la valeur utilisateur. Voici le 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())
Il est facile de voir à quel point cet accès est à la fois simple et puissant, et à quel point il peut être utilisé pour des scénarios de test et d'support la clientèle.
Téléchargez la version d'évaluation d'Actian Zen dès aujourd'hui et écrivez votre première application ODBC Python ! Des versions d'essai de 30 jours sont disponibles ici. Si vous avez des questions sur Zen ou d'autres produits Actian, n'hésitez pas à les poser dans nos forums communautaires.
S'abonner au blog d'Actian
Abonnez-vous au blogue d'Actian pour recevoir des renseignements sur les données directement à vous.
- Restez informé - Recevez les dernières informations sur l'analyse des données directement dans votre boîte de réception.
- Ne manquez jamais un article - Vous recevrez des mises à jour automatiques par courrier électronique pour vous avertir de la publication de nouveaux articles.
- Tout dépend de vous - Modifiez vos préférences de livraison en fonction de vos besoins.