> Tech > Simple DB2 Script Net.Data vs PHP

Simple DB2 Script Net.Data vs PHP

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Un exemple un peu plus intéressant montre comment chaque langage peut fournir rapidement une interface de table HTML sur une requête de base de données DB2. Par souci de brièveté, supposons que vous avez déjà créé une table NAMES dans le schéma NOBODY avec les colonnes

Simple DB2 Script Net.Data vs PHP

FIRST varchar(15) et LAST varchar(15) et que vous avez inséré quelques noms dans la table.

Comme rappel utile, le profil QTM HHTTP1 (par défaut Net.Data) et le profil NOBODY (Zend Core PHP) devraient avoir l’accès RX au schéma NOBODY (il est difficile de détecter cette erreur d’autorisation de sécurité). Dans le domaine de l’accès DB2, PHP (figure 3) et Net.Data (figure 4) ont tous deux une syntaxe DB2 raisonnablement simple pour se connecter, exécuter des instructions SQL et atteindre des résultats. Zend Core for i5/OS a un ensemble d’API bases de données préfixé par DB2 (extension ibm_db2 PECL), des API préfixées par odbc (extension ODBC PECL) et des API préfixées par i5 (Toolkit).

Toutes ces extensions donnent accès à des bases de données DB2 dans leur contexte de programmation respectif. L’API la plus couramment utilisée est ibm_db2 (utilisée dans cet article). Les appels db2_apiname peuvent être codés librement au travers du script PHP. Net.Data découpe le code SQL en blocs de fonction dtw_sql, sans qu’aucune API préfixée supplémentaire ne soit demandée. PECL est la PHP Extension Community Library, un répertoire des extensions PHP qui recense toutes les extensions et facilités d’hébergement connues pour le téléchargement et le développement des extensions PHP (pecl. php.net).

Le système de packaging et de distribution utilisé par PECL est partagé avec sa soeur, PEAR (pear.php.net). IBM a contribué avec ibm_db2 au référentiel PECL, que j’ai aidé à modifier pour qu’il fonctionne sur PASE i5/OS (s’il vous plaît, pas de mail vindicatif : ce monde PHP sur i5/OS est en cours d’évolution, donc soyez à l’affût de PTF DB2 supplémentaire pour votre machine). Net.Data fait merveille pour la construction rapide de vues bases de données HTML parce qu’il fournit une directive de table HTML simple telle que @dtw_ assign(dtw_ html_table, "yes"), comme dans la figure 4.

De plus, les excellentes structures %RE PORT{%ROW} de Net.Data sont bien supérieures aux instructions PHP codées à la main, parce qu’elles évitent le bouclage en ligne courant dans la plupart des autres langages script (figure 3). PHP pourrait s’inspirer de l’exemple Net.Data. Tant avec PHP qu’avec Net.Data, les bases de données DB2 peuvent être locales ou distantes (DRDA). L’API de connexion PHP db2_p connect(database,user,password) vous permet de spécifier une base de données distante DRDA. Net.Data vous permet de vous connecter à une base de données distante par l’intermédiaire de %define(s) spéciaux de DATABASE, LOGIN et PASSWORD.

Les deux langages adoptent par défaut localhost (*LOCAL) si aucune base de données n’est spécifiée et autorisent des connexions bases de données persistantes (réutilisables) pour accroître la performance des scripts courants. Le traitement des messages Net.Data est généralement fondé sur le moniteur.

Le moniteur %message vous laisse le choix : poursuivre le programme ou terminer. En général, PHP procédural a tendance à utiliser des API PECL basées sur code de retour avec transfert du contrôle à la discrétion du programmeur, au point d’erreur. Cependant, PHP 5 (Zend Core for i5/OS) a un modèle d’exception supplémentaire, comme d’autres langages de programmation modernes, visant à utiliser un paradigme « throw-try-catch » (non approfondi dans cet article).

Téléchargez cette ressource

Guide de Sécurité IA et IoT

Guide de Sécurité IA et IoT

Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010