Partilhar via


Atribuindo armazenamento

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

Um aplicativo pode atribuir armazenamento para resultados antes ou depois de executar uma instrução SQL. Caso prepare ou execute a instrução SQL primeiro, um aplicativo pode consultar o conjunto de resultados antes de atribuir o armazenamento para resultados. Por exemplo, caso o conjunto de resultados seja desconhecido, o aplicativo deve recuperar o número de colunas antes de atribuir o armazenamento a eles.

Para associar o armazenamento a uma coluna de dados, um aplicativo chama SQLBindCol e o passa:

  • O tipo de dados no qual os dados serão convertidos.

  • O endereço de um buffer de saída para os dados.

    O aplicativo deve alocar esse buffer e ser grande o bastante para manter os dados na forma em que são convertidos.

  • O comprimento do buffer de saída.

    Esse valor será ignorado se os dados retornados tiverem uma largura fixa em C como, por exemplo, um inteiro, número real ou estrutura de data.

  • O endereço de um buffer de armazenamento no qual retornar o número de bytes de dados disponíveis.

Um aplicativo também pode associar colunas de conjunto de resultados a matrizes de variáveis de programa para oferecer suporte à busca das linhas de conjunto de resultados em blocos. Há dois tipos diferentes de associação de matriz:

  • A associação que reconhece a coluna é concluída quando cada coluna é associada a sua própria matriz de variáveis.

    A associação por coluna é especificada chamando SQLSetStmtAttr com Attribute definido como SQL_ATTR_ROW_BIND_TYPE e ValuePtr definido como SQL_BIND_BY_COLUMN. Todos as matrizes devem ter o mesmo número de elementos.

  • A associação que reconhece a linha é concluída quando todos os parâmetros na instrução SQL são associados como uma unidade a uma matriz de estruturas que contêm as variáveis individuais dos parâmetros.

    A associação de linha a linha é especificada chamando SQLSetStmtAttr com Attribute definido como SQL_ATTR_ROW_BIND_TYPE e ValuePtr definido como o tamanho da estrutura que contém as variáveis que receberão as colunas do conjunto de resultados.

O aplicativo também define SQL_ATTR_ROW_ARRAY_SIZE como o número de elementos nas matrizes da coluna ou da linha e define SQL_ATTR_ROW_STATUS_PTR e SQL_ATTR_ROWS_FETCHED_PTR.

Confira também

Processando resultados (ODBC)