Teilen über


Überschreiben der Standardwerte für die Genauigkeit des führenden Intervallfelds und die Sekundengenauigkeit für Intervalldatentypen

Wenn das SQL_DESC_TYPE Feld einer ARD auf den Typ datetime oder interval C festgelegt ist, wird durch Aufrufen von SQLBindCol oder SQLSetDescField das feld SQL_DESC_PRECISION (das die Genauigkeit von Intervallsekunden enthält) auf die folgenden Standardwerte festgelegt:

  • 6 für Zeitstempel und alle Intervalldatentypen mit einer zweiten Komponente.

  • 0 für alle anderen Datentypen.

Für alle Intervalldatentypen wird das SQL_DESC_DATETIME_INTERVAL_PRECISION Deskriptorfeld, das die Genauigkeit des intervallführenden Felds enthält, auf den Standardwert 2 festgelegt.

Wenn das feld SQL_DESC_TYPE in einer APD auf den Typ datetime oder interval C festgelegt wird, werden die Felder SQL_DESC_PRECISION und SQL_DESC_DATETIME_INTERVAL_PRECISION in der APD auf den zuvor angegebenen Standardwert festgelegt. Dies gilt für Eingabeparameter, aber nicht für Eingabe-/Ausgabe- oder Ausgabeparameter.

Ein Aufruf von SQLSetDescRec legt die Intervallführungsgenauigkeit auf den Standardwert fest, legt jedoch die Genauigkeit des Intervalls (im Feld SQL_DESC_PRECISION) auf den Wert des Arguments Precision fest.

Wenn einer der zuvor angegebenen Standardwerte für eine Anwendung nicht akzeptabel ist, sollte die Anwendung das SQL_DESC_PRECISION- oder SQL_DESC_DATETIME_INTERVAL_PRECISION-Feld festlegen, indem SQLSetDescField aufgerufen wird.

Wenn die Anwendung SQLGetData aufruft, um Daten in einen datetime- oder Intervall-C-Typ zurückzugeben, wird das Standardintervall verwendet, das Genauigkeit und Intervall sekundengenau führt. Wenn die Standardeinstellung nicht akzeptabel ist, muss die Anwendung SQLSetDescField aufrufen, um entweder das Deskriptorfeld festzulegen, oder SQLSetDescRec , um SQL_DESC_PRECISION festzulegen. Der Aufruf von SQLGetData sollte einen TargetType von SQL_ARD_TYPE haben, um die Werte in den Deskriptorfeldern zu verwenden.

Wenn SQLPutData aufgerufen wird, werden die Intervallführungsgenauigkeit und die Genauigkeit von Intervall sekunden aus den Feldern des Deskriptordatensatzes gelesen, die dem Data-at-Execution-Parameter oder der Spalte "data-at-execution" entsprechen. Dabei handelt es sich um APD-Felder für Aufrufe von SQLExecute oder SQLExecDirect oder ARD-Feldern für Aufrufe von SQLBulkOperations oder SQLSetPos.