> Tech > Descriptions de champs

Descriptions de champs

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

Normalement, les drivers ODBC extraient les données des tables AS/400 en utilisant les noms de champs AS/400 courts pour la table Access. Les noms courts peuvent rendre rapports et requêtes difficiles à  créer parce que ce peut être dur pour un utilisateur de se rendre compte du contenu d'une colonne

Descriptions de champs

de table AS/400 à 
partir d’un mystérieux nom sur six caractères. Access peut utiliser des noms de
colonnes longs (jusqu’à  64 caractères, espaces compris).

Donc, une manière de rendre les noms de champs importés plus significatifs consiste
à  changer manuellement le nom du champ et à  lui affecter la description de champ
AS/400. Malheureusement, Access ne permet pas de modifier les propriétés du nom
de champ dans une table liée. On peut changer le nom de la table liée elle-même
(essayez de renommer une table liée, cela n’affectera pas l’AS/400), mais on ne
peut pas changer les noms de champs dans la table. On peut cependant changer le
nom des colonnes des tables Access locales (c’est-à -dire une table AS/400 importée
ou a créé dans Access).

Donc, comment tourner la difficulté ?
Comment importer les descriptions de champs d’une table AS/400 dans Access ?
Fort heureusement, UDB/400 stocke des metadonnées (c’est-à -dire des données à 
propos des données) dans des tables et des vues appelées “ catalogues système
”, dans la bibliothèque QSYS2. Les catalogues système comportent des renseignements
sur les champs dans les tables, dont les descriptions (si toutefois les champs
en ont). (Pour une description du contenu des catalogues système, voyez DB2/400
for AS/400 SQL Reference, SC41-5612). Le secret, pour copier des noms de champs
UDB/400 longs pour qu’ils soient utilisables dans Access consiste à  créer une
requête passthrough utilisant une petite astuce SQL pour renommer les champs.
Les requêtes passthrough sont des requêtes Access “ spécifiques SQL ” qui passent
une instruction SQL via la connexion distante (l’AS/400 dans notre cas) sans l’interpréter.

Lorsqu’on crée une requête standard dans Access, on utilise le moteur de base
de données interne d’Access, qui a un interpréteur SQL qui éclate les instructions
SQL Access en instructions compatibles avec les bases de données ODBC comme celle
de l’AS/400. En passant des déclarations SQL spécifiques directement à  l’AS/400,
on peut utiliser le dialecte SQL AS/400 à  plein, avec de meilleures performances
parce que la requête utilise le moteur SQL de l’AS/400 plutôt que celui d’Access.
On peut utiliser des requêtes passthrough dans des formulaires, des rapports,
et d’autres types de requêtes, comme on le ferait avec des tables Access. La seule
limitation est que l’on ne peut pas mettre à  jour directement les données renvoyées.

Bien que cette limitation puisse sembler utile pour prévenir des mises à  jour
intempestives des données, cela ne se substitue pas à  une sécurisation correcte
de la base de données. (Pour plus de renseignements sur les sécurités base de
données, voyez “ Comment implémenter une sécurité au niveau objet ”, NEWSMAGAZINE,
janvier 1999.) L’astuce SQL dont on peut tirer parti dans une requête passthrough
est la possibilité de coder une instruction SELECT renvoyant les noms de champs
longs. SQL sait renommer des champs via la clause AS. Par exemple, l’exemple (partiel)
d’instruction SQL SELECT champ1 AS nom_champ_long . . . renomme le champ champ1
en nom_champ_long dans le résultat.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

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