SQLExecute()
- Last UpdatedSep 24, 2024
- 3 minute read
La fonction SQLExecute() est utilisée dans un script pour exécuter une requête SQL. S'il s'agit d'une instruction SELECT, le paramètre BindList désigne le nom de la liste de liens permettant d'associer les colonnes de base de données aux variables InTouch. Si la liste de liens est nulle, aucune association de variables n'est effectuée.
Catégorie
SQL
Syntaxe
SQLExecute(ConnectionID,BindList,StatementID);
Arguments
ConnectionID
Nom d'une variable mémoire de type entier, renseignée avec le numéro d'identifiant attribué par la fonction SQLConnect() à chaque connexion avec la base de données.
BindList
L'argument BindList peut être une chaîne de longueur nulle. Lorsque StatementID est associé à une requête renvoyant une ligne, la table logique est mise à jour par le résultat de SQLExecute(). Lorsque la liste de liens spécifiée existe, le résultat est associé au paramètre BindList. Une liste de liens de longueur zéro est utile dans les cas connus d'avance, où le paramètre StatementID n'est pas associé à une requête de ligne.
StatementID
Valeur entière renvoyée par SQL lorsqu'une fonction SQLPrepareStatement() est utilisée.
Remarques
Les erreurs sont renvoyées par la fonction. Si l'instruction a été préparée, le pointeur renvoyé par la fonction de préparation doit être transmis. Dans le cas contraire, le pointeur est égal à zéro.
Remarque : la fonction SQLExecute() ne peut être appelée qu’une seule fois dans le cas d’une instruction non préparée. Si elle a été préparée, l'instruction peut être appelée plusieurs fois.
Une instruction par défaut est associée à un identifiant de connexion. Il peut s'agir d'une instruction de texte SQL (SELECT, INSERT, DELETE ou UPDATE), d'un nom de requête dans MS Access (avec ou sans paramètres) ou d'un nom de procédure stockée de MS SQL<:hs>Server (avec ou sans paramètres).
L'instruction par défaut est modifiée par les fonctions SQLLoadStatement(), SQLSetStatement() et SQLAppendStatement(). L'instruction par défaut est utilisée par SQLExecute() chaque fois que StatementID =<:hs>0 est spécifié.
Exemples
Cet exemple charge les instructions SQL depuis le fichier lotquery.sql et place les résultats de l'instruction SELECT dans les variables InTouch spécifiées par la liste de liens.
ResultCode = SQLLoadStatement (ConnectionID, "c:\myappdir\lotquery.sql");
ResultCode = SQLExecute (ConnectionID, "BindList", 0);
ResultCode = SQLInsert(ConnectionID, "BatchDetails", "BindList1");
Cette fonction SQLSetStatement() doit être utilisée pour les requêtes complexes et les chaînes contenant plus de 131<:hs>caractères. Pour les expressions de chaîne de plus de 131<:hs>caractères, vous devez faire appel à la fonction SQLAppend().
SQLSetStatement(ConnectionID, "Select Speed, Ser_No from tablename where Ser_No ='" + Serial_input + "'");
SQLExecute(ConnectionID, "BindList", 0);
Dans l'exemple ci-dessus, l'argument StatementID prend la valeur zéro pour que l'instruction n'ait pas à appeler SQLPrepareStatement(IDConnection, StatementID) avant l'instruction EXECUTE.
La valeur de StatementID n'ayant pas été créée par l'instruction SQLPrepare, pour terminer correctement cette instruction, utilisez la fonction SQLEnd(), au lieu de la fonction SQLClearStatement().
SQLSetStatement(Connection_Id, "Select Speed, Ser_No from tablename where Ser_No ='" + Serial_input + "'");
SQLPrepareStatement(Connection_Id, StatementID);
SQLExecute(Connection_Id, StatementID);
Dans l'exemple ci-dessus, la valeur StatementID est créé par un appel à la fonction SQLPrepareStatement, puis utilisé dans la fonction SQLExecute(). Pour terminer cette instruction SELECT, utilisez la fonction SQLClearStatement() dans un script pour libérer les ressources et le pointeur StatementID.
La fonction SQLExecute() prend en charge l'exécution de certaines procédures stockées. Supposez, par exemple, que vous vouliez créer sur le serveur de base de données une procédure stockée dénommée "LotInfoProc", contenant l’instruction suivante : "Select LotNo, LotName from LotInfo."
L'écriture d'un QuickScript InTouch permet d'exécuter la procédure stockée en fonction du type de la base de données utilisée. L'exemple suivant montre les instructions d'un script qui exécute une procédure stockée pour une base de données SQL<:hs>Server.
ResultCode = SQLSetStatement (ConnectionID,"LotInfoProc");
ResultCode = SQLExecute(ConnectionID, "BindList", 0);
ResultCode = SQLInsert(ConnectionID, "BatchDetails", "BindList1");
{Get results of Select}
L'exemple suivant montre les instructions d'un script qui exécute une procédure stockée pour une base de données Oracle.
ResultCode = SQLInsert(ConnectionID, "BatchDetails", "BindList1");
ResultCode = SQLExecute(ConnectionID, "BindList", 0);
ResultCode = SQLInsert(ConnectionID, "BatchDetails", "BindList1");
{Get results of Select}
Voir aussi
SQLConnect(), SQLPrepareStatement()