Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Programmierung » SQL Anywhere Datenzugriff-APIs » Sybase Open Client-API » Datentyp-Zuordnungen

 

Wertebereichseinschränkungen bei der Zuordnung von Datentypen

Einige Datentypen haben in SQL Anywhere andere Wertebereiche als in Open Client. In solchen Fällen kann es zu Überlauffehlern während der Abfrage oder des Einfügens von Daten kommen.

Die folgende Tabelle zeigt Open Client-Anwendungsdatentypen, die zwar SQL Anywhere-Datentypen zugeordnet werden können, aber nur mit einigen Einschränkungen im Wertebereich möglicher Werte.

In den meisten Fällen wird der Open Client-Datentyp einem SQL Anywhere-Datentyp zugeordnet, der einen größeren Bereich möglicher Werte hat. Deshalb ist es möglich, einen Wert an SQL Anywhere zu übergeben, der zwar akzeptiert und in einer Datenbank gespeichert wird, der aber zu groß ist, um von einer Open Client-Anwendung abgerufen zu werden.

Datentyp Untere Open Client-Grenze Obere Open Client-Grenze Untere SQL Anywhere-Grenze Obere SQL Anywhere-Grenze
MONEY -922 377 203 685 477.5808 922 377 203 685 477.5807 -1e15 + 0.0001 1e15 - 0.0001
SMALLMONEY -214 748.3648 214 748.3647 -214 748.3648 214 748.3647
DATETIME 1. Jan 1753 31. Dez 9999 1. Jan 0001 31. Dez 9999
SMALLDATETIME 1. Jan 1900 6. Jun 2079 1. Mrz 1600 31. Dez 7910
Beispiel

Die Open Client-Datentypen MONEY und SMALLMONEY umfassen zum Beispiel nicht den gesamten nummerischen Bereich der zugrunde liegenden SQL Anywhere-Implementierung. Daher kann in einer Spalte in SQL Anywhere ein Wert enthalten sein, der die Grenzwerte des Open Client-Datentyps MONEY überschreitet. Ruft der Client einen solchen unzulässigen Wert mit SQL Anywhere ab, wird eine Fehlermeldung erzeugt.

Zeitstempel

Die Implementierung des Open Client-Datentyps TIMESTAMP in SQL Anywhere unterscheidet sich von der Implementierung in Adaptive Server Enterprise. Der Wert wird in SQL Anywhere dem SQL Anywhere-Datentyp DATETIME zugewiesen. Der voreingestellte Wert ist NULL in SQL Anywhere, die Eindeutigkeit des Wertes ist nicht garantiert. Im Gegensatz dazu stellt Adaptive Server Enterprise sicher, dass der Wert gleichförmig steigt und somit immer eindeutig ist.

Der SQL Anywhere-Datentyp TIMESTAMP umfasst Jahr, Monat, Tag, Stunde, Minute, Sekunde und Sekundenbruchteile. Außerdem hat der Datentyp DATETIME einen größeren Wertebereich als die Open Client-Datentypen, die von SQL Anywhere zugeordnet werden.