Connexion DB2
Mediboard peut avoir besoin de se connecter à d'autres systèmes, en particulier des systèmes administratifs basés sur architecture AS400. Dans ce cadre, il est nécessaire d'installer sur le serveur de Mediboard une connexion DB2 ad hoc.
Connection à la base avec PDO_ODBC
unixODBC
Téléchargez et installez la dernière version rpm de unixODBC. Vous aurez aussi besoin des sources pour compiler PDO plus tard. Si elles ne sont pas présente dans votre RPM, téléchargez les et mettez les de coté dans un répertoire.
Puis téléchargez et installez l'interface graphique d'unixODBC.
- Telecharger le rpm d'unixODBC sur RPMFind.net
ou via le package manager
- Telecharger le rpm de l'interface graphique sur RPMFind.net
ou via le package manager
- Telecharger les sources d'unixODBC
Remarque sur le téléchargement des sources
Il semble qu'une erreur apparait durant l'installation de PDO ODBC (voir plus bas) en utilisant les sources d'unixODBC les plus récentes (version 2.2.14 à ce jour) :
/path/to/unixODBC/include/sqltypes.h:52:27: error: unixodbc_conf.h: No such file or directory /path/to/unixODBC/include/sqltypes.h:56:2: error: #error "Needs to know how big a long int is to continue!!!"
Le problème est résolu facilement en téléchargeant l'ancienne version 2.2.12
des sources.
iSeriesAccess
Ce programme d'IBM permet d'installer les drivers ODBC d'accès aux bases DB2.
L'installation se fera par défaut dans le répertoire /opt/ibm/iSeriesAccess/.
Vous devrez pour cela avoir la librairie libXm.so.3 d'installé, contenue dans le package openmotif. Utiliser en particulier le package de développement -devel)
- Package openmotif sur RPMFind.net
ou via le package manager
Création de la connection ODBC
Vous pouvez lancer l'interface graphique depuis la ligne de commande :
$> ODBCConfig &
Création du driver
Dans l'onglet Drivers, créez un nouveau driver (s'il n'est pas déjà présent) avec les champs suivants :
- Fichier :
/etc/odbcinst.ini(driver)
[ODBC] Trace = No TraceFile = /tmp/sql.log ForceTrace = No Pooling = No [iSeries] Description = iSeries Access for Linux ODBC Driver Driver = /opt/ibm/iSeriesAccess/lib/libcwbodbc.so Setup = /opt/ibm/iSeriesAccess/lib/libcwbodbcs.so Threading = 2 FileUsage = 1 DontDLClose = 1
trace du driver ODBC, lequel est extrêmement verbeux d'après mes essais : environ 50kB par requête SQL !Création d'un DSN
Dans l'onglet System DSN, créez un nouveau DSN en utilisant le driver que l'on vient d'enregistrer. Puis remplissez les champs suivant :
- Fichier :
/etc/odbc.ini(connecteur)
[db2] description = Connector to db2 System = [nom de l'hote] User_id = [nom d'utilisateur] # (optionnel) Password = [mot de passe] # (optionnel) Naming = 0 DefaultLibraries = QGPL Database = [nom de la base] # (optionnel) ConnectionType = 0 CommitMode = 2 ExtendedPkgLibrary = QGPL DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512 AllowDataCompression = 1 MaxFieldLength = 32 BlockFetch = 0 BlockSizeKB = 1 ExtendedColInfo = 0 LibraryView = 0 AllowUnsupportedChar = 0 ForceTranslation = 0 Trace = 0
Sauvez cette configuration et quittez l'application. Vous pourrez trouver les deux fichiers contenant ces configuration dans le répertoire /etc/
PDO
Ensuite, installez PDO (si ce n'est déjà fait) avec PECL :
$> pecl install pdo
Puis installez PDO_ODBC :
$> pecl install pdo_odbc
Il vous sera alors demandé de choisir le flavour. Tapez les informations suivantes :
- unixODBC,/repertoire/des/sources/unixODBC/
Enfin, dans le php.ini (ou php.d/XX_PDO.ini), rajoutez les lignes suivantes (si elles ne sont pas déjà présentes) :
extension = pdo.so extension = pdo_odbc.so
Code PHP
Pour utilisez l'extension PDO pour accéder à votre base db2, consultez la documentation en ligne de PHP :
Dernièrement modifié par mytto
, Basé sur le travail de
rhum1
.
Modifiée dernièrement le jeudi 17 de septembre, 2009 15h58m16.
