Atribuindo armazenamento

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 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 que reconhece a 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 que reconhece a linha é especificada chamando SQLSetStmtAttr com Attribute definido como SQL_ATTR_ROW_BIND_TYPE and ValuePtr definido como o tamanho da estrutura que manté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.

Consulte também

Conceitos