Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour exécuter une instruction directement et une seule fois
Si l’instruction a des marqueurs de paramètre, utilisez SQLBindParameter pour lier chaque paramètre à une variable de programme. Remplissez les variables de programme avec des valeurs de données, puis configurez les paramètres de données au niveau de l’exécution.
Appelez SQLExecDirect pour exécuter l’instruction.
Si les paramètres d’entrée de données à l’exécution sont utilisés, SQLExecDirect retourne SQL_NEED_DATA. Envoyez les données en blocs à l’aide de SQLParamData et DE SQLPutData.
Pour exécuter une instruction plusieurs fois à l’aide de la liaison de paramètre en mode colonne
Appelez SQLSetStmtAttr pour définir les attributs suivants :
Définissez SQL_ATTR_PARAMSET_SIZE sur le nombre de jeux (S) de paramètres.
Définissez SQL_ATTR_PARAM_BIND_TYPE sur SQL_PARAMETER_BIND_BY_COLUMN.
Définissez l’attribut SQL_ATTR_PARAMS_PROCESSED_PTR pour qu’il pointe vers une variable SQLUINTEGER pour contenir le nombre de paramètres traités.
Définissez SQL_ATTR_PARAMS_STATUS_PTR pour pointer vers un tableau[S] de variables SQLUSSMALLINT pour contenir les indicateurs d’état des paramètres.
Pour chaque marqueur de paramètre :
Allouez un tableau de mémoires tampons de paramètres S pour stocker les valeurs de données.
Allouez un tableau de mémoires tampons de paramètres S pour stocker les longueurs de données.
Appelez SQLBindParameter pour lier la valeur des données de paramètre et les tableaux de longueur de données au paramètre d’instruction.
Configurez les paramètres de texte ou d’image de données au moment de l’exécution.
Placez les valeurs de données S et les longueurs de données S dans les tableaux de paramètres liés.
Appelez SQLExecDirect pour exécuter l’instruction. Le pilote exécute efficacement l’instruction S times, une fois pour chaque ensemble de paramètres.
Si les paramètres d’entrée de données à l’exécution sont utilisés, SQLExecDirect retourne SQL_NEED_DATA. Envoyez les données en blocs à l’aide de SQLParamData et DE SQLPutData.
Pour exécuter une instruction plusieurs fois à l’aide de la liaison de paramètres en ligne
Allouez un tableau[S] de structures, où S correspond au nombre d’ensembles de paramètres. La structure a un élément pour chaque paramètre, et chaque élément a deux parties :
La première partie est une variable du type de données approprié pour contenir les données de paramètre.
La deuxième partie est une variable SQLINTEGER pour contenir l’indicateur d’état.
Appelez SQLSetStmtAttr pour définir les attributs suivants :
Définissez SQL_ATTR_PARAMSET_SIZE sur le nombre de jeux (S) de paramètres.
Définissez SQL_ATTR_PARAM_BIND_TYPE sur la taille de la structure allouée à l’étape 1.
Définissez l’attribut SQL_ATTR_PARAMS_PROCESSED_PTR pour qu’il pointe vers une variable SQLUINTEGER pour contenir le nombre de paramètres traités.
Définissez SQL_ATTR_PARAMS_STATUS_PTR pour pointer vers un tableau[S] de variables SQLUSSMALLINT pour contenir les indicateurs d’état des paramètres.
Pour chaque marqueur de paramètre, appelez SQLBindParameter pour pointer la valeur de données et le pointeur de longueur des données du paramètre vers leurs variables dans le premier élément du tableau de structures allouées à l’étape 1. Si le paramètre est un paramètre data-at-execution, configurez-le.
Remplissez le tableau de mémoires tampons de paramètres liés avec des valeurs de données.
Appelez SQLExecDirect pour exécuter l’instruction. Le pilote exécute efficacement l’instruction S times, une fois pour chaque ensemble de paramètres.
Si les paramètres d’entrée de données à l’exécution sont utilisés, SQLExecDirect retourne SQL_NEED_DATA. Envoyez les données en blocs à l’aide de SQLParamData et DE SQLPutData.
Note Les liaisons basées sur les colonnes et les lignes sont plus généralement utilisées conjointement avec SQLPrepare Function et SQLExecute qu’avec SQLExecDirect.