Executar uma instrução diretamente (ODBC)

Para executar uma instrução diretamente e somente uma vez

  1. Se a instrução tiver marcadores de parâmetro, use SQLBindParameter para associar cada parâmetro a uma variável de programa. Preencha as variáveis de programa com valores de dados e configure todos os parâmetros de dados em execução.

  2. Chame SQLExecDirect para executar a instrução.

  3. Se os parâmetros de entrada de dados em execução forem usados, SQLExecDirect retornará SQL_NEED_DATA. Envie os dados em partes usando SQLParamData e SQLPutData.

Para executar uma instrução várias vezes usando a associação de parâmetros em termos de coluna

  1. Chame SQLSetStmtAttr para definir os seguintes atributos:

    Defina SQL_ATTR_PARAMSET_SIZE para o número de conjuntos (S) de parâmetros.

    Defina SQL_ATTR_PARAM_BIND_TYPE como SQL_PARAMETER_BIND_BY_COLUMN.

    Defina o atributo SQL_ATTR_PARAMS_PROCESSED_PTR para apontar para uma variável SQLUINTEGER para manter o número de parâmetros processados.

    Defina SQL_ATTR_PARAMS_STATUS_PTR para apontar para uma matriz[S] de variáveis SQLUSSMALLINT para manter os indicadores de status do parâmetro.

  2. Para cada marcador de parâmetro:

    Aloque uma matriz de buffers de parâmetro S para armazenar valores de dados.

    Aloque uma matriz de buffers de parâmetro S para armazenar comprimentos de dados.

    Chame SQLBindParameter para associar o valor de dados do parâmetro e as matrizes de comprimento de dados ao parâmetro de instrução.

    Configure todos os parâmetros de texto ou imagem de dados em execução.

    Coloque valores de dados S e comprimentos de dados S nas matrizes de parâmetros associadas.

  3. Chame SQLExecDirect para executar a instrução. O driver executa com eficiência os tempos de instrução S, uma vez para cada conjunto de parâmetros.

  4. Se os parâmetros de entrada de dados em execução forem usados, SQLExecDirect retornará SQL_NEED_DATA. Envie os dados em partes usando SQLParamData e SQLPutData.

Para executar uma instrução várias vezes usando a associação de parâmetros em linha

  1. Aloque uma matriz[S] de estruturas, em que S é o número de conjuntos de parâmetros. A estrutura tem um elemento para cada parâmetro e cada elemento tem duas partes:

    A primeira parte é uma variável do tipo de dados apropriado para manter os dados do parâmetro.

    A segunda parte é uma variável SQLINTEGER para manter o indicador de status.

  2. Chame SQLSetStmtAttr para definir os seguintes atributos:

    Defina SQL_ATTR_PARAMSET_SIZE para o número de conjuntos (S) de parâmetros.

    Defina SQL_ATTR_PARAM_BIND_TYPE para o tamanho da estrutura alocada na Etapa 1.

    Defina o atributo SQL_ATTR_PARAMS_PROCESSED_PTR para apontar para uma variável SQLUINTEGER para manter o número de parâmetros processados.

    Defina SQL_ATTR_PARAMS_STATUS_PTR para apontar para uma matriz[S] de variáveis SQLUSSMALLINT para manter os indicadores de status do parâmetro.

  3. Para cada marcador de parâmetro, chame SQLBindParameter para apontar o valor de dados do parâmetro e o ponteiro de comprimento de dados para suas variáveis no primeiro elemento da matriz de estruturas alocadas na Etapa 1. Se o parâmetro for um parâmetro de dados em execução, configure-o.

  4. Preencha a matriz de buffer de parâmetro associado com valores de dados.

  5. Chame SQLExecDirect para executar a instrução. O driver executa com eficiência os tempos de instrução S, uma vez para cada conjunto de parâmetros.

  6. Se os parâmetros de entrada de dados em execução forem usados, SQLExecDirect retornará SQL_NEED_DATA. Envie os dados em partes usando SQLParamData e SQLPutData.

Nota A associação em termos de coluna e linha normalmente é usada em conjunto com a Função SQLPrepare e SQLExecute do que com SQLExecDirect.

Consulte Também

Executando tópicos de instruções de consultas (ODBC)