Préparer et exécuter une instruction (ODBC)

Pour préparer une instruction une seule fois, puis l’exécuter plusieurs fois

  1. Appelez la fonction SQLPrepare pour préparer l’instruction.

  2. Si vous le souhaitez, appelez SQLNumParams pour déterminer le nombre de paramètres dans l’instruction préparée.

  3. Si vous le souhaitez, pour chaque paramètre de l’instruction préparée :

    • Appelez SQLDescribeParam pour obtenir des informations sur les paramètres.

    • Liez chaque paramètre à une variable de programme à l’aide de SQLBindParameter. Configurez tous les paramètres de données au niveau de l’exécution.

  4. Pour chaque exécution d’une instruction préparée :

    • Si l’instruction a des marqueurs de paramètre, placez les valeurs de données dans la mémoire tampon de paramètres liée.

    • Appelez SQLExecute pour exécuter l’instruction préparée.

    • Si les paramètres d’entrée d’exécution des données sont utilisés, SQLExecute retourne SQL_NEED_DATA. Envoyez les données en blocs à l’aide de SQLParamData et DE SQLPutData.

Pour préparer une instruction avec une liaison de paramètre à l’échelle des colonnes

  1. 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.

  2. Appelez SQLPrepare pour préparer l’instruction.

  3. Si vous le souhaitez, appelez SQLNumParams pour déterminer le nombre de paramètres dans l’instruction préparée.

  4. Si vous le souhaitez, pour chaque paramètre de l’instruction préparée, appelez SQLDescribeParam pour obtenir des informations sur les paramètres.

  5. 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.

    • Si le paramètre est un paramètre de texte ou d’image data-at-execution, configurez-le.

    • Si des paramètres de données au niveau de l’exécution sont utilisés, configurez-les.

  6. Pour chaque exécution d’une instruction préparée :

    • Placez les valeurs de données S et les longueurs de données S dans les tableaux de paramètres liés.

    • Appelez SQLExecute pour exécuter l’instruction préparée.

    • Si les paramètres d’entrée de données au niveau de l’exécution sont utilisés, SQLExecute retourne SQL_NEED_DATA. Envoyez les données en blocs à l’aide de SQLParamData et DE SQLPutData.

Pour préparer une instruction avec des paramètres liés au niveau des lignes

  1. 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.

  2. 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.

  3. Appelez SQLPrepare pour préparer l’instruction.

  4. Pour chaque marqueur de paramètre, appelez SQLBindParameter pour pointer la valeur des données de paramètre et le pointeur de longueur des données 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.

  5. Pour chaque exécution d’une instruction préparée :

    • Remplissez le tableau de mémoires tampons de paramètres liés avec des valeurs de données.

    • Appelez SQLExecute pour exécuter l’instruction préparée. Le pilote exécute efficacement les temps S de l’instruction SQL, une fois pour chaque ensemble de paramètres.

    • Si les paramètres d’entrée de données au niveau de l’exécution sont utilisés, SQLExecute retourne SQL_NEED_DATA. Envoyez les données en blocs à l’aide de SQLParamData et DE SQLPutData.

Voir aussi

Exécution de rubriques de procédure sur les requêtes (ODBC)