Compartilhar via


Atribuindo armazenamento

Um aplicativo pode atribuir armazenamento para resultados antes ou depois de executar uma instrução SQL. Se um aplicativo prepara ou executa a instrução SQL primeiro, ele pode perguntar sobre o conjunto de resultados antes de atribuir armazenamento para resultados. Por exemplo, se o conjunto de resultados for desconhecido, o aplicativo deverá recuperar o número de colunas antes de atribuir armazenamento a elas.

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

  • O tipo de dados no qual os dados devem ser convertidos.

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

    O aplicativo deve alocar esse buffer e deve ser grande o suficiente para manter os dados no formulário no qual ele é convertido.

  • O comprimento do buffer de saída.

    Esse valor será ignorado se os dados retornados tiverem uma largura fixa em C, como um número 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 dar suporte à busca de linhas de conjunto de resultados em blocos. Há dois tipos diferentes de associação de matriz:

  • A associação em termos de coluna é concluída quando cada coluna está associada à sua própria matriz de variáveis.

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

  • A associação em 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 para os parâmetros.

    A associação em linha é especificada chamando SQLSetStmtAttr com Attribute definido como SQL_ATTR_ROW_BIND_TYPE e ValuePtr definidos 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 para o número de elementos nas matrizes de coluna ou linha e define SQL_ATTR_ROW_STATUS_PTR e SQL_ATTR_ROWS_FETCHED_PTR.

Consulte Também

Processando resultados (ODBC)