Campos adiados
Os valores dos campos adiados não são usados quando são definidos, mas o driver salva os endereços das variáveis para um efeito adiado. Para um descritor de parâmetro de aplicativo, o driver usa o conteúdo das variáveis no momento da chamada para SQLExecDirect ou SQLExecute. Para um descritor de linha de aplicativo, o driver usa o conteúdo das variáveis no momento da busca.
São campos diferidos:
Os campos SQL_DESC_DATA_PTR e SQL_DESC_INDICATOR_PTR de um registro de descritor.
O campo SQL_DESC_OCTET_LENGTH_PTR de um registro de descritor de aplicativo.
No caso de uma busca de várias linhas, os campos SQL_DESC_ARRAY_STATUS_PTR e SQL_DESC_ROWS_PROCESSED_PTR de um cabeçalho de descritor.
Quando um descritor é alocado, os campos adiados de cada registro de descritor inicialmente têm um valor nulo. O significado dos atributos é o seguinte:
Se SQL_DESC_ARRAY_STATUS_PTR tiver um valor nulo, uma busca de várias linhas falhará ao retornar esse componente das informações de diagnóstico por linha.
Se SQL_DESC_DATA_PTR tiver um valor nulo, o registro será desacoplado.
Se o campo SQL_DESC_OCTET_LENGTH_PTR de um ARD tiver um valor nulo, o driver não retornará informações de comprimento para essa coluna.
Se o campo SQL_DESC_OCTET_LENGTH_PTR de um APD tiver um valor nulo e o parâmetro for uma cadeia de caracteres, o driver assumirá que a cadeia de caracteres é terminada em nulo. Para parâmetros dinâmicos de saída, um valor nulo nesse campo impede que o driver retorne informações de comprimento. (Se o campo SQL_DESC_TYPE não indicar um parâmetro de cadeia de caracteres, o campo SQL_DESC_OCTET_LENGTH_PTR será ignorado.)
O aplicativo não deve desalocar ou descartar variáveis usadas para campos adiados entre o momento em que os associa aos campos e o momento em que o driver os lê ou grava.