J'essaie de me connecter à IBM iSeries en utilisant pyodbc, une interface Python pour ODBC, sur Linux Red Hat (Intel 64bit arch).
Voici ce que j'ai fait :
-
Installé gcc-c++ (nécessaire pour compiler pyodbc), unixODBC, unixODBC-devel
-
Installé iSeriesAccess-6.1.0-1.0.x86_64.rpm :
sudo rpm -ivh http://ftpmirror.your.org/pub/misc/ftp.software.ibm.com/as400/iSeriesAccess-6.1.0-1.0.x86_64.rpm --nodeps
-
Joindre le pilote à unixODBC
odbcinst -i -d -f /opt/ibm/iSeriesAccess/unixodbcregistration64
-
Comme j'ai eu quelques problèmes avec les bibliothèques, je les ai liées symboliquement :
sudo ln -s /opt/ibm/iSeriesAccess/lib64/libcwb* /usr/lib/
-
J'ai configuré la source de données ODBC pour accéder à la base de données de l'AS400 : /etc/odbc.ini :
[AS400] Description = Database iSeries Driver = iSeries Access ODBC Driver System = XXX.XXX.XXX.XXX Port = 8471 UserID = XXXXXX Password = XXXXXX Naming = 1 Database = XXXXXXXXX ConnectionType = 0 CommitMode = 2 BlockFetch = 1 BlockSizeKB = 512
-
J'ai testé la connexion :
isql -v AS400
+---------------------------------------+ Connected! sql-statement help [tablename] quit +---------------------------------------+ SQL>
J'ai pu me connecter, mais lorsque j'exécute une requête SQL, j'obtiens les résultats suivants Segmentation fault (core dumped)
.
En vérifiant /var/log/messages, je vois ceci :
isql[5767]: segfault at 7f6fdb30020e ip 00007f6ed372ff71 sp 00007ffcce17d5f0 error 4 in libcwbcore.so[7f6ed369e000+11c000]
Je voudrais réinstaller un autre pilote (par exemple iSeriesAccess-7.1.0-1.0x86_64.rpm), mais je ne parviens pas à le trouver.