远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
考虑到Sybase数据库的初学者或者没有购买原厂服务的Sybase客户情况,现提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息。
在SAP Support Portal网站或者google上搜索Targeted CR List for ASE,可以看到针对不同版本的CR(CR表示Change Request)简单描述信息列表。
需要注意的是:Targeted CR List for ASE列出的CR虽然绝大多数是BUG,但有一些是更改需求。
以下提供SAP ASE/IQ/RS/SDK/SQL Anywhere/PB等产品的BUG信息!

如有问题,请联系我!

QQ :289965371 点击这里给我发消息
Email:
不仅仅包括BUG的详细描述信息,还包括首次报告BUG的平台、数据库版本以及BUG修复历史过程;有些BUG还提供了Workaround来临时解决该BUG带来问题。

 

CR:391889
CR Number:   391889
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1714 31 May 2005 Fixed
27 May 2005 Not a Bug
9.0.2 3124 31 May 2005 Fixed
Description
If there were SQL errors reported in the server log by the JMS connector, or the background notification threads (indicated by the prefix [QA]), then a leak of database connections would have occurred. Every error that occurred forced a new database connection to be created without closing the old connection. One example of an error that can cause this problem is an invalid server-side transmission or delete rule. The problem was due to the current connection -- the one encountering the error -- not being returned to the connection pool, so it was never closed. This has now been fixed so that the connection encountering an error is closed.



CR:391900
CR Number:   391900
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3133 07 Jun 2005 Fixed
8.0.3 5270 23 Jun 2005 Fixed
Description
Intreactive SQL could have reported an 'internal error' if the Import Wizard was used to read data from an ASCII file into an existing table, and there were fewer columns in the file than columns in the table. This has been fixed.
Workaround Description
 LOAD TABLE statement works correctly.



CR:392015
CR Number:   392015
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Open
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1715 31 May 2005 Fixed
9.0.2 3129 31 May 2005 Fixed
Description
Server-side transmission rules, including references to more than one custom message property, may under certain circumstances have evaluated as if one or more of the custom property values was null. This may have occurred if the transmission rule referred to two or more custom message properties in the same rule and the server delete rules included a reference to one of the same custom message properties. This problem has been fixed.



CR:392017
CR Number:   392017
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   4.3.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3129 27 May 2005 Fixed
9.0.1 2028 30 May 2005 Fixed
9.0.0 1409 30 May 2005 Fixed
Description
If a shared connection profile was created, it was not saved if Sybase Central terminated abnormally after the connection profile dialog is closed. Private connection profiles were saved properly. This has now been fixed.



CR:392029
CR Number:   392029
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1715 27 May 2005 Fixed
9.0.2 3129 27 May 2005 Fixed
9.0.1 2028 27 May 2005 Fixed
Description
The server would have returned either -9 or a conversion error from the following query, depending on the platform:



select hextoint('fffffffffffffff7');



This problem has been fixed. The server will now consistently return -9 for the result.



In furthering compatibility with Adaptive Server Enterprise, the following examples now return errors, since they contain invalid hexadecimal characters.



select hextoint('ffffJackf7')



CR:392068
CR Number:   392068
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1715 30 May 2005 Fixed
9.0.2 3129 30 May 2005 Fixed
9.0.1 2028 30 May 2005 Fixed
8.0.3 5259 30 May 2005 Fixed
8.0.2 4534 30 May 2005 Fixed
Description
When backing up a database to multiple tapes, after the first tape had been written, the request for the next tape would have failed. This problem has been fixed.



CR:392205
CR Number:   392205
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1714 31 May 2005 Fixed
06 Jun 2005 Failed
9.0.2 3130 31 May 2005 Fixed
9.0.1 2028 31 May 2005 Fixed
Description
The SPACE() function in UltraLitre Dynamic SQL would have accepted a negative value. This has now been corrected.



CR:392209
CR Number:   392209
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Open
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3130 31 May 2005 Fixed
Description
QAnywhere 9.0.1 clients can synchronize messages with QAnywhere 9.0.2 servers, but if there was a server-side transmission rule for a 9.0.1 client then messages destined for the 9.0.1 client would never have been delivered. The messages destined for the 9.0.1 client would have remained on the server indefinitely. If the server-side transmission rule for the 9.0.1 client is removed, the messages would then have been delivered normally. This has now been fixed, there is no longer a problem delivering messages from a 9.0.2 server to a 9.0.1 client in the presence of server-side transmission rules.



CR:392213
CR Number:   392213
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3130 31 May 2005 Fixed
9.0.1 2028 31 May 2005 Fixed
Description
The QAnywhere JMS connector could have been slow in the presence of many thousands of messages queued up destined for the connector. This has been fixed so that any new ASA database created to be used as a consolidated database for the QAnywhere server includes a new index that greatly improves the performance of the JMS connector in this situation.



CR:392216
CR Number:   392216
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1722 07 Jun 2005 Fixed
9.0.2 3132 07 Jun 2005 Fixed
9.0.1 2032 07 Jun 2005 Fixed
8.0.3 5262 07 Jun 2005 Fixed
Description
If a proxy table contained a column declared with DEFAULT AUTOINCREMENT, and an insert into that table did not contain a value for that column, the server may have crashed. For this to have happened, one of the column values in the insert statement had to be an expression or function call that needed to be evaluated. This has been fixed.
Workaround Description
 Problem does not exist using ASA 9.0.2.3124



CR:392227
CR Number:   392227
Product Name:   UltraLite
Product Component:   Analyser Java Classes
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3131 31 May 2005 Fixed
06 Jun 2005 Not a Bug
Description
Certain CASE expressions would have caused a 'feature-not-implemented' error to be generated by UltraLite Dynamic SQL. IF expressions were mistakenly omitted from the expression-matching code. This has been corrected.



CR:392276
CR Number:   392276
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   AIX
Original Version:   7.0.4
Fixed Version Build Resolution Date Closure Code (If Appropriate)
16 Jun 2005 Third Party Problem
Description
SQL log dates skip by 3:28 short of 25 days



CR:392294
CR Number:   392294
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Windows CE 2.0
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1719 02 Jun 2005 Fixed
9.0.2 3131 02 Jun 2005 Fixed
9.0.1 2030 02 Jun 2005 Fixed
8.0.3 5260 02 Jun 2005 Fixed
Description
If the server was already stopped, the AsaClient would have thrown an exception when closing the connection. The AsaClient was checking the error code when closing the connection and threw the exception if the error code is not -85 Communication error. The AsaClient now ignores error whem closing the connection.



CR:392323
CR Number:   392323
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1719 01 Jun 2005 Fixed
9.0.2 3131 01 Jun 2005 Fixed
Description
If the QAnywhere Agent was run with the command line option -si to initialize the message store database, and a message store ID was specified with the option -id, the message store ID was not set until the QAnywhere Agent was invoked without the -si option.



This problem would have been noticed in the following scenario:

When the QAnywhere Agent was starting up while messages were being put into the message store, the QAnywhere Agent would have failed to start with the error:



E. 05/27 09:12:50. InternalError: User 'QA_USER' has the row in 'ml_qa_repository_content_client' locked



As well the problem would have occurred when the QAnywhere Agent was used to initialize a message store with store ID 'xyz' (-si -id xyz), and then the QAnywhere Agent was started with a different store ID (-id abc), the following error should have been given, but was not:



E. 05/31 12:05:29. QAnywhere Agent cannot be started with a client message store ID different than xyz with this message store.



This has been fixed so that now the message store ID is set, if it is specified, when the message store is initialized.



CR:392421
CR Number:   392421
Product Name:   MobiLink
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1718 01 Jun 2005 Fixed
01 Jun 2005 Not a Bug
9.0.2 3130 01 Jun 2005 Fixed
Description
The IP tracker for the Listener utility may have produced repeated error messages every second. They are now reported with an exponential increasing delay with this change.



CR:392468
CR Number:   392468
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   5.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.1 3476 09 Apr 2007 Fixed
Description
When an arithmetic operation generated an overflow error, the error message did not show the correct value if that value did not fit into the destination.

For example:

select 100000 * 100000

Previously, this returned an error message "Value 1410065408 out of range for destination". Now, the error message is the following: "Value 100000 * 100000 out of range for destination".



Further, after this change string values included in conversion or overflow error messages are enclosed in single quotes. If the string is truncated, an ellipsis (...) is used to indicate this.

For example:

select cast( '0123456789012345678901234567890123456789' as int )

would have given the error message: "Value 01234567890123456789012345678 out of range for destination" Now the error message is: "Value '0123456789012345678901234567890123...' out of range for destination". Similarly, an ellipsis is now used when printing binary values.



When NCHAR values were printed for error messages or plain text (explanation(), plan(), or graphical_plan()), the text was not represented correctly.

For example:

select cast( unistr('\u00df') as int )

would have caused the error message: "Cannot convert '脽' to a int". The text in the message was the result of cast( cast( unistr('\u00df') as binary ) as char). Now, the error is: "Cannot convert '' to a int". The error message is now formed by converting from NCHAR collation to the database CHAR collation. If there are characters that can not be represented in the CHAR collation, they are replaced with substitution characters.



Also, when certain values were included in the result of a graphical_plan(), they could have generated an invalid XML result. For example, the following query previously generated an 'Invalid plan' error: select 'a\x1ab'. Characters that contain a byte value < 0x20 are now escaped and printed as '\xHH' where HH is the two-digit hex code for the byte. For example, in the "Select list" section of the graphical plan, the escaped text is now shown.



CR:392470
CR Number:   392470
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   5.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.1 3867 12 Feb 2007 Fixed
Description
When the string_rtruncation option is on, the error "Right truncation of string data" (SQLCODE -638, SQLSTATE 22001) was not being given when converting from numbers to binary. This has been corrected so that when the option is on, this error is now given in the following cases:

- REAL values converted to BINARY(3) or shorter

- DOUBLE values converted to BINARY(3) or shorter

- exact numerics converted to BINARY where a leading byte is truncated and the byte value is not zero



When converting exact numerics (bit, tinyint, smallint, unsigned smallint, int, unsigned int, bigint, unsigned bigint, numeric) to binary, the numeric value is first converted to one of the following types: INT, UNSIGNED INT, BIGINT, UNSIGNED BIGINT. If the target binary is smaller than 4 bytes for INT/UNSIGNED INT or smaller than 8 bytes for BIGINT/UNSIGNED BIGINT, then the most significant bytes of the value are truncated. For example:

SELECT CAST( 0x12345678 AS INT ) ival,

CAST( ival AS BINARY(3) ) bval

returns 0x345678 for bval. After this change, an error is raised if one of the truncated bytes is non-zero and the string_rtruncation option is on.



Further, when converting a too-long binary string to a number, errors are generated as follows:

- for REAL, if the binary string is not 4 bytes long

- for DOUBLE, if the binary string is not 8 bytes long

- for BIGINT/UNSIGNED BIGINT, if the binary string is longer than 8 bytes and a non-zero byte in the prefix would be truncated

- for INT/UNSIGNED INT, if the binary string is longer than 4 bytes and a non-zero byte in the prefix would be truncated



For example, the following generate errors:

CAST( 0x123456 AS REAL )

CAST( 0x1234567800 AS REAL )

CAST( 0x1234567800 AS INT )

but, the following do not generate errors:

CAST( 0x12345678 AS REAL )

CAST( 0x0012345678 AS INT )

CAST( 0x0000000000123456789abcdef0 as UNSIGNED BIGINT )



CR:392484
CR Number:   392484
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1748 29 Jun 2005 Fixed
9.0.2 3143 29 Jun 2005 Fixed
9.0.1 2040 29 Jun 2005 Fixed
8.0.3 5272 29 Jun 2005 Fixed
Description
If an application using either the ASA ODBC driver, or the iAnywhere JDBC driver, fetched a set of rows in which one of the rows encountered a data exception, then it was likely that the error would not have been reported. Note that Prefetch must have been on for the problem to occur. This problem has now been fixed, but in addition to this change, the changes to the server for Engineering Case 395662 are also required



CR:392500
CR Number:   392500
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1720 02 Jun 2005 Fixed
9.0.2 3131 02 Jun 2005 Fixed
9.0.1 2032 02 Jun 2005 Fixed
Description
When the server was run on Unix systems, if the public.string_rtruncation option was on when a database started and select length( property( 'CompactPlatformVer' ) ) was more than 40 characters, user options may not have been set correctly, and other incorrect behaviour could have occurred. This has been corrected.



Windows platforms were not affected, since the length returned for 'CompactPlatformVer' is much less than 40 characters.



CR:392502
CR Number:   392502
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1720 03 Jun 2005 Fixed
9.0.2 3131 03 Jun 2005 Fixed
9.0.1 2032 03 Jun 2005 Fixed
8.0.3 5261 03 Jun 2005 Fixed
Description
If a Java application closed an SAConnection object, and then subsequently called the 'isClosed' method on the same object, an exception would have been thrown erroneously. This has been fixed.



CR:392504
CR Number:   392504
Product Name:   UltraLite
Product Component:   UltraLite for M-Business Anywhere
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1725 07 Jun 2005 Fixed
9.0.2 3133 07 Jun 2005 Fixed
9.0.1 2032 07 Jun 2005 Fixed
Description
If the method PreparedStatement.executeStatement(), as well as several others, returned a non-zero SQLCode, an exception would have been thrown. This was incorrect behaviour as positive SQLCode values are warnings. The problem has been fixed to only throw exception when the SQLCode is less than zero.



CR:392640
CR Number:   392640
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1823 12 Sep 2005 Fixed
9.0.2 3178 12 Sep 2005 Fixed
Description
When using a keyset-driven cursor over a query containing an unflattened derived table that contains a subselect, the wrong answer could have been returned for the subselect.



For example, the following query could cause the above problem:

select *

from (

select t1.a , (select t2.a from t2 where t2.b =t1.a) as x

from t1

order by t1.a

) v2



This error has been fixed. As a consequence, the results for unflattened derived tables are now Insensitive in Keyset-driven cursors.



CR:392668
CR Number:   392668
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1722 07 Jun 2005 Fixed
9.0.2 3132 07 Jun 2005 Fixed
9.0.1 2032 07 Jun 2005 Fixed
8.0.3 5262 07 Jun 2005 Fixed
Description
If an application used the Remote Data Access feature to perform an INSERT from SELECT in 'no passthru' mode, and the insert received an error, it was possible for the server to have crashed. This problem has now been fixed.



CR:393022
CR Number:   393022
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1726 07 Jun 2005 Fixed
9.0.2 3134 07 Jun 2005 Fixed
9.0.1 2034 07 Jun 2005 Fixed
8.0.3 5263 07 Jun 2005 Fixed
Description
If an expression contained a reference to a proxy table, the server would have crashed if the expression was used:

- in a MESSAGE or PRINT statement

- in a RETURN statement of a function or procedure

- in a time/delay expression in a WAITFOR statement

- in an offset expression of a FETCH statement

This has been fixed so that the server now correctly returns the error "OMNI cannot handle expressions involving remote tables inside stored procedures"



CR:393093
CR Number:   393093
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1834 23 Sep 2005 Fixed
9.0.2 3194 23 Sep 2005 Fixed
9.0.1 2071 23 Sep 2005 Fixed
8.0.3 5302 23 Sep 2005 Fixed
Description
If executing an SQL Remote PASSTHROUGH statement caused a trigger to fire, the statement would not have been send to the remote server. The problem did not occur for PASSTHROUGH ONLY statements, since the statement did not execute locally, no triggers were fired. This has been fixed.



CR:393270
CR Number:   393270
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1727 10 Jun 2005 Fixed
9.0.2 3135 10 Jun 2005 Fixed
8.0.3 5311 12 Oct 2005 Fixed
Description
If a server was running with a ServerName longer than 32 bytes, attempts to connect to it using SPX would have failed. This has now been fixed so that only the first 32 bytes are relevant for SPX.



CR:393429
CR Number:   393429
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1728 09 Jun 2005 Fixed
9.0.2 3135 09 Jun 2005 Fixed
Description
If a remote QAnywhere client and a QAnywhere Connector shared the same name, it was possible for both to receive the same message. While it is unlikely that such a situation would set up purposefully, now with this fix, a remote QAnywhere client and a QAnywhere Connector sharing the same name will nolonger receive the same message.



CR:393434
CR Number:   393434
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1728 09 Jun 2005 Fixed
9.0.2 3135 09 Jun 2005 Fixed
9.0.1 2032 09 Jun 2005 Fixed
Description
On Windows platforms, when the Transaction Log, Log Translation or Backup utilities are executed on a database with auditing enabled, a file called "<db filename>.alg" is created or updated. A record is added containing the date and time of execution, the Windows user name, and the name of the utility executed. If this file already existed, but the new record could not be written because the disk was full, the utility would have ignored the error and continued. This has been fixed, now if the audit record cannot be created, the utility fails. A message is also displayed to indicate that the audit record could not be created.



CR:393489
CR Number:   393489
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1728 14 Jun 2005 Fixed
9.0.2 3135 14 Jun 2005 Fixed
Description
A message that should have expired would sometimes not expire on the client. If the message was part of a previous failure to transmit messages to the QAnywhere server (for example, network connectivity was lost) before the message was scheduled to expire, then the message would not have expired. Subsequently, when connectivity and message transmission with the QAnywhere server was resumed, the message that was scheduled to expire would have been transmitted to the server. Likely, the server would expire the message at this stage, however, it was possible that the message would be transmitted onwards to the target client before the server had a chance to expire it.



QAnywhere makes no guarantees that a message scheduled for expiration will not be delivered, however, QAnywhere makes a best attempt to expire messages as they are scheduled. In this case, QAnywhere missed an opportunity to expire messages. This has been fixed so now, if a message was part of a previous failure to transmit messages, that will not stop the subsequent expiring of the message.



CR:393568
CR Number:   393568
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 15 Nov 2005 Fixed
9.0.2 3139 17 Jun 2005 Fixed
Description
If the command line option -zl "remember last statement for each connection" was used, and the database option Log_deadlocks was 'on', the server could have crashed if a deadlock occurred. This has been fixed.



CR:393574
CR Number:   393574
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1728 10 Jun 2005 Fixed
9.0.2 3135 10 Jun 2005 Fixed
Description
If a 'root' web service was created with URL ON or URL ELEMENTS, the service would not have been selected to process a request when it should have been selected. This has been fixed. The way that the server now determines which service is to be used to process an HTTP[S] request is to do the following:

- if the request is for '/' then choose the 'root' service if it is defined

- first check for a service name for the entire URL

- interatively chop off one level from the URL at a time until a defined service is found with URL ON|ELEMENTS setting.

- if no service is found using the above, then select the 'root' service if it is defined with URL ON|ELEMENTS



For example:

If the request is for /a/b/c then the server will first look for a service named 'a/b/c', then 'a/b', and finally 'a'. With this fix, the engine will now also look for the 'root' service.

The latter three (a/b, a, and root) must all have been defined with URL ON or URL elements in order to be chosen in this situation.



Note that by defining a root service with URL ON|ELEMENTS, this service becomes a 'catch-all' service that will be used to process all requests (for the selected database) that do not match any other defined service.



CR:393587
CR Number:   393587
Product Name:   SQL Anywhere
Product Component:   ODBC Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1732 14 Jun 2005 Fixed
9.0.2 3136 14 Jun 2005 Fixed
9.0.1 2033 14 Jun 2005 Fixed
8.0.3 5266 14 Jun 2005 Fixed
Description
The ODBC driver was not returning some reserved words for SQLGetInfo( SQL_KEYWORDS ). The mssing reserved words were:



character

dec

options

proc

reference

subtrans



These words are synonyms for other reserved words, and have now been added to the list returned by SQLGetInfo( SQL_KEYWORDS ).



CR:393604
CR Number:   393604
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1735 17 Jun 2005 Fixed
9.0.2 3139 17 Jun 2005 Fixed
9.0.1 2034 17 Jun 2005 Fixed
8.0.3 5267 17 Jun 2005 Fixed
Description
If an application used ResultSet.relative(0) to attempt to refresh a row, then the iAnywhere JDBC Driver would usually have given an "Invalid cursor position" or a "Not on row" error. It should be noted that the "Invalid cursor position" error is valid since that error is usually given by the underlying ODBC driver when the Statement or PreparedStatement that generated the ResultSet is of type TYPE_FORWARD_ONLY. However, when the Statement or PreparedStatment is scrollable, then the iAnywhere JDBC Driver should refresh the row rather than give the "Not on row" error. This problem has been fixed.



CR:393633
CR Number:   393633
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1734 16 Jun 2005 Fixed
9.0.2 3138 16 Jun 2005 Fixed
9.0.1 2034 16 Jun 2005 Fixed
Description
On Windows CE devices, the MobiLink ASA client, (as well as SQL Remote for ASA) may not have renamed the output file specified by the -o <filename> option, even when the size of the output file exceeded the size specified by the -os <size> option. This would have occurred if the output file already existed before the application started. This has been corrected.



CR:393745
CR Number:   393745
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1744 24 Jun 2005 Fixed
9.0.2 3142 24 Jun 2005 Fixed
9.0.1 2038 24 Jun 2005 Fixed
8.0.3 5270 24 Jun 2005 Fixed
Description
When running the reload.sql generated by the Unload utility, executing LOAD STATISTICS statements may have failed. This would have occurred if the column was of type binary or long binary, and the source database and the target database had different collations

(e.g. one had a single byte collation and the other one a multi-byte collation).

This has been fixed so that now the statistics of binary columns are only loaded if both databases have the same collation.



CR:393746
CR Number:   393746
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1733 15 Jun 2005 Fixed
9.0.2 3138 15 Jun 2005 Fixed
9.0.1 2033 15 Jun 2005 Fixed
8.0.3 5266 15 Jun 2005 Fixed
Description
If a space did not follow the method name in the EXTERNAL NAME clause of the wrapper function to a Java method, calls to the function would have resulted in a procedure not found error.



For example:

a wrapper function definition of

CREATE FUNCTION MyMeth (IN arg1 INT, IN arg2 varchar(255),IN arg3 INT )

RETURNS Int

EXTERNAL NAME 'TestClass.MyMethod(ILjava/lang/String;I)I'

LANGUAGE JAVA;



would have resulted in the error

Procedure 'TestClass.MyMethod(ILjava/lang/stringI)I' not found.



where as

EXTERNAL NAME 'TestClass.MyMethod (ILjava/lang/String;I)I'



would have worked. This has been fixed so that a space is no longer required between the method name and the left parenthesis.



CR:393776
CR Number:   393776
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 2037 21 Jun 2005 Fixed
Description
The reload of a database using the reload.sql generated by the Unload utility would have failed when executing a LOAD STATISTICS statement. This would have occurred if the column specifed was of type char, varchar or binary, and its columns size had changed from less then 8 byte to a size of 8 bytes or more, and it had column statistics generated before altering the column,s size. This has been fixed. The server now drops columns statistics if the column size changes.
Workaround Description
 DROP and reCREATE the statistics on the altered column.



CR:393809
CR Number:   393809
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1732 14 Jun 2005 Fixed
9.0.2 3136 14 Jun 2005 Fixed
Description
In a QAnywhere .NET application running on Windows CE, if a message listener threw an exception, or a QAException was thrown by the QAnywhere library, asynchronous message receiving would have stopped. This has been fixed. Now a message box with the exception details is displayed and asynchronous message receiving continues after clicking OK. To avoid the message box, the application's message listener should handle any exceptions that occur and return normally to the QAnywhere library.



CR:393813
CR Number:   393813
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3138 16 Jun 2005 Fixed
10.0.0 1733 21 Jun 2005 Fixed
Description
A number of problems with the QAnywhere GUI admin tool have been fixed.



-Delete rules specified and "Save"'ed using the "Server Delete Rules" tab now persist over a restart of the QAnywhere server.

-When creating a message using the "New Message" dialog, when specifying a custom boolean typed property on the "Properties" tab, only the value "0" could be entered to represent the false value. This was confusing, as the value was displayed as "false". Now the value "0" or "false" can be entered to represent the false value.

-When creating a message using the "New Message" dialog the "Content" tab now allows the compression level that should be applied to the content to be specified.

-When viewing a message in the right-hand panel using the "Content" tab, if the message was compressed, then the content would have been displayed rendering the compressed data as characters. Content is now displayed correctly even if the data is compressed.

-If a QAnywhere connector took more than 30 seconds when started using the "Start" menu item, the connector state would not have been updated on the right-hand summary panel. The latency has been changed to 60 seconds, and a new "Refresh" menu item has been added to allow refreshing of the current connector state at any time.

-Messages created and sent using the "Send message..." menu item would not trigger synchronization. Hence messages sent in this way would only be transmitted to the server when another synchronization trigger occurred. Now, sending such a message will act as a synchronization trigger. In fact, an additional menu item "Trigger message transmission" has been added to trigger message synchronization.

-The clients listed in the Clients tree view was only including clients that had sync'ed sometime in the past. If the client had messages destined for it, but had never sync'ed, it was not showing up in the tree view. The tree view has been fixed to include clients that have messages destined for it but have never sync'ed.

-The right-hand summary panel for a client displayed the client name on the far right. This formatting problem has been fixed.



CR:393817
CR Number:   393817
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1732 14 Jun 2005 Fixed
9.0.2 3136 14 Jun 2005 Fixed
9.0.1 2051 29 Jul 2005 Fixed
Description
If a QAnywhere application had received a message with a QATransactionalManager, but had not committed or rolled back the transaction, and it then used another QAManager to send a response to the message it had received, it was very likely that the call to PutMessage would have blocked in a database deadlock situation. This has been fixed so the PutMessage will now queue the message without blocking.



CR:393923
CR Number:   393923
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1733 14 Jun 2005 Fixed
9.0.2 3137 14 Jun 2005 Fixed
9.0.1 2033 14 Jun 2005 Fixed
Description
If a procedure or function called a Java method, and the Java code used the current connection to run a SQL statement that called a procedure or function that also called a java method, the server would have crashed if the two procedures or functions had a return statement.



CR:393935
CR Number:   393935
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1732 14 Jun 2005 Fixed
9.0.2 3138 16 Jun 2005 Fixed
Description
Attempting to register a schedule that contained the BETWEEN or ON { days of the week } clauses would have failed, resulting in an "unexpected token" exception to be thrown.



Also, attempting to register a schedule containing a time between 12:00:00 and 12:59:59, would have resulted in the 12 being interpreted as 00. For example, START TIME '12:30:00' would have been interpreted as START TIME '00:30:00'.



Both of these problems have now been corrected.



CR:393970
CR Number:   393970
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3138 14 Jun 2005 Fixed
9.0.1 2033 14 Jun 2005 Fixed
9.0.2 3138 17 Jun 2005 DEFER
Description
Reloading state tracking information into an ASA database for MobiLink synchronization, would have cause subsequent restartable downloads, or file-based downloads, to fail. Five new columns were added to sys.syssync in version 9.0.0, but only 2 columns were being unloaded. This has been fix to now unload the missed columns.



CR:394136
CR Number:   394136
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1744 23 Jun 2005 Fixed
9.0.2 3141 23 Jun 2005 Fixed
9.0.1 2037 23 Jun 2005 Fixed
8.0.3 5270 23 Jun 2005 Fixed
Description
If a table had been created with the PCTFREE clause (table page percent free), the unload or reload of that table would not have used this PCTFREE in the CREATE TABLE statement for the new database. This has been fixed.



CR:394220
CR Number:   394220
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1734 17 Jun 2005 Fixed
9.0.2 3138 17 Jun 2005 Fixed
Description
A message transmission rule with an equality expression that had the right-hand operand missing (eg. a= ) would have caused the QAnywhere Agent to crash when parsing the transmission rule file. This has been fixed so that a syntax error is now flagged.



CR:394297
CR Number:   394297
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1831 19 Sep 2005 Fixed
9.0.2 3191 19 Sep 2005 Fixed
9.0.1 2071 19 Sep 2005 Fixed
8.0.3 5301 19 Sep 2005 Fixed
Description
Attempting to execute a statement like INSERT INTO v SELECT ..., where v is a view on a proxy table, would have caused the server to crash. The problem has now been fixed.



CR:394331
CR Number:   394331
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.3 5272 06 Jul 2005 Fixed
9.0.1 2044 06 Jul 2005 Fixed
9.0.2 3147 06 Jul 2005 Fixed
5272 28 Nov 2005 Not a Bug
Description
When scanning the transaction log to determine which changes need to be uploaded, if dbmlsync first found a DML statement on a table (for example, an insert), and then later found a DDL statement on the same table (for example, an ALTER TABLE), dbmlsync should have failed and reported an error similar to "Table 't1' has been altered outside of synchronization at log offset X". If the table in question (or it's owner) had a name that required double quotes around it in the log file (such as reserved words or numeric names such as "42"), then dbmlsync would not have detected that the schema of the table had changed and would not have reported the error. Also, if the ALTER TABLE statement that was executed included a comment either before the ALTER TABLE statement or between "ALTER TABLE" and the table name, dbmlsync would also have failed to detect that the schema of the table had changed and would not have reported the error. Dbmlsync will now report the error "Table 't1' has been altered outside of synchronization at log offset X" when either of these situations arise.



CR:394558
CR Number:   394558
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1736 21 Jun 2005 Fixed
9.0.2 3139 21 Jun 2005 Fixed
Description
A window function can not be referred to, either directly or indirectly, in the WHERE clause of the block where the window is computed. However, if a window function was used in a complex expression in the WHERE clause, the server would have crashed rather than give error -964 as required. This has been fixed.



CR:394668
CR Number:   394668
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1739 22 Jun 2005 Fixed
9.0.2 3140 22 Jun 2005 Fixed
9.0.1 2037 22 Jun 2005 Fixed
8.0.3 5269 22 Jun 2005 Fixed
8.0.2 4537 22 Jun 2005 Fixed
Description
The ON EXISTING UPDATE clause of the INSERT statement can be used to update rows that already exist in the database. By default, columns with default values in existing rows should be left unmodified unless their values are explicitly changed by the INSERT statement. Under some circumstances, the server could have modified these columns incorrectly. This problem has been resolved.



As a simplified example consider the following:



drop table a;



CREATE TABLE a (

a1 INTEGER NOT NULL,

a2 INTEGER NOT NULL,

a3 INTEGER NOT NULL DEFAULT AUTOINCREMENT,

a4 INTEGER NOT NULL,

PRIMARY KEY ( a1, a2 ) );



INSERT INTO a VALUES( 1, 1, 1, 1);

INSERT INTO a VALUES( 2, 1, 2, 2);

commit;



INSERT a ON EXISTING UPDATE WITH AUTO NAME

SELECT 1 AS a1, 99 AS a2, 11 AS a4

union all

SELECT 2 AS a1, 1 AS a2, 88 AS a4;





The INSERT statement should



1. Insert a new rows into table a with PKEY <1,99>, and

2. Update the value of a.a4 to 88 in the row with PKEY <2,1>. The default column a.a3 in this row should now remain unchanged.



CR:394716
CR Number:   394716
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1739 23 Jun 2005 Fixed
9.0.2 3140 23 Jun 2005 Fixed
Description
A message synchronization may not have completed, and appeared to be hung. Disconnecting the client and re-attempting the synchronization would have had no effect, as the server continued to try to complete the previous synchronization and disallowed any new synchronizations from the client. Only re-starting the QAnywhere server would have allowed subsequent synchronizations from the client. This generally happened only when the server was under load. The problem has been fixed.



CR:394722
CR Number:   394722
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1739 21 Jun 2005 Fixed
9.0.2 3140 21 Jun 2005 Fixed
9.0.1 2036 21 Jun 2005 Fixed
8.0.3 5269 21 Jun 2005 Fixed
Description
If an application retrieved the ResultSetMetaData and then queried the datatype of an unsigned smallint, unsigned int or unsigned bigint column, the datatype returned would have been incorrect. This problem has now been fixed so that an application can properly determine the unsigned column type using the ResultSet.getColumnType() and ResultSet.isSigned() methods.



CR:394832
CR Number:   394832
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3141 21 Jun 2005 Fixed
Description
A QAnywhere client would not have been able to transmit messages to the server if all the following apply



- The last time the client transmitted messages with the server it used the "scheduled" policy (using the qaagent command line argument -policy scheduled)

- The client message store had subsequently been deleted and re-created and then the client agent was started with the automatic policy (using the qaagent command argument -policy automatic).



This has been fixed. To work-around the problem, start the client agent with the "scheduled" policy. After a successful message transmission, the client can then be re-started with whatever policy is desired. The key is that after a client message store has been deleted and re-created, the first time the client agent should be started with the last policy it previously synchronized under.



CR:394857
CR Number:   394857
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
11.0.0 1415 14 Jul 2008 Fixed
10.0.1 3721 04 Jul 2008 Fixed
9.0.2 3689 04 Jul 2008 Fixed
11.0.1 1874 13 Nov 2008 Fixed
Description
Not all OLE DB schema rowsets are supported, however the most common and useful rowsets are supported. 燭wo OLE DB schema rowsets that were not supported have now been implemented.



CATALOGS: The CATALOGS rowset identifies the physical attributes associated with catalogs accessible from the DBMS. SQL Anywhere does not support the notion of catalogs as some other database systems do. With that in mind, the SQL Anywhere OLE DB provider will return a result set for CATALOGS containing all currently started databases. The following is an example.



CATALOG_NAME DESCRIPTION

AnotherSample c:\SQLAnywhere10\Samples\sample.db

demo c:\SQLAnywhere10\Samples\demo.db



The CATALOG_NAME column contains the database name. 燭he DESCRIPTION column contains the physical location of the database on the database server computer.



SCHEMATA: The SCHEMATA rowset identifies the schemas that are owned by a given user. 燭he following is an example of a SCHEMATA rowset 爎eturned by the SQL Anywhere OLE DB provider.



CATALOG_NAME SCHEMA_NAME SCHEMA_OWNER DEFAULT_CHARACTER_SET_CATALOG DEFAULT_CHARACTER_SET_SCHEMA DEFAULT_CHARACTER_SET_NAME

demo dbo dbo demo SYS windows-1252

demo GROUPO GROUPO demo SYS windows-1252

demo ml_server ml_server demo SYS windows-1252

demo rs_systabgroup rs_systabgroup demo SYS windows-1252

demo SYS SYS demo SYS windows-1252



The CATALOG_NAME column contains the name of the database to which you are currently connected. The SCHEMA_NAME and SCHEMA_OWNER columns contain identical values 爁or SQL Anywhere databases. The DEFAULT_CHARACTER_SET_CATALOG column always contains the name of the database to which you are currently connected since character sets are associated with databases. The DEFAULT_CHARACTER_SET_SCHEMA column is arbitrarily set to SYS since the character set in use for the database is not owned by anyone. The DEFAULT_CHARACTER_SET_NAME column contains the value of the "CharSet" database property



Note, to get this new functionality in existing databases, do the following:



9.0.2 - upgrade the databases by loading and running Scripts\oleschem.sql using Interactive SQL.



10.0.1 - run dbupgrad on each database, or connect to each database and run ALTER DATABASE UPGRADE. As an alternative, the databases can be upgraded by running Scripts\oleschem.sql using Interactive SQL.



11.0.0 - run dbupgrad on each database, or connect to each database and run ALTER DATABASE UPGRADE.



CR:394896
CR Number:   394896
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1741 23 Jun 2005 Fixed
9.0.2 3141 23 Jun 2005 Fixed
Description
If the QAnywhere Agent was started with a window class name (using the -wc option), that was the same as the message store ID (the -id option), it would not have shutdown properly with either the Shutdown button on the UI, or with qastop. This has been fixed.



CR:395054
CR Number:   395054
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1750 29 Jun 2005 Fixed
9.0.2 3144 29 Jun 2005 Fixed
9.0.1 2041 29 Jun 2005 Fixed
8.0.3 5272 29 Jun 2005 Fixed
Description
If the database option Wait_for_commit was set to ON while executing a LOAD TABLE statement, and it failed with a referential integrity error, then the database could have been left in an inconsistent or corrupt state. This has been fixed.



Some of the errors that might be characteristic of this problem are:

- Assertion 200602 - Incorrect page count after deleting pages from table 'table_name' in database 'database_name' - could occur during TRUNCATE TABLE or DROP TABLE.

- Database validation could report that an index has inaccurate leaf page count statistics.

- Database validation could report that a foreign key is invalid and that some primary key values are missing.

- Database validation could report that the rowcount in SYSTABLE is incorrect.

- Inconsistent row counts might be observed when querying the table sequentially versus via an index.



CR:395055
CR Number:   395055
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1743 23 Jun 2005 Fixed
Description
The server could have deadlocked when sending or receiving large strings or data on a heavily loaded system. This was more likely to occur when the number of active requests was larger than the number of tasks that were servicing requests (ie -gn option ). This has been fixed by terminating the connection, which had been blocked sending or receiving for several seconds, and the maximum number of active requests (-gn) were all blocked. Now in this case the following message is displayed: "All threads were blocked when waiting to send or receive. A connection has been terminated. Increasing -gn may prevent this in the future."



CR:395071
CR Number:   395071
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Windows CE 2.0
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.3 5272 07 Jul 2005 Fixed
Description
After installing the 8.0.3 build 5260 EBF for CE, it did not deploy to the device at the end of the install, even if that option is selected. This has been corrected.



A workaround is to select:

"Deploy SQL Anywhere for Windows CE" from the Start Menu under: SQL Anywhere 8



CR:395207
CR Number:   395207
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   4.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.1 3485 27 Apr 2007 Fixed
Description
The ALTER TABLE statement can be used to change the nullability of a column. If an attempt was made to change a column from "nulls not allowed" to "null allowed" in conjunction with specifying the datatype of the column, as in the following example:



ALTER TABLE t ALTER c1 int NULL



The server would have ignored the NULL, and left the column as "null not allowed". This has been corrected so that the server will now change the column specification to "null allowed" in this case. A work around is to not combine NULL with the datatype for the column as in:



ALTER TABLE t ALTER c1 NULL



CR:395238
CR Number:   395238
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3141 23 Jun 2005 Fixed
Description
The changes for Engineering case 384294 had the side-effect of preventing the "Continue" action from working properly after Interactive SQL failed to execute a statement. This has now been corrected.



CR:395299
CR Number:   395299
Product Name:   UltraLite
Product Component:   MobileBuilder plugin
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1744 24 Jun 2005 Fixed
9.0.2 3142 24 Jun 2005 Fixed
9.0.1 2039 24 Jun 2005 Fixed
06 Jul 2005 Presently Not Targeted For Any Future Release Of This Product
Description
When using UltraLite Dynamic SQL it was possible to create incorrect foreign keys when there were more than two unnamed foreign keys in a table. This has been fixed.



CR:395313
CR Number:   395313
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1745 24 Jun 2005 Fixed
9.0.2 3142 24 Jun 2005 Fixed
9.0.1 2039 24 Jun 2005 Fixed
06 Jul 2005 Presently Not Targeted For Any Future Release Of This Product
Description
When using UltraLite Dynamic SQL the result of the UPPER() function was erroneously being treated as 256 characters long. This has been corrected.



CR:395662
CR Number:   395662
Product Name:   SQL Anywhere
Product Component:   DBLIB Client Library
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1748 27 Jun 2005 Fixed
9.0.2 3143 27 Jun 2005 Fixed
9.0.1 2040 27 Jun 2005 Fixed
8.0.3 5272 27 Jun 2005 Fixed
Description
An Embedded SQL or ODBC application, which used wide fetches or ODBC multi-row rowset fetches on a cursor which had prefetched enabled, could have returned a row with invalid data or data from a previous row when an error should have been returned instead. An example of a row error which could have caused this type of behaviour is the "Subquery cannot return more than one row" error. Also, for Embedded SQL applications, SQLCOUNT was not being set correctly to the number of rows fetched on an error. These problems have been fixed so that the error is correctly returned, and SQLCOUNT is set correctly on errors.



CR:395667
CR Number:   395667
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   7.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1748 28 Jun 2005 Fixed
9.0.2 3143 28 Jun 2005 Fixed
9.0.1 2040 28 Jun 2005 Fixed
Description
When attempting to export multiple result sets at the same time, Interactive SQL could have failed with and internal error, or the resulting files could have been empty. This has now been fixed.



This problem did not occur if the "Show multiple result sets" open was turned OFF (which is the default), nor did the problem occur if there was only one result set to export.



A crash was observed if the result sets were exported using the FIXED file format. Using other file formats typically resulted in the first result set being exported correctly, while the files for the subsequent result sets would be empty.



CR:395908
CR Number:   395908
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1751 04 Jul 2005 Fixed
9.0.2 3145 04 Jul 2005 Fixed
9.0.1 2041 04 Jul 2005 Fixed
8.0.3 5272 04 Jul 2005 Fixed
Description
If an Open Client or jConnect application described a column that was of type Varchar(n) or Varbinary(n), the size reported for the column would have been 32768 instead of n, if n was greater than 255. This problem has now been fixed.



CR:396058
CR Number:   396058
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1755 04 Jul 2005 Fixed
9.0.2 3146 04 Jul 2005 Fixed
9.0.1 2043 04 Jul 2005 Fixed
8.0.3 5272 04 Jul 2005 Fixed
Description
Inserting a string longer than 64K bytes into a column of a proxy table, would have caused the local server to crash. This has been fixed.



CR:396173
CR Number:   396173
Product Name:   MobiLink
Product Component:   QAnywhere client
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1749 30 Jun 2005 Fixed
9.0.2 3144 30 Jun 2005 Fixed
Description
If the QAnywhere Agent was started with a failover server defined (ie. there was more than 1 "-x" option on the command line), and the device lost network connectivity to all servers, and then the device recovered network connectivity to at least one of the servers, queued messages would not have been transferred to a sever. This has been fixed so that now, when network connectivity is recovered, queued messages will be transferred to the primary server (if it is reachable) or an alternate server, as appropriate.



CR:396236
CR Number:   396236
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1758 07 Jul 2005 Fixed
9.0.2 3148 07 Jul 2005 Fixed
9.0.1 2044 07 Jul 2005 Fixed
Description
After shutting down Sybase Central or Interactive SQL, directories could have been locked, making it impossible to delete or rename them. This problem only occurred on Windows platforms, when the "Fast launcher" option was enabled, and the file browser dialog was used to open or save a file. The native Windows file dialog changes the current directory. A changes has been added to restore the directory after the dialog is closed.
Workaround Description
 Kill scjview.exe process or disable Fast Launcher in Sybase Central.



CR:396463
CR Number:   396463
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1755 05 Jul 2005 Fixed
9.0.2 3146 05 Jul 2005 Fixed
Description
DBASE3 or FOXPRO files, created by saving a result set, could have appeared empty when loaded by FoxPro. The problem was only seen when reading the file with FoxPro, but not with Excel, and only when all of the following were true:

- The result set contained fewer rows than the configured maximum number of rows to fetch

- All column data was shorter than the configured truncation length.

- The "Show multiple result sets" option was OFF.



This has been fixed, which also solves the following related problems:



- Under the conditions listed above, DATE columns were written in character fields in the .DBF file rather than using dBase/FoxPro "Date" fields.

- Warning messages about long column names being truncated would be displayed twice. Now they are displayed only once.



CR:396464
CR Number:   396464
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3145 05 Jul 2005 Fixed
9.0.1 2041 05 Jul 2005 Fixed
Description
After having established an HTTPS connection, the server may have lost data when receiving a large request. Data loss may have been experienced intermittently when requests were in the range of 10K bytes or greater. Data loss may have occurred either receiving POST or GET requests. This has been fixed.



CR:396571
CR Number:   396571
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1757 06 Jul 2005 Fixed
9.0.2 3147 06 Jul 2005 Fixed
9.0.1 2044 06 Jul 2005 Fixed
Description
Calling the OPENXML() function with an xpath expression that was NULL, would have caused the server to crash. This has been fixed. Note, this did not happen to xpath expressions in the WITH clause.



CR:396584
CR Number:   396584
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1763 12 Jul 2005 Fixed
9.0.2 3153 12 Jul 2005 Fixed
9.0.1 2046 12 Jul 2005 Fixed
8.0.3 5274 12 Jul 2005 Fixed
Description
If a query referenced a proxy table and contained an ORDER BY clause, and an ON condition in the FROM clause, it may have returned incorrect results or an error. This has been fixed.



CR:396681
CR Number:   396681
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1772 21 Jul 2005 Fixed
9.0.2 3158 21 Jul 2005 Fixed
9.0.1 2050 21 Jul 2005 Fixed
Description
When the Unload utility was run with the -ar command line option ("rebuild and replace database"), it was possible that the transitional log file (or mirror log file) that was used during the rebuild process would not have been deleted. For example, if the transaction log name was asademo.log, then an extra file called asademo.logR would have remained after the rebuild process. The rebuild would have been successful, but subsequent attempts to run dbunload -ar on the same database would have failed, if the file asademo.logR was not removed. This has now been fixed.



CR:396813
CR Number:   396813
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1758 07 Jul 2005 Fixed
9.0.2 3148 07 Jul 2005 Fixed
9.0.1 2044 07 Jul 2005 Fixed
8.0.3 5272 07 Jul 2005 Fixed
Description
Changes for Engineering Case 395908 introduced a bug such that long binary and long varchar columns were truncated for Open Client and jConnect applications. This problem has been fixed.



CR:396861
CR Number:   396861
Product Name:   UltraLite
Product Component:   HotSync Conduit
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3150 08 Jul 2005 Fixed
Description
When a warning occurs during Palm HotSync synchronizations, HotSync raises a dialog indicating a problem in the log. The log would have stated 'FAIL', along with the positive SQLCODE value and message. Now, the log will state 'WARNING' for positive SQLCODE values, and will not cause HotSync to raise a dialog.



CR:396873
CR Number:   396873
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1770 08 Jul 2005 Fixed
9.0.2 3157 08 Jul 2005 Fixed
9.0.1 2049 08 Jul 2005 Fixed
8.0.3 5277 08 Jul 2005 Fixed
Description
Changes for Engineering Case 392484 ensured that data exceptions that occurred during a wide fetch were not lost, but the changes introducing an error such that warnings were lost instead. This has been corrected so that both data exceptions and warnings are properly reported to the client.



CR:396917
CR Number:   396917
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1758 11 Jul 2005 Fixed
9.0.2 3150 11 Jul 2005 Fixed
9.0.1 2045 11 Jul 2005 Fixed
18 Jul 2005 Presently Not Targeted For Any Future Release Of This Product
Description
UltraLite Dynamic SQL could have produced erroneous metadata for columns in derived tables. The algorithm for matching user-supplied names with metadata was flawed for some cases in derived tables. This has been corrected.



CR:397046
CR Number:   397046
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1764 13 Jul 2005 Fixed
9.0.2 3153 13 Jul 2005 Fixed
Description
The changes for Engineering Case 394722, to have the iAnywhere JDBC driver correctly handle unsigned values without promoting them to the next largest datatype, also required that code in the Index Consultant that was expecting 'Long' objects, be modified to accept the more general 'Number' objects.



CR:397047
CR Number:   397047
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3150 13 Jul 2005 Fixed
Description
Windows uses a two-character combination to indicate an end-of-line (\r\n). In the request level log, these characters are replaced with spaces, so that multi-line statements only take a single line of the file. Newlines at the end of each line are preserved. As of build 3111, the extra newline character used on Windows platforms was no longer preserved. This resulted in an extra space appearing at the end of every line in most Windows editors. Very basic text editors (such as Notepad) would have failed to detect the end-of-line and would display the entire log as a single line. This has been fixed.



Note, his did not affect the processing of the Request-level log by the builtin procedures (ie. sa_get_request_times, sa_get_request_profile, etc.).



CR:397058
CR Number:   397058
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1762 11 Jul 2005 Fixed
9.0.2 3151 11 Jul 2005 Fixed
Description
If a DELETE statement involved a join, the server would have placed long-term read locks on the unmodified tables, even if the DELETE statement was executing as isolation level 0. This has been corrected, the server now locks rows of the unmodified table according to the isolation level of the connection.



As an example, consider a local temporary table DELTEST that contains a single column, X. The statement



DELETE

FROM DELTEST

FROM DELTEST JOIN PRODUCT ON (DELTEST.X = PRODUCT.ID)



would cause the server to place long-term read locks on the product rows that successfully joined with the DELTEST table.



Note that this unnecessary locking occurs only with DELETE statements. INSERT and UPDATE statements are unaffected by this error.



CR:397134
CR Number:   397134
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1762 11 Jul 2005 Fixed
9.0.2 3151 11 Jul 2005 Fixed
9.0.1 2046 11 Jul 2005 Fixed
8.0.3 5273 11 Jul 2005 Fixed
Description
A query that referenced proxy tables and contained a row limitation in the SELECT clause (ie. FIRST n or TOP n) may have incorrectly returned the warning "The result returned is n

non-deterministic.", even if the query had an ORDER BY clause. This has been fixed.



Note, this will not have happened if the complete query was forwarded to the remote

server, (ie. Full Pass-thru mode).



CR:397223
CR Number:   397223
Product Name:   UltraLite
Product Component:   Runtime Libraries
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1647 12 Jul 2005 Fixed
9.0.2 3103 12 Jul 2005 Fixed
9.0.1 2005 12 Jul 2005 Fixed
Description
Java UltraLite could have generated code which had compilation errors when queries with an EXISTS was used. This was corrected.



CR:397352
CR Number:   397352
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1771 20 Jul 2005 Fixed
9.0.2 3157 20 Jul 2005 Fixed
Description
Executing a COMMENT TO PRESERVE FORMAT statement may have caused a server hang. With a database page size is 2 KB this would have occurred if the COMMENT statement was exactly 1960 characters in length. This problem would have occurred for other pages sizes as well, if the exact length of the COMMENT statement matched corresponding values. This problem has been fixed.



CR:397387
CR Number:   397387
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1763 13 Jul 2005 Fixed
9.0.2 3145 13 Jul 2005 Fixed
Description
All ANY and ALL predicates are now rewritten to an EXISTS predicate, if it is semantically correct to preform such a rewrite optimization. With this rewrite optimization, a performance benefit may be observed for some queries.



CR:397635
CR Number:   397635
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1765 14 Jul 2005 Fixed
9.0.2 3154 14 Jul 2005 Fixed
9.0.1 2047 14 Jul 2005 Fixed
8.0.3 5275 14 Jul 2005 Fixed
Description
The server could have crashed while executing a stored procedure, if it was executed often enough to enable caching. This has been fixed.



CR:397668
CR Number:   397668
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1696 15 Jul 2005 Fixed
9.0.2 3155 15 Jul 2005 Fixed
Description
Scheduling transmission rules that contained ON { days of the week } or ON { days of the month } clauses, but did not contain an EVERY {period} clause, would have resulted in an "illegal argument" exception, causing the QAnywhere server to fail. In scheduling these rules, the fact that the EVERY clause was omitted was ignored and the rule was treated as though it had been included. A check has now been added for these rules and they are now handled correctly.

Also, when calculating the next execution time for rules with the ON { days of the week } clause, the scheduler mistakenly set the next day of execution to the 7th of the month, rather than 7 days in the future. This has been fixed as well.



CR:397772
CR Number:   397772
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.3 5279 29 Jul 2005 Fixed
9.0.1 2051 29 Jul 2005 Fixed
9.0.2 3158 29 Jul 2005 Fixed
10.0.0 1945 15 Dec 2005 Fixed
Description
If a LOAD TABLE command failed, for example with a primary key violation, then it was possible that the server would leak table pages and index pages in the database. These leaked pages would not have belonged to any database object and would also not have been marked as free. As a result, the database file could have been larger than necessary. The only way to recover the lost space is to rebuild the database.



CR:397776
CR Number:   397776
Product Name:   SQL Remote for SQL Anywhere
Product Component:   File Messaging for Adaptive Server Anywhere
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1879 03 Nov 2005 Fixed
9.0.2 3217 03 Nov 2005 Fixed
8.0.3 5319 03 Nov 2005 Fixed
Description
When using the FILE based messaging system for SQL Remote, there is a maximum of 47,988 possible file names that SQL Remote will use to generate messages. If all of these file names were already in use, then SQL Remote would have looped forever trying to find a file name to generate a message. SQL Remote will now detect that it has tried every single file name and break out of the loop, reporting that "The maximum number of messages in the messaging system has been reached". Note that although SQL Remote will now no longer loop infinitely in this situation, to allow for the creation of new messages for this remote user, all the files in the user's inbox may need to be manually deleted, and possibly, the maximum message size increased using the -l switch on the SQL Remote command line.



CR:397798
CR Number:   397798
Product Name:   SQL Anywhere
Product Component:   OLEDB Client Library
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3161 29 Jul 2005 Fixed
9.0.1 2053 29 Jul 2005 Fixed
8.0.3 5281 29 Jul 2005 Fixed
8.0.2 4542 29 Jul 2005 Fixed
10.0.0 1779 09 Aug 2005 Fixed
Description
If a Visual Basic application attempted to open a record set using a STATIC cursor with a PESSIMISTIC locking mechanism, the OLEDB provider would have selected a DYNAMIC cursor instead. This was done by the provider to ensure that updating of the records was possible, usually by locking records at the data source immediately before editing. Of course, this also meant that the records were unavailable to other users once editing had begun, until the lock was released by calling Update. This type of lock is used in a system where you can't afford to have concurrent changes to data, such as in a reservation system. If the application then tried to obtain the current bookmark value, an error would have occurred. This made it appear that STATIC cursors didn't support bookmarks, whereas the real problem was that DYNAMIC cursors do not support bookmarks. If the application specifies a STATIC cursor with a READ-ONLY locking mechanism, then a STATIC cursor will be used and bookmarks are supported. The OLEDB provider has been changed so that a KEYSET cursor will be selected instead of a DYNAMIC cursor when PESSIMISTIC locking is requested. This will allow the use of bookmarks.
Workaround Description
 One can use



myRS.CursorLocation = adUseClient;



so this submission is for analysis and resolution

if a s\w bug or documentation oversight.



CR:397914
CR Number:   397914
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3165 03 Aug 2005 Fixed
Description
Error message for SQLSTATE 23506, SQL error code -209 (INVALID_COLUMN_VALUE) contained a spelling error in Lithuanian. "eleistina" should be "neleistina". This has been corrected.



CR:398062
CR Number:   398062
Product Name:   SQL Anywhere
Product Component:   JDBC Client Library
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1770 19 Jul 2005 Fixed
9.0.2 3157 19 Jul 2005 Fixed
Description
If an application used the PreparedStatement.addBatch() method to perform a wide insert, and set some of the columns in the insert to NULL, the addBatch() may have failed with a "Not Yet Implemented" error. The new addBatch code was not properly checking the NULL indicator prior to attempting to setup the next row in the batch. This has now been fixed.



CR:398122
CR Number:   398122
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3162 29 Jul 2005 Fixed
9.0.1 2054 29 Jul 2005 Fixed
8.0.3 5282 29 Jul 2005 Fixed
10.0.0 1781 08 Aug 2005 Fixed
Description
While initializing the in-memory free list on start up, the server could have run out of memory if the database was corrupt. The server will now generate assertion 202100 - "Invalid bitmap page at page (page number)" when encountering such corruption.



CR:398132
CR Number:   398132
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1770 20 Jul 2005 Fixed
9.0.2 3157 20 Jul 2005 Fixed
9.0.1 2049 20 Jul 2005 Fixed
8.0.3 5277 20 Jul 2005 Fixed
Description
If a backup of the database was being performed and the transaction log was either being renamed or truncated, if the database engine was unable to open a new transaction log (or mirror log), an error would have been returned to the backup process, but the server could have continued to apply operations without logging them to the transaction log. The server will now faile an assertion when it cannot open a new transaction log or mirror after the truncation or rename, as this should be a fatal error.



CR:398293
CR Number:   398293
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1771 21 Jul 2005 Fixed
9.0.2 3157 21 Jul 2005 Fixed
9.0.1 2050 21 Jul 2005 Fixed
Description
When run on Unix, NetWare, or Windows CE systems, connection attempts could have caused the server to crash if request-level logging was on. This has been fixed.



CR:398294
CR Number:   398294
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   6.0.00
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1771 21 Jul 2005 Fixed
9.0.2 3157 21 Jul 2005 Fixed
9.0.1 2050 21 Jul 2005 Fixed
Description
Any user connected to the server was able to execute the REMOTE RESET statement. This has been fixed, the user must now have DBA authority.



CR:398456
CR Number:   398456
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1771 22 Jul 2005 Fixed
9.0.2 3157 22 Jul 2005 Fixed
Description
If a delete rule was specified in the '[system:delete]' section of a transmission rule file, it was ignored by the QAnywhere server. This has been fixed so that now such a delete rule replaces the default delete rule used by the server.



CR:398459
CR Number:   398459
Product Name:   MobiLink
Product Component:   QAnywhere server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1772 22 Jul 2005 Fixed
9.0.2 3158 22 Jul 2005 Fixed
Description
The implementation of schedules for transmission rules on the server was incorrect. Schedules with a 'start time' did not fire the rule evaluation at the given start time. As well, schedules with serveral days of the week or several days of the month scheduled at once (eg. every 10 seconds on ('Monday','Tuesday')) did not work correctly. These problems have been corrected.



CR:398604
CR Number:   398604
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3160 29 Jul 2005 Fixed
9.0.1 2053 29 Jul 2005 Fixed
8.0.3 5281 29 Jul 2005 Fixed
Description
It was possible for the server to loop infinitely while going through automatic database recovery if the database file was corrupted. This could have occurred when deleting an entry from a corrupted index. "Assertion 200901: Corrupted page link found on page (0x%x) while deleting from index %s" will now be generated for this situation.



CR:398631
CR Number:   398631
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3157 29 Jul 2005 Fixed
10.0.0 1772 08 Aug 2005 Fixed
Description
Queries with an ORDER BY clause and OUTER JOINs may have returned rows in an incorrect order. This has been fixed.



The following conditions must have been met:

(1) there was at least one equality predicate between two expressions used in the ORDER BY clause

(2) the equality predicate appears in an ON condition of an outer join

(3) the expressions were both from the preserved side of the outer join



Example:

select T.* from

T left outer join R on T.e1 = T.e2 and T.e2 = T.e3 and R.e1 = 10

where T.e1 = T.e2

order by T.e1, T.e3, T.e2



CR:398635
CR Number:   398635
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1794 12 Aug 2005 Fixed
9.0.2 3172 12 Aug 2005 Fixed
9.0.1 2057 12 Aug 2005 Fixed
Description
If a query referencing proxy tables that contained an ORDER BY clause within the LIST() function was executed in Full Passthru mode, it would have failed with the error "Feature 'olap extension' not implemented." This problem has now been corrected.



CR:398799
CR Number:   398799
Product Name:   UltraLite
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3160 29 Jul 2005 Fixed
Description
The UltraLite utility would not have run when the system did not have VFS Manager services e.g. devices running Palm OS 3.5. This is now fixed. The presence and proper version of the VFS Manager is now checked when the utility starts.





--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------