Compartilhar via


Substituir a precisão e a escala padrão para tipos de dados numéricos

Quando o campo SQL_DESC_TYPE em um ARD é definido como SQL_C_NUMERIC, chamando SQLBindCol ou SQLSetDescField, o campo SQL_DESC_SCALE no ARD é definido como 0 e o campo SQL_DESC_PRECISION é definido como uma precisão padrão definida pelo driver. Isso também é verdadeiro quando o campo SQL_DESC_TYPE em um APD é definido como SQL_C_NUMERIC, chamando SQLBindParameter ou SQLSetDescField. Isso é verdadeiro para parâmetros de entrada, entrada/saída ou saída.

Se qualquer um dos padrões descritos anteriormente não for aceitável para um aplicativo, o aplicativo deverá definir o campo SQL_DESC_SCALE ou SQL_DESC_PRECISION chamando SQLSetDescField ou SQLSetDescRec.

Se o aplicativo chamar SQLGetData para retornar dados em uma estrutura SQL_C_NUMERIC, os campos padrão SQL_DESC_SCALE e SQL_DESC_PRECISION serão usados. Se os padrões não forem aceitáveis, o aplicativo deverá chamar SQLSetDescRec ou SQLSetDescField para definir os campos e, em seguida, chamar SQLGetData com um TargetType de SQL_ARD_TYPE para usar os valores nos campos do descritor.

Quando SQLPutData é chamado, a chamada usa os campos SQL_DESC_SCALE e SQL_DESC_PRECISION do registro do descritor que corresponde ao parâmetro ou coluna de dados em execução, que são campos APD para chamadas para SQLExecute ou SQLExecDirect ou campos ARD para chamadas para SQLBulkOperations ou SQLSetPos.