Freigeben über


Überschreiben der Standardwerte für die Genauigkeit des führenden Intervallfelds und die Dezimalstellenanzahl für numerische Datentypen

Wenn das SQL_DESC_TYPE Feld in einer ARD auf SQL_C_NUMERIC festgelegt ist, wird durch Aufrufen von SQLBindCol oder SQLSetDescField das SQL_DESC_SCALE Feld in der ARD auf 0 festgelegt, und das SQL_DESC_PRECISION Feld wird auf eine vom Treiber definierte Standardgenauigkeit festgelegt. Dies gilt auch, wenn das feld SQL_DESC_TYPE in einer APD durch Aufrufen von SQLBindParameter oder SQLSetDescField auf SQL_C_NUMERIC festgelegt ist. Dies gilt für Eingabe-, Eingabe-/Ausgabeparameter oder Ausgabeparameter.

Wenn einer der zuvor beschriebenen Standardwerte für eine Anwendung nicht akzeptabel ist, sollte die Anwendung das SQL_DESC_SCALE- oder SQL_DESC_PRECISION-Feld durch Aufrufen von SQLSetDescField oder SQLSetDescRec festlegen.

Wenn die Anwendung SQLGetData aufruft , um Daten in eine SQL_C_NUMERIC-Struktur zurückzugeben, werden die Standardfelder SQL_DESC_SCALE und SQL_DESC_PRECISION verwendet. Wenn die Standardwerte nicht akzeptabel sind, muss die Anwendung SQLSetDescRec oder SQLSetDescField aufrufen, um die Felder festzulegen, und dann SQLGetData mit einem TargetType von SQL_ARD_TYPE aufrufen, um die Werte in den Deskriptorfeldern zu verwenden.

Wenn SQLPutData aufgerufen wird, verwendet der Aufruf die SQL_DESC_SCALE- und SQL_DESC_PRECISION Felder des Deskriptordatensatzes, die dem Data-at-Execution-Parameter oder der -Spalte entspricht, bei denen es sich um APD-Felder für Aufrufe von SQLExecute oder SQLExecDirect handelt, oder ARD-Felder für Aufrufe von SQLBulkOperations oder SQLSetPos.