Vous voulez copier un fichier vers un autre, une des alternatives est d’utiliser SQL, en utilisant une instruction du genre insert into ficcible select * from ficsource.
Il existe d’autres méthodes que les plus anciens connaissent bien, mais les nouveaux un peu moins.
C’est la commande CPYF voici quelques utilisation à connaître
1) Les sélections
Sélection d’un nombre d’enregistrement
Paramètres
FROMRCD
TORCD
exemple les 100 premiers
FROMRCD(1)
TORCD(100)
Sélection sur des valeurs de clé
FROMKEY
TOKEY
exemple les clés de 0001 à 0002
FROMKEY(1 (0001))
TOKEY(1 (00002))
Sélection sur des caractères d’un format
INCCHR RCD Exemple les enregs qui OUI en position 15 INCCHAR(RCD 15 *EQ ‘OUI’)
Sélection des avec des relations
INCREL
Exemple les enregistrements valides et avec une date de référence > ‘20200101’
INCREL((*IF VALIDE *EQ ‘OUI’) (*AND DATEREF *GT ‘20200101’))
2) Les performances
La plupart du temps un CPYF est plus rapide qu’une copie par SQL
Quand on copie un fichier qui a des clés, pour améliorer les performances
on peut indiquer, FROMRCD(1) au lieu de FROMRCD(*START) , la copie se fera sans tenir compte de l’index, et le gain est d’environ la moitié.
3) Les ajustements de zones
Paramètre FMTOPT
utilisez les 2 paramètres suivants pour que vos nouvelles zones soient initialisées et que celle qui ont changé soient recadrées
FMTOPT(*MAP *DROP)
4) Les messages d’erreur
Vous devez monitorer, votre commande CPYF, CPF2800 CPF2900 CPF3100
Avant de copier, vérifier si votre fichier source contient des enregistrements
DCL &nbr *dec 10
RTVMBRD SOURCE NBRRCD(&nbr)
if cond(&nbr *gt 0) then(do)
cpyf …
enddo
5) Formater à l’exécution
Pour améliorer le paramétrage et l’administration vous pouvez construire la commande CPYF dynamiquement
dcl &cmd *char 1024
chgvar &cmd (‘cpyf *bcat ……)
call qcmdexc (&cmd %len(&cmd))
Conclusion :
Le CPYF permet de nombreuses formes de copies et son usage est indispensable !