Some data types have different ranges in SQL Anywhere than in Open Client. In such cases, overflow errors can occur during retrieval or insertion of data.
The following table lists Open Client application data types that can be mapped to SQL Anywhere data types, but with some restriction in the range of possible values.
In most cases, the Open Client data type is mapped to a SQL Anywhere data type that has a greater range of possible values. As a result, it is possible to pass a value to SQL Anywhere that will be accepted and stored in a database, but that is too large to be fetched by an Open Client application.
|Data type||Open Client lower range||Open Client upper range||SQL Anywhere lower range||SQL Anywhere upper range|
|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||Jan 1, 1753||Dec 31, 9999||Jan 1, 0001||Dec 31, 9999|
|SMALLDATETIME||Jan 1, 1900||June 6, 2079||March 1, 1600||Dec 31, 7910|
For example, the Open Client MONEY and SMALLMONEY data types do not span the entire numeric range of their underlying SQL Anywhere implementations. Therefore, it is possible to have a value in a SQL Anywhere column which exceeds the boundaries of the Open Client data type MONEY. When the client fetches any such offending values via SQL Anywhere, an error is generated.
The SQL Anywhere implementation of the Open Client TIMESTAMP data type, when such a value is passed in SQL Anywhere, is different from that of Adaptive Server Enterprise. In SQL Anywhere, the value is mapped to the SQL Anywhere DATETIME data type. The default value is NULL in SQL Anywhere and no guarantee is made of its uniqueness. By contrast, Adaptive Server Enterprise ensures that the value is monotonically increasing in value, and so, is unique.
By contrast, the SQL Anywhere TIMESTAMP data type contains year, month, day, hour, minute, second, and fraction of second information. In addition, the DATETIME data type has a greater range of possible values than the Open Client data types that are mapped to it by SQL Anywhere.