Compartir a través de


Ejecutar directamente una instrucción (ODBC)

Se aplica a: SQL Server Azure SQL Database Azure SQL Instancia administrada Azure Synapse Analytics Analytics Platform System (PDW)

Para ejecutar directamente y solo una vez una instrucción

  1. Si la instrucción tiene marcadores de parámetro, utilice SQLBindParameter para enlazar cada parámetro a una variable de programa. Llene las variables de programa de valores de datos y, a continuación, prepare los parámetros de datos en ejecución.

  2. Llame a SQLExecDirect para ejecutar la instrucción.

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

Para ejecutar varias veces una instrucción utilizando el enlace de parámetro de modo de 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 señale a una variable SQLUINTEGER que incluya el número de parámetros procesados.

    Establezca SQL_ATTR_PARAMS_STATUS_PTR para que señale a una matriz[S] de variables SQLUSSMALLINT que incluya los indicadores de estado de parámetros.

  2. Para cada marcador de parámetro:

    Asigne una matriz de S búferes de parámetros donde almacenar los valores de datos.

    Asigne una matriz de S búferes de parámetros donde almacenar las 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.

    Prepare los parámetros de texto o imagen de datos en ejecución.

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

  3. Llame a SQLExecDirect para ejecutar la instrucción. El controlador ejecuta eficazmente la instrucción S veces, una vez para cada conjunto de parámetros.

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

Para ejecutar varias veces una instrucción utilizando el enlace de parámetro de modo de fila

  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 donde almacenar los datos de parámetros.

    La segunda parte es una variable SQLINTEGER donde almacenar 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 señale a una variable SQLUINTEGER que incluya el número de parámetros procesados.

    Establezca SQL_ATTR_PARAMS_STATUS_PTR para que señale a una matriz[S] de variables SQLUSSMALLINT que incluya los indicadores de estado de parámetros.

  3. Para cada marcador de parámetro, llame a SQLBindParameter para que el valor de datos de parámetro y el puntero de longitud de datos señalen a sus variables en el primer elemento de la matriz de estructuras asignada en el paso 1. Si el parámetro es un parámetro de datos en ejecución, configúrelo.

  4. Rellene la matriz de búferes de parámetros enlazados con valores de datos.

  5. Llame a SQLExecDirect para ejecutar la instrucción. El controlador ejecuta eficazmente la instrucción S veces, una vez para cada conjunto de parámetros.

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

Nota Los enlaces de modo de columna y de modo de fila se usan con mayor frecuencia con SQLPrepare Function y SQLExecute que con SQLExecDirect.

Consulte también

Temas de procedimientos de ejecución de consultas (ODBC)