Quelle est la définition d'un index ?
Posté : mer. 29 mai 2013, 11:55:19
Bonjour,
Besoin d'un petit rafraichissement sur la définition d'un index :
Une table : TABLE contient les champs CHAMP_1, CHAMP_2, CHAMP_3.
Cette table a une contrainte de clé primaire sur le CHAMP_1.
Un index : TABLEI01 sur cette table contient les champs : CHAMP_2 et CHAMP_3.
Dans un programme RPGLE, l'index TABLEI01 est déclaré.
Un format est préparé avec comme valeurs :
dans CHAMP_1 une valeur auto-incrémentée (donc nouvelle),
dans CHAMP_2 et CHAMP_3 des valeurs déjà existantes (c'est à dire que le couple CHAMP_1 et CHAMP_2 existe déjà)
Lors d'un WRITE de l'index TABLEI01 le systeme positionne un indicateur de tentative d'écriture en double.
Ma question est :
le WRITE de l'index écrit bien toutes les colonnes de la table,
ne tient pas compte de la contrainte de clé primaire de la table,
considère les champs de l'index comme des clés primaires.
Pour faire un WRITE de mon format, faut il déclarer la table dans le RPGLE ou existe t'il un autre moyen ?
Besoin d'un petit rafraichissement sur la définition d'un index :
Une table : TABLE contient les champs CHAMP_1, CHAMP_2, CHAMP_3.
Cette table a une contrainte de clé primaire sur le CHAMP_1.
Un index : TABLEI01 sur cette table contient les champs : CHAMP_2 et CHAMP_3.
Dans un programme RPGLE, l'index TABLEI01 est déclaré.
Code : Tout sélectionner
FTABLEI01UF A E K Disk Rename(TABLE:TABLEF1)
F Commit
dans CHAMP_1 une valeur auto-incrémentée (donc nouvelle),
dans CHAMP_2 et CHAMP_3 des valeurs déjà existantes (c'est à dire que le couple CHAMP_1 et CHAMP_2 existe déjà)
Lors d'un WRITE de l'index TABLEI01 le systeme positionne un indicateur de tentative d'écriture en double.
Code : Tout sélectionner
...
C Write TABLEF1 50
* clé en double
C 50 Eval P_Retour = '02'
...
le WRITE de l'index écrit bien toutes les colonnes de la table,
ne tient pas compte de la contrainte de clé primaire de la table,
considère les champs de l'index comme des clés primaires.
Pour faire un WRITE de mon format, faut il déclarer la table dans le RPGLE ou existe t'il un autre moyen ?