Preparar e executar uma instrução (ODBC)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure PDW (Sistema de Plataforma de Análise) do Azure Synapse Analytics

Para preparar uma instrução uma vez e, depois, executá-la várias vezes

  1. Chame a Função SQL Prepare para preparar a instrução.

  2. Opcionalmente, chame SQLNumParams para determinar o número de parâmetros na instrução preparada.

  3. Opcionalmente, para cada parâmetro na instrução preparada:

    • Chame SQLDescribeParam para obter informações de parâmetro.

    • Associe cada parâmetro a uma variável de programa usando SQLBindParameter. Configure qualquer parâmetro de dados em execução.

  4. Para cada execução de uma instrução preparada:

    • Se a instrução tiver marcadores de parâmetro, coloque os valores de dados no buffer de parâmetros associado.

    • Chame SQLExecute para executar a instrução preparada.

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

Para preparar uma instrução com associação de parâmetro de coluna

  1. Chame SQLSetStmtAttr para definir os seguintes atributos:

    • Defina SQL_ATTR_PARAMSET_SIZE como 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 de forma que aponte para uma variável SQLUINTEGER que contém o número de parâmetros processados.

    • Defina SQL_ATTR_PARAMS_STATUS_PTR de forma que aponte para uma matriz[S] de variáveis SQLUSSMALLINT que contém indicadores de status de parâmetro.

  2. Chame SQLPrepare para preparar a instrução.

  3. Opcionalmente, chame SQLNumParams para determinar o número de parâmetros na instrução preparada.

  4. Opcionalmente, para cada parâmetro na instrução preparada, chame SQLDescribeParam para obter informações de parâmetro.

  5. Para cada marcador de parâmetro:

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

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

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

    • Se o parâmetro for um parâmetro de imagem ou de texto de dados em execução, configure-o.

    • Se qualquer parâmetro de dados em execução for usado, configure-o.

  6. Para cada execução de uma instrução preparada:

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

    • Chame SQLExecute para executar a instrução preparada.

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

Para preparar uma instrução com parâmetros associados de linha

  1. Aloque uma matriz[S] de estruturas, onde 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 que contém os dados de parâmetro.

    • A segunda parte é uma variável SQLINTEGER que contém o indicador de status.

  2. Chame SQLSetStmtAttr para definir os seguintes atributos:

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

    • Defina SQL_ATTR_PARAM_BIND_TYPE como o tamanho da estrutura alocada na Etapa 1.

    • Defina o atributo SQL_ATTR_PARAMS_PROCESSED_PTR de forma que aponte para uma variável SQLUINTEGER que contém o número de parâmetros processados.

    • Defina SQL_ATTR_PARAMS_STATUS_PTR de forma que aponte para uma matriz[S] de variáveis SQLUSSMALLINT que contém indicadores de status de parâmetro.

  3. Chame SQLPrepare para preparar a instrução.

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

  5. Para cada execução de uma instrução preparada:

    • Preencha a matriz de buffers de parâmetros associada com valores de dados.

    • Chame SQLExecute para executar a instrução preparada. O driver executa, com eficiência, a instrução SQL S vezes, uma vez para cada conjunto de parâmetros.

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

Confira também

Tópicos de instruções sobre a execução de consultas (ODBC)