Téléchargement des produits


Version anglaise


 


ADELIA

VADELIA

SADELIA

WADELIA

EADELIA

(I/B)

(I/B) (S)

(B) (S)

(I/B) (S)

(B) (S)


Attention : dans le cas des programmes de type ADELIA, cet ordre est uniquement compatible avec le générateur RPG.


Paragraphe d'utilisation

Tous


Syntaxe

CREER_SQL NomEntité ParamètreNull ParamètreValeurIdentité ParamètresBloc ParamètreRG


ParamètreNull

*INDIC_NULL | Rien

ParamètreValeurIdentité

*RECUP_VAL_GEN | Rien

ParamètresBloc

*BLOC(taille) NomListe | Rien

ParamètreRG

*NON_RG | *RG | Rien



Description

Cet ordre crée un enregistrement dans l'entité NomEntité, en prenant les valeurs des variables entité correspondant aux champs.


Pour les programmes de type autre que ADELIA, il est possible de s'assurer que l'enregistrement n'est pas verrouillé en le testant à l'aide du mot réservé *BLOQUE.


Le paramètre *INDIC_NULL permet de prendre en compte la gestion des valeurs NULL (alimentées suite à une lecture ou à l'utilisation de l'ordre AFFECTER_INDIC) lors de l'écriture de la ligne.


Le paramètre *RECUP_VAL_GEN permet la récupération de la dernière valeur identité générée, dans le cas d'une table possédant une colonne auto-incrémentée. Le type auto-incrément peut avoir certaines limitations en fonction du SGBD utilisé. Voir la rubrique Limitations des types de données pour plus d'informations.


Le paramètre *BLOC permet l'insertion par bloc des enregistrements (insertions multi-lignes).

La taille est une constante numérique indiquant le nombre maximum d'enregistrements du bloc.

Chaque enregistrement à insérer étant un élément de la liste NomListe, les correspondances entre les zones de l'entité et les colonnes de la liste se font par leur position (la première colonne de la liste correspond à la première zone de l'entité,...).

Si les valeurs NULL sont gérées, la liste doit être déclarée avec le paramètre *INDIC.

Si la liste contient plus d'éléments que la taille d'un bloc on fera autant d'insertions par bloc que nécessaire pour traiter tous les éléments de la liste.

Lorsque le paramètre *BLOC est indiqué, les règles de gestion implicites ne sont pas générées.

Le paramètre *BLOC n'est pas disponible pour les programmes de type ADELIA.


Le paramètre *RG permet de générer les règles de gestion implicites de création liées à l'entité, même si le programme est généré sans l'option de génération des règles de gestion implicites.


Le paramètre *NON_RG permet de ne pas générer les règles de gestion implicites de création liées à l'entité, même si le programme est généré avec l'option de génération des règles de gestion implicites.


Après exécution de l'ordre, il est possible de tester le code retour SQL à l'aide du mot réservé *SQLCODE.


Dans le cas d'une insertion par bloc, un *SQLCODE à 0 avec un SGBD autre que DB2/400 vous assure que toute les lignes ont été traitées.

Cependant, il est possible que certaines lignes n'aient pas été insérées si elles provoquaient une violation de contrainte (clé en double en général).

Le mot réservé *SQLROWCOUNT rend le nombre de lignes insérées. Le test *SQLROWCOUNT = &NBR_ELT(NomListe) vous assure que toutes les lignes de la liste ont été insérées sans erreur.


Par exemple

CREER_SQL CLIENT


VERIFIER FEN_MAJ_PROD

RAPATRIER PRODUIT

CREER_SQL PRODUIT

* Ces lignes permettent :

* - la vérification des zones maquette d'une fenêtre,

* - le transfert des zones maquette vers les zones fichiers de l'entité PRODUIT,

* - la création de l'enregistrement PRODUIT.


Autres exemples d'utilisation


1.

AFFECTER_INDIC  *VRAI  CLIENT  CLI_ADRESS2

CREER_SQL  CLIENT  *INDIC_NULL


Cet exemple permet, pour la création d'un enregistrement dans la table CLIENT, de fixer la valeur NULL pour la colonne CLI_ADRESS2.



2.

LISTE LstArticles *REF_MLD(ARTICLES)

...

CREER_SQL ARTICLE *BLOC(100) LstArticles

Cet exemple permet de faire des insertions multi-lignes. Si la liste contenait 230 éléments alors 3 INSERT SQL ont été exécutées (2 INSERT de blocs de 100 enregistrements et 1 INSERT d'un bloc de 30 enregistrements).


↑ Haut de page

  • Aucune étiquette