{{tag>DB Python}} = Notes ODBC Voir : * odbc_avec_freetds [[connexion_a_une_base_proprietaire_-_python_-_jdbc_-_odbc|Exemple d'ODBC avec microsoft SQL Server]] * https://www.mssqltips.com/sqlservertip/7293/pyodbc-open-source-access-odbc-databases/ * https://blog.dbi-services.com/installing-the-odbc-driver-manager-with-sqlite-on-linux/ * https://datawookie.dev/blog/2015/09/setting-up-odbc-for-sqlite-on-ubuntu/ * https://www.devart.com/odbc/mongodb/docs/linux.htm * DB API 2.0 * https://gambaswiki.org/wiki/doc/odbc apt-get install unixodbc odbcinst apt-get install odbc-postgresql libsqliteodbc libmyodbc Sur Debian à ne pas éditer directement, c'est en installant odbc-postgresql, libsqliteodbc, libmyodbc que ce fichier sera mis à jour ''/etc/odbcinst.ini'' [SQLite] Description=SQLite ODBC Driver Driver=/usr/lib/odbc/libsqliteodbc.so Setup=/usr/lib/odbc/libsqliteodbc.so UsageCount=1 [SQLite3] Description=SQLite3 ODBC Driver Driver=/usr/lib/odbc/libsqlite3odbc.so Setup=/usr/lib/odbc/libsqlite3odbc.so UsageCount=1 [MySQL] Description = ODBC Driver for MySQL Driver = libmyodbc.so Setup = libodbcmyS.so FileUsage = 1 CPTimeout = CPReuse = [PostgreSQL ANSI] Description = PostgreSQL ODBC driver (ANSI version) Driver = psqlodbca.so Setup = libodbcpsqlS.so Debug = 0 CommLog = 1 UsageCount = 2 [PostgreSQL Unicode] Description = PostgreSQL ODBC driver (Unicode version) Driver = psqlodbcw.so Setup = libodbcpsqlS.so Debug = 0 CommLog = 1 UsageCount = 2 ''~/.odbc.ini'' ou ''/etc/odbc.ini'' [mydb1] Description = MySQL MyDB1 Driver = MySQL Server = localhost Database = mydb1 Port = 3306 Socket = Option = Stmt = [mydb2] Description = MySQL MyDB2 Driver = MySQL Server = localhost Database = mydb2 Port = 3306 Socket = Option = Stmt = [tracdb] Description=SQLite3 Trac Driver=SQLite3 Database=/home/jean/trac.db # optional lock timeout in milliseconds #Timeout=2000 Vérifier la connexion avec iusql iusql tracdb iusql mydb1 root P@ssw0rd Connaître le schéma de la base Equivalent à ''show tables'' $ iusql -d, -b SQLiteODBC <<< "help" ,,contacts,TABLE, Équivalent à ''describe table'' $ iusql -d, -b SQLiteODBC <<< "help contacts" ,,contacts,contact_id,4,INTEGER,9,10,10,0,1,,NULL,4,,16384,1,YES ,,contacts,first_name,-1,TEXT,0,65536,10,0,0,,NULL,-1,,16384,2,NO ,,contacts,last_name,-1,TEXT,0,65536,10,0,0,,NULL,-1,,16384,3,NO ,,contacts,email,-1,TEXT,0,65536,10,0,0,,NULL,-1,,16384,4,NO ,,contacts,phone,-1,TEXT,0,65536,10,0,0,,NULL,-1,,16384,5,NO Exemple en Python import sqlalchemy from sqlalchemy.exc import DBAPIError engine = sqlalchemy.create_engine('mysql+pyodbc://tracdb', encoding='utf-8') try: engine.connect() except DBAPIError: pass for row in engine.execute('select * from client'): print (row) == Autres odbcinst -j unixODBC 2.3.11 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /root/.odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8