> Tech > Positionnment des fichiers (2)

Positionnment des fichiers (2)

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

Chaque valeur *KeySearch affecte les résultats de RcvF de la manière suivante :
• *KeyB - renvoie l'enregistrement 3 (Code = C)
• *KeyBE - renvoie l'enregistrement 3 (Code = C)
• *Key - cause une erreur d'exception parce qu'aucune correspondance n'est trouvée
• *KeyAE - renvoie l'enregistrement 4 (Code =

Positionnment des fichiers (2)

E)

• *KeyA – renvoie l’enregistrement 4
(Code = E)

Utiliser le paramètre Position avec
une clé constituée de plus d’un champ
devient délicat, particulièrement
quand l’un des champs clé est un
champ numérique packé. Il faut coder
la chaîne de clé pour qu’elle corresponde
à  la définition de la clé dans le fichier
et, si un champ clé quelconque
est autre qu’un champ caractère ou décimal
signé, il faut coder la chaîne de
clé en hexadécimal.

Supposons, par exemple, que la clé
comporte deux champs : un champ
d’un caractère et un champ numérique
packé de cinq chiffres avec deux décimales.
Il faut coder la valeur de clé
dans le paramètre Position comme une
chaîne hexadécimale de longueur
égale à  la longueur des deux champs
clé réunis (c’est-à -dire, 1 + 3 ; un
champ 5,2 packé occupe trois positions).
Par exemple, la valeur

Position(*Key 2 VotreFormat X'C323519F')

ordonne au système d’extraire
l’enregistrement qui contient les valeurs
pour les champs clé caractère et
numérique packés de C et 235.19, respectivement.

Comme nous l’avons dit, un programme
CL peut positionner le fichier
base de données puis appeler un programme
HLL pour traiter les enregistrements.
Ainsi, le programme CL peut
utiliser le paramètre Position de
OvrDbF pour définir le point de départ
dans un fichier, puis appeler un programme
RPG qui émet un read ou
read-previous pour commencer à  lire
les enregistrements sur cette position.

On peut avoir cette possibilité sans
être obligé de l’utiliser. L’un de nos
credo de programmation est celui-ci :
que votre programme soit explicite et
son objectif clair. Donc, nous évitons
d’utiliser la commande OvrDbF ou
PosDbF pour positionner un fichier
avant de le traiter avec un programme
HLL quand nous pouvons positionner
le fichier de manière plus explicite et
plus claire dans le programme HLL lui-même. Il n’y a donc pas de bonne
raison pour cacher la fonction de positionnement
dans un programme CL
n’appartenant pas clairement au programme
qui lit réellement le fichier.
Toutefois, quand on traite un fichier
dans un programme CL, le fait de positionner
le fichier à  l’intérieur de celuici
peut simplifier la solution.

Téléchargez gratuitement cette ressource

Comment cerner la maturité digitale de votre entreprise ?

Comment cerner la maturité digitale de votre entreprise ?

Conçu pour les directions IT et Métiers, ce guide vous permettra d'évaluer précisément vos processus de communication client, d'identifier vos lacunes et points d'inflexion pour établir un plan d’actions capable de soutenir durablement votre évolution. Bénéficiez maintenant d'une feuille de route complète.

Tech - Par iTPro - Publié le 24 juin 2010