> Tech > Ecriture d’un enregistrement

Ecriture d’un enregistrement

Tech - Par iTPro - Publié le 24 juin 2010
email

Avant de poursuivre l'accès à  la base de données, il faut créer un fichier sur l'AS/400. La figure 1 montre les DDS du fichier CUSTMAST de la bibliothèque EXAMPLES. (Pour des détails sur la création du fichier, voir l'encadré " Création de la Table Customer ").
Plusieurs classes collaborent pour

Ecriture d’un enregistrement

permettre l’accès au niveau enregistrement,
et il faut passer par 10 étapes simples pour écrire un enregistrement dans un
fichier :



1. Créer un objet de connexion AS400.

2. Créer un objet fichier.

3. Créer un objet description d’enregistrement de fichier.

4. Extraire un objet format d’enregistrement en se servant de la description
de l’enregistrement.

5. Associer le format d’enregistrement à  l’objet fichier.

6. Ouvrir le fichier.

7. Créer un enregistrement vide.

8. Affecter des valeurs aux zones de l’enregistrement.

9. Ecrire l’enregistrement.

10. Fermer le fichier.



Avant d’écrire un enregistrement dans un fichier, il faut déterminer le format
à  utiliser, et l’associer à  un objet fichier. Ceci étant, on peut dire que les
cinq premières étapes sont une préparation aux cinq autres, au cours desquelles
le fichier est réellement ouvert et l’enregistrement réellement écrit.

Voyons le code nécessaire pour effectuer chaque étape. Commençons par créer
un objet AS400. Selon la description ci-dessus, celui-ci sert pour les communications
avec les travaux du serveur hôte :



AS400 as400 = new AS400();



Avec l’objet AS400, un objet fichier avec clé est créé comme moyen d’accéder
à  un fichier base de données. Le constructeur de la classe KeyedFile inclut
le chemin de type IFS au fichier (ici, le fichier CUSTMAST de la bibliothèque
EXAMPLES) :



KeyedFile myFile = new KeyedFile(as400,

« /qsys.lib/examples.lib/custmast.file »);



Un objet description d’enregistrement de fichier est créé ensuite au moyen de
la classe AS400FileRecordDescription. Là  encore, le chemin de type IFS vers
le fichier base de données CUSTMAST est transféré au constructeur. Cet objet
permet au programme Java d’accéder aux formats d’enregistrement d’un fichier
base de données particulier :



AS400FileRecordDescription myFileDesc =

new AS400FileRecordDescription(as400,

« /qsys.lib/examples.lib/custmast.file »);



Une fois créé, l’objet description d’enregistrement sert à  extraire les formats
d’enregistrement du fichier base de données. Celui-ci pouvant avoir plusieurs
formats (dans le cas d’un fichier logique multi-formats), la méthode retrieveRecordFormat
renvoie un ensemble de formats d’enregistrement. Pour les fichiers physiques,
cet ensemble contient toujours un format d’enregistrement unique dans son élément
zéro :



RecordFormat recFormats[ ] =

myFileDesc.retrieveRecordFormat();



Pour pouvoir ouvrir le fichier, il faut d’abord associer un des formats d’enregistrement
de l’ensemble à  l’objet fichier à  clé. On utilise pour cela la méthode setRecordFormat
de l’objet fichier avec clé :



myFile.setRecordFormat(recFormats[0]);



Une fois ces étapes de préparation terminées, le fichier avec clé peut être
intégralement décrit. Commençons par l’ouvrir :



myFile.open(AS400File.WRITE_ONLY, 0,

AS400File.COMMIT_LOCK_LEVEL_NONE);



Les paramètres acceptés par la méthode open de l’objet fichier avec clé sont
les suivants :



· Type d’ouverture. Les valeurs correctes de ce paramètre sont READ_ONLY, WRITE_ONLY
et READ_WRITE. Les fichiers ouverts en READ_ONLY ne permettent pas les opérations
d’écriture. Ceux qui le sont en WRITE_ONLY ne permettent pas les opérations
de lecture.

· Facteur de blocage. Ce paramètre indique le nombre d’enregistrements que le
système devrait mettre en mémoire tampon à  chaque opération de lecture, ou qu’il
devrait écrire pendant une opération d’écriture. Son usage est influencé par
le paramètre type d’ouverture. La figure 2 énumère les valeurs du facteur de
blocage et leurs relations avec les valeurs du type d’ouverture.

· Niveau de contrôle de validation. Ce paramètre indique le niveau de contrôle
de validation désiré pour les opérations de mise à  jour, de suppression et d’écriture.
La figure 3 montre les valeurs correctes.



Pour écrire des données dans le fichier ouvert, il faut d’abord créer un objet
enregistrement et donner des valeurs aux zones de cet enregistrement. Créez
une instance de la classe Record en exécutant la méthode getNewRecord sur l’objet
format d’enregistrement décrivant le fichier base de données :



Record addRec =

recFormats[0].getNewRecord();



Cet objet enregistrement contient des descriptions de zones en fonction du format
d’enregistrement utilisé pour le créer. Les valeurs de toutes ces zones sont
les valeurs par défaut, soit par type de données (par exemple des zéros pour
les zones numériques, des blancs pour les zones de caractères), soit la valeur
par défaut spécifiée pour la zone lors de la création du fichier. Ces valeurs
par défaut peuvent être modifiées avec la méthode setField sur l’objet enregistrement.
Ici, les valeurs des zones sont définies d’après les informations d’identification
d’un nouveau client :



addRec.setField(« CUSTID »,

new java.math.BigDecimal(12345));

addRec.setField(« CUSTNAME »,

« Dan Darnell »);

addRec.setField(« CUSTSTREET »,

« 135 Any Street »);

addRec.setField(« CUSTCITY »,

« Little Rock, AR 72211 »);



La méthode setField accepte un nom de zone et une valeur permettant de définir
la zone. La boîte à  outils convertit les données de type Java en données DB2/UDB,
mais il faut transmettre le type de données Java correct à  la méthode setField.
Si l’on n’y parvient pas, une ClassCastException est lancée à  l’exécution. La
figure 4 montre les types de données DB2/UDB et leurs équivalents Java.

Une fois les valeurs définies dans les zones, écrire l’enregistrement revient
à  transmettre l’objet enregistrement à  la méthode d’écriture de l’objet fichier
à  clé :



myFile.write(addRec);



Fermez le fichier une fois que vous avez terminé :



myFile.close();







Création de la Table Customer


Pour créer la table CUSTMAST, suivez ces étapes :



1. Créez un fichier physique source dans la bibliothèque EXAMPLES :



CRTSRCPFFILE(EXAMPLES/QDDSSRC)



2. Lancez SEU pour créer un membre source :



STRSEU SRCFILE(EXAMPLES/QDDSSRC) +

SRCMBR(CUSTMAST) TYPE(PF) +

TEXT(‘Customer master table source’)



3. Tapez le source du fichier physique de la figure 1 du corps de l’article
:



4. Compilez le source pour créer un objet fichier physique :



CRTPF FILE(EXAMPLES/CUSTMAST) +

SRCFILE(EXAMPLES/QDDSSRC)


DD


Téléchargez gratuitement cette ressource

TOP 5 Modernisation & Sécurité des Postes Clients

TOP 5 Modernisation & Sécurité des Postes Clients

Pour aider les entreprises à allier les restrictions liées à la crise et la nécessaire modernisation de leurs outils pour gagner en réactivité, souplesse et sécurité, DIB-France lance une nouvelle offre « Cloud-In-One » combinant simplement IaaS et DaaS dans le Cloud, de façon augmentée.

Tech - Par iTPro - Publié le 24 juin 2010