Condividi tramite


Override della precisione predefinita e della scala per i tipi di dati numerici

Quando il campo SQL_DESC_TYPE in un ARD è impostato su SQL_C_NUMERIC, chiamando SQLBindCol o SQLSetDescField, il campo SQL_DESC_SCALE nella ARD è impostato su 0 e il campo SQL_DESC_PRECISION viene impostato su una precisione predefinita definita dal driver. Questo vale anche quando il campo SQL_DESC_TYPE in un APD è impostato su SQL_C_NUMERIC, chiamando SQLBindParameter o SQLSetDescField. Questo vale per i parametri di input, input/output o output.

Se una delle impostazioni predefinite descritte in precedenza non è accettabile per un'applicazione, l'applicazione deve impostare il campo SQL_DESC_SCALE o SQL_DESC_PRECISION chiamando SQLSetDescField o SQLSetDescRec.

Se l'applicazione chiama SQLGetData per restituire i dati in una struttura SQL_C_NUMERIC, vengono usati i campi predefiniti SQL_DESC_SCALE e SQL_DESC_PRECISION. Se le impostazioni predefinite non sono accettabili, l'applicazione deve chiamare SQLSetDescRec o SQLSetDescField per impostare i campi e quindi chiamare SQLGetData con targetTypedi SQL_ARD_TYPE per usare i valori nei campi descrittore.

Quando viene chiamato SQLPutData , la chiamata usa i campi SQL_DESC_SCALE e SQL_DESC_PRECISION del record descrittore che corrisponde al parametro o alla colonna data-at-execution, che sono campi APD per le chiamate a SQLExecute o SQLExecDirect o campi ARD per le chiamate a SQLBulkOperations o SQLSetPos.