UpsQry.IConnexionSql.CreerOrdreSql

Fonction CreerOrdreSql(NomOrdreSql : Caractere, SourceOrdreSql : Caractere, TTP : Entier=1, TDG : Entier=0) Retourner Nul Ou IOrdreSql;

Description

La méthode CreerOrdreSql permet à la tâche courante créer un nouveau bloc Structured Query Language (SQL) de nom NomOrdreSql et de source SourceOrdreSql. Pour cela, la tâche courante doit s'être appropriée au préalable la connexion.

Le nom de l'ordre Sql doit être unique. Il permet de tracer son exécution. Le source de l'ordre Sql doit respecter la syntaxe et la sémantique de la base de données cible, même pour le pilote Open DataBase Connectivity (ODBC).

Le source de l'ordre Sql peut être par exemple :

Le source de l'ordre Sql ne peut pas être :

Le source de l'ordre Sql peut comporter des paramètres d'entrée, de sortie ou d'entrée-sortie. Ils sont identifiés par des pseudo-variables correspondant aux noms déclarés par l'appel à la méthode DeclarerParametre.
Si le paramètre TTP spécifiant la taille des tableaux pour les paramètres a pour valeur 1, alors il y a un seul cycle d'exécution au niveau de la base de données. Sinon les paramètres sont transmis par tableau dont la taille est donnée par TTP et il y a autant de cycles d'exécution au niveau de la base de données que de lignes dans le tableau.
La gestion des tableaux est automatisée pour rendre le principe de Bulk Processing transparent.

Si le paramètre TDG spécifiant le temps de garde en secondes est positif, alors il existe un délai pour exécuter l'ordre Sql.

Si la taille du source de l'ordre Sql dépasse la taille du paramètre TailleMaxOrdreSql, alors l'exception OrdreSqlTropGrand est envoyée.

Si une méthode d'un type implémentant l'interface IOrdreSql échoue, alors l'exception ErreurOrdreSql est envoyée.

Exemple

/****************************************************************/
Procedure MettreAJourSalaire(MaConnexionSql : Nul Ou IConnexionSql)
/* Objet : Met a jour les salaires. */
/****************************************************************/
Variable
/******/

Debut
MaRequeteSql=MaConnexionSql.CreerRequeteSql("MaRequeteSql3", "SELECT empno:=${NumeroEmploye}, sal:=${Salaire} FROM scott.emp;", 5);
MaRequeteSql.DeclarerResultat("NumeroEmploye", Entier);
MaRequeteSql.DeclarerResultat("Salaire", Reel);
MaRequeteSql.PreparerSql();
MonOrdreSql=MaConnexionSql.CreerOrdreSql("MonOrdreSql4", "UPDATE scott.emp SET sal=${Salaire} WHERE empno=${NumeroEmploye};", 7);
MonOrdreSql.DeclarerParametre("Salaire", Reel);
MonOrdreSql.DeclarerParametre("NumeroEmploye", Entier);
MonOrdreSql.PreparerSql();
MonResultatSql=ResultatRequeteSql(MaRequeteSql.ExecuterSql());
Pour Enregistrement=MonResultatSql.ParcoursAuDebut() JusquA MonResultatSql.DernierElement() Faire Fin Pour
MonOrdreSql.ExecuterSql();
MaConnexionSql.Valider();
Fin Procedure

Voir aussi

ExecuterOrdreSql pour exécuter un ordre Pl/Sql directement.

Traduction

---------