Partilhar via


Manípulos de Descritores

Um descritor é uma coleção de metadados que descreve os parâmetros de uma instrução SQL ou das colunas de um conjunto de resultados, conforme visto pela aplicação ou driver (também conhecido como implementação). Assim, um descritor pode desempenhar qualquer um de quatro papéis:

  • Descritor de Parâmetro de Aplicação (APD). Contém informação sobre os buffers de aplicação ligados aos parâmetros numa instrução SQL, como os seus endereços, comprimentos e tipos de dados C.

  • Descritor de Parâmetro de Implementação (IPD). Contém informação sobre os parâmetros numa instrução SQL, como os seus tipos de dados SQL, comprimentos e anulabilidade.

  • Descritor de Linha de Aplicação (ARD). Contém informações sobre os buffers de aplicação vinculados às colunas de um conjunto de resultados, como os seus endereços, comprimentos e tipos de dados C.

  • Descritor de Linha de Implementação (IRD). Contém informação sobre as colunas num conjunto de resultados, como os seus tipos de dados SQL, comprimentos e anulabilidade.

Quatro descritores (um a preencher cada função) são alocados automaticamente quando uma declaração é alocada. Estes são conhecidos como descritores alocados automaticamente e estão sempre associados a essa afirmação. As aplicações também podem alocar descritores com SQLAllocHandle. Estes são conhecidos como descritores explicitamente alocados. São alocados numa ligação e podem ser associados a uma ou mais declarações nessa ligação para cumprir o papel de APD ou ARD nessas declarações.

A maioria das operações em ODBC pode ser realizada sem o uso explícito de descritores pela aplicação. No entanto, os descritores fornecem um atalho conveniente para algumas operações. Por exemplo, suponha que uma aplicação quer inserir dados de dois conjuntos diferentes de buffers. Para usar o primeiro conjunto de buffers, chamava repetidamente SQLBindParameter para os ligar aos parâmetros de uma instrução INSERT e depois executava a instrução. Para usar o segundo conjunto de buffers, repetiria este processo. Alternativamente, poderia estabelecer ligações para o primeiro conjunto de buffers num descritor e para o segundo conjunto de buffers noutro descritor. Para alternar entre os conjuntos de ligações, a aplicação simplesmente chamava SQLSetStmtAttr e associava o descritor correto à instrução como APD.

Para mais informações sobre descritores, consulte Tipos de Descritores.