Share via


覆寫數值資料類型的預設有效位數和小數位數

當 ARD 中的SQL_DESC_TYPE欄位設定為SQL_C_NUMERIC時,藉由呼叫 SQLBindCol SQLSetDescField ,ARD 中的SQL_DESC_SCALE欄位會設定為 0,而SQL_DESC_PRECISION欄位會設定為驅動程式定義的預設精確度。 呼叫 SQLBindParameter SQLSetDescField ,當 APD 中的SQL_DESC_TYPE欄位設定為SQL_C_NUMERIC時, 這也是事實。 輸入、輸入/輸出或輸出參數也是如此。

如果應用程式無法接受先前所述的任一預設值,應用程式應該呼叫 SQLSetDescField 或 SQLSetDescRec 來設定SQL_DESC_SCALE或 SQL_DESC_PRECISION欄位。

如果應用程式呼叫 SQLGetData 將資料傳回SQL_C_NUMERIC結構,則會使用預設SQL_DESC_SCALE和SQL_DESC_PRECISION欄位。 如果無法接受預設值,應用程式必須呼叫 SQLSetDescRec SQLSetDescField 來設定欄位,然後使用SQL_ARD_TYPE TargetType 呼叫 SQLGetData ,才能使用描述元欄位中的值。

呼叫 SQLPutData ,呼叫會使用對應至資料執行參數或資料行之描述元記錄的SQL_DESC_SCALE和SQL_DESC_PRECISION欄位,這些欄位是呼叫 SQLExecute SQLExecDirect 的 APD 欄位,或呼叫 SQLBulkOperations SQLSetPos 的 ARD 欄位。