Compartir a través de


Preparación y ejecución de una instrucción (ODBC)

Para preparar una instrucción una vez y, a continuación, ejecutarla varias veces

  1. Llame a la función SQLPrepare para preparar la instrucción .

  2. Opcionalmente, llame a SQLNumParams para determinar el número de parámetros de la instrucción preparada.

  3. Opcionalmente, para cada parámetro de la instrucción preparada:

    • Llame a SQLDescribeParam para obtener información de parámetros.

    • Enlace cada parámetro a una variable de programa mediante SQLBindParameter. Configure los parámetros de datos en ejecución.

  4. Para cada ejecución de una instrucción preparada:

    • Si la instrucción tiene marcadores de parámetros, coloque los valores de datos en el búfer de parámetros enlazados.

    • Llame a SQLExecute para ejecutar la instrucción preparada.

    • Si se usan parámetros de entrada de datos en ejecución, SQLExecute devuelve SQL_NEED_DATA. Envíe los datos en fragmentos mediante SQLParamData y SQLPutData.

Para preparar una instrucción con enlace de parámetros en columna

  1. Llame a SQLSetStmtAttr para establecer los atributos siguientes:

    • Establezca SQL_ATTR_PARAMSET_SIZE en el número de conjuntos (S) de parámetros.

    • Establezca SQL_ATTR_PARAM_BIND_TYPE en SQL_PARAMETER_BIND_BY_COLUMN.

    • Establezca el atributo SQL_ATTR_PARAMS_PROCESSED_PTR para que apunte a una variable SQLUINTEGER para contener el número de parámetros procesados.

    • Establezca SQL_ATTR_PARAMS_STATUS_PTR para que apunte a una matriz[S] de variables SQLUSSMALLINT para contener indicadores de estado de parámetros.

  2. Llame a SQLPrepare para preparar la instrucción .

  3. Opcionalmente, llame a SQLNumParams para determinar el número de parámetros de la instrucción preparada.

  4. Opcionalmente, para cada parámetro de la instrucción preparada, llame a SQLDescribeParam para obtener información de parámetros.

  5. Para cada marcador de parámetro:

    • Asigne una matriz de búferes de parámetros S para almacenar valores de datos.

    • Asigne una matriz de búferes de parámetros S para almacenar longitudes de datos.

    • Llame a SQLBindParameter para enlazar el valor de datos de parámetro y las matrices de longitud de datos al parámetro de instrucción.

    • Si el parámetro es un texto de datos en ejecución o un parámetro de imagen, establézcalo.

    • Si se usan parámetros de datos en ejecución, establézcalos.

  6. Para cada ejecución de una instrucción preparada:

    • Coloque los valores de datos S y las longitudes de datos S en las matrices de parámetros enlazadas.

    • Llame a SQLExecute para ejecutar la instrucción preparada.

    • Si se usan parámetros de entrada de datos en ejecución, SQLExecute devuelve SQL_NEED_DATA. Envíe los datos en fragmentos mediante SQLParamData y SQLPutData.

Para preparar una instrucción con parámetros enlazados a filas

  1. Asigne una matriz[S] de estructuras, donde S es el número de conjuntos de parámetros. La estructura tiene un elemento para cada parámetro y cada elemento tiene dos partes:

    • La primera parte es una variable del tipo de datos adecuado para contener los datos del parámetro.

    • La segunda parte es una variable SQLINTEGER para contener el indicador de estado.

  2. Llame a SQLSetStmtAttr para establecer los atributos siguientes:

    • Establezca SQL_ATTR_PARAMSET_SIZE en el número de conjuntos (S) de parámetros.

    • Establezca SQL_ATTR_PARAM_BIND_TYPE en el tamaño de la estructura asignada en el paso 1.

    • Establezca el atributo SQL_ATTR_PARAMS_PROCESSED_PTR para que apunte a una variable SQLUINTEGER para contener el número de parámetros procesados.

    • Establezca SQL_ATTR_PARAMS_STATUS_PTR para que apunte a una matriz[S] de variables SQLUSSMALLINT para contener indicadores de estado de parámetros.

  3. Llame a SQLPrepare para preparar la instrucción .

  4. Para cada marcador de parámetro, llame a SQLBindParameter para apuntar el valor de datos del parámetro y el puntero de longitud de datos a sus variables en el primer elemento de la matriz de estructuras asignadas en el paso 1. Si el parámetro es un parámetro data-at-execution, establézcalo.

  5. Para cada ejecución de una instrucción preparada:

    • Rellene la matriz de búfer de parámetros enlazados con valores de datos.

    • Llame a SQLExecute para ejecutar la instrucción preparada. El controlador ejecuta eficazmente las horas de la instrucción SQL S, una vez para cada conjunto de parámetros.

    • Si se usan parámetros de entrada de datos en ejecución, SQLExecute devuelve SQL_NEED_DATA. Envíe los datos en fragmentos mediante SQLParamData y SQLPutData.

Véase también

Ejecución de temas de procedimientos de consultas (ODBC)