Preenchimento automático do IPD

Alguns drivers são capazes de definir os campos do IPD após a preparação de uma consulta parametrizada. Os campos do descritor são preenchidos automaticamente com informações sobre o parâmetro, incluindo o tipo de dados, precisão, escala e outras características. Isso é equivalente ao suporte a SQLDescribeParam. Essas informações podem ser particularmente valiosas para um aplicativo quando ele não tem outra maneira de descobri-lo, como quando uma consulta ad hoc é executada com parâmetros que o aplicativo não conhece.

Um aplicativo determina se o driver oferece suporte ao preenchimento automático chamando SQLGetConnectAttr com um atributo de SQL_ATTR_AUTO_IPD. Se SQL_TRUE for retornado, o driver oferece suporte a ele e o aplicativo pode habilitá-lo definindo o atributo de instrução SQL_ATTR_ENABLE_AUTO_IPD como SQL_TRUE.

Quando o preenchimento automático é suportado e habilitado, o driver preenche os campos do IPD depois que uma instrução SQL contendo marcadores de parâmetro foi preparada por uma chamada para SQLPrepare. Um aplicativo pode recuperar essas informações chamando SQLGetDescField ou SQLGetDescRec ou SQLDescribeParam. O aplicativo pode usar as informações para vincular o buffer de aplicativo mais apropriado para um parâmetro ou para especificar uma conversão de dados para ele.

O preenchimento automático do IPD pode produzir uma penalidade de desempenho. Um aplicativo pode desativá-lo redefinindo o atributo de instrução SQL_ATTR_ENABLE_AUTO_IPD para SQL_FALSE (o valor padrão).