远程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:376609
CR Number:   376609
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
3009 11 Jan 2005 Fixed
9.0.2 2551 13 Jan 2005 Fixed
Description
Running the Collation utility with the command line option '-d x y' could have failed with the error 'Unable to open x as internal collation or file' when converting custom collation file 'x' to script file 'y'. This has been fixed.



CR:376617
CR Number:   376617
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)
3010 13 Jan 2005 Fixed
9.0.2 2551 18 Jan 2005 Fixed
9.0.1 1972 18 Jan 2005 Fixed
Description
HTTP connections to a database initialized with the collation 874THAIBIN, would have incorrectly returned a charset value of 'none', rather than the correct value of 'TIS-620'. This has been fixed.



CR:376620
CR Number:   376620
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)
3009 14 Jan 2005 Fixed
9.0.2 2551 14 Jan 2005 Fixed
Description
The QAnywhere Agent was launching dbmlsync and dblsn with maximum verbosity settings. Now, dbmlsync and dblsn are launched with minimum verbosity by default, otherwise honouring the -v command line switch setting.



CR:376699
CR Number:   376699
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)
310 14 Jan 2005 Fixed
9.0.2 2552 14 Jan 2005 Fixed
9.0.1 1972 14 Jan 2005 Fixed
8.0.3 5204 14 Jan 2005 Fixed
Description
On Windows 95, 98 or ME, the build number of the operating system was displayed incorrectly.



For example:



"Running on Win98 build 67766222"



The correct OS build number is now displayed.



CR:376713
CR Number:   376713
Product Name:   MobiLink
Product Component:   iAS Branded ODBC Drivers
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1970 14 Jan 2005 Fixed
9.0.2 3044 09 Mar 2005 Fixed
Description
Inserting BLOBs or CLOBs bigger than 32k, via the iAnywhere Solution 9 DB2 WP driver 4.20.00.25( 9.0.1GA) or 4.20.00.92(B0072,U0065)( 9.0.2GA), would have failed with the error:



"[ODBC DB2 Wire Protocol driver]Unexpected Server Reply (Conversational Protocol error code: 146C (PRCCNVCD)). [-1217] ['HY000']"



This problem has been fixed in version 4.20.00.115(B0080,U0069). To upgrade this driver, the following files should be changed:



wqdb219.dll

wqdb219r.dll



This fix is for Windows systems only.



CR:376721
CR Number:   376721
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)
9.0.2 3013 14 Jan 2005 Fixed
9.0.1 1973 14 Jan 2005 Fixed
9.0.0 1395 14 Jan 2005 Fixed
Description
When running on NetWare 5.1 with Service Pack 8, the ASA server would have hung on shutdown after displaying the message "Database server stopped at <date> <time>". Some of the NLM unloading code changed in SP 8. This has been fixed, the server now supports these changes..



CR:376742
CR Number:   376742
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)
3010 14 Jan 2005 Fixed
9.0.2 2552 14 Jan 2005 Fixed
9.0.1 1972 14 Jan 2005 Fixed
8.0.3 5204 14 Jan 2005 Fixed
8.0.2 4511 14 Jan 2005 Fixed
Description
If the sybase_sql_ASAUtils_retrieveClassDescription() function was called with a very long class name, a server crash could have occurred. This has been fixed.



CR:376840
CR Number:   376840
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1981 03 Feb 2005 Fixed
8.0.3 5212 03 Feb 2005 Fixed
Description
The MobiLink Server could have crashed when using the HTTP link for synchronization, if the remote stopped communicating with the server at a specific point in the synchronization. The crash actually occurred when the server timed out the connection. This has been fixed.



CR:376892
CR Number:   376892
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 3011 18 Jan 2005 Fixed
Description
The following issues with UltraLite Interactive SQL's Open Connection dialog have been addressed:



- If the extension (.udb or .pdb) of the database file was missed, it was not automatically added. Now a connection will be attempted with the file name as specified, and then with a .udb extension, and then finally with a .pdb extension.



- The browse button would initially display only .udb files. Now both .udb and .pdb files will be displayed.



- It was not possible to scroll the Filename combo box. This has been fixed.



CR:376895
CR Number:   376895
Product Name:   SQL Remote for SQL Anywhere
Product Component:   SQL Remote for Adaptive Server Anywhere
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3018 17 Jan 2005 Fixed
9.0.1 1974 17 Jan 2005 Fixed
8.0.3 5206 17 Jan 2005 Fixed
8.0.2 4512 17 Jan 2005 Fixed
Description
When the database option "Delete_old_logs" was set to "on", SQL Remote, (as well as MobiLink, and the ASA RepAgent), may reported "missing transaction log(s)...". This would have occurred in the following situation:

1) the online transaction that contains the last replication/synchronization offset, had been renamed, say to X;

2) the offline log X contained transactions that started from an early log, say Y; and

3) the log Y contained transactions started from an earlier log, say Z.

Transaction log Z may have already been deleted. This problem is fixed now.
Workaround Description
 none



CR:376977
CR Number:   376977
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)
9.0.2 3013 14 Jan 2005 Fixed
9.0.1 1973 14 Jan 2005 Fixed
8.0.3 5205 14 Jan 2005 Fixed
Description
If an application's operating system used a multibyte character set, which was different from the character set of the database being unload by the Unload utility dbunload, then dbunload could have generated an invalid reload.sql script, and dbunload -an could have failed with a syntax error. Note that dbunload -an turns off character set translation so the character set used by dbunload in that case is the same as the database character set. For example, running dbunload -an on a Chinese (cp936) machine to unload and recreate a UTF8 database could have failed with a syntax error, or could have crashed. This has been fixed.



CR:376990
CR Number:   376990
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 3013 17 Jan 2005 Fixed
Description
Executing a "START JAVA" or "STOP JAVA" statement that did not end in a command delimiter, would have caused Interactive SQL to hang. This has been fixed.



CR:377011
CR Number:   377011
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)
9.0.2 3014 17 Jan 2005 Fixed
9.0.1 1973 17 Jan 2005 Fixed
Description
UltraLite could have produced incorrect results when an index was used in reverse order, and the indexed column contained NULLs. This has now been fixed.



CR:377019
CR Number:   377019
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.1 1970 17 Jan 2005 Fixed
Description
On Windows systems, when selecting numeric values from ASE 12.5.0.1, the iAnywhere Solution 9 ASE Wire Protocol driver version 4.20.00.06, would have failed with the error:



"[ODBC Sybase Wire Protocol driver][SQL Server] Arithmetic overflow during implicit conversion of NUMERIC value '-2.200000000' to a NUMERIC field."



The problem is due to the maximum precision of a numeric column on ASE server. This has been fixed in ASE 12.5.0.3. Version 4.20.00.63 of the ASE driver works around the problem. To upgrade to this driver, the following files need to be changed:



wqdb219.dll

wqdb219r.dll

wqase19s.dll



CR:377021
CR Number:   377021
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 3014 17 Jan 2005 Fixed
Description
A cursor for a query with a single group by expression, was incorrectly qualified to be of type 'sensitive'.



For example:

"select sum(T.x) from T"



This has been fixed. Depending on the desired cursor type, the server may change the cursor type accordingly, and return a warning. For example, under ODBC, if the desired cursor type for a cursor of a single groupby query is KEYSET-DRIVEN, the actual cursor type is determined to be STATIC.



For more information on cursor sensitivity please see:



ASA Programming Guide

Using SQL in Applications

Adaptive Server Anywhere

Cursor sensitivity overview



CR:377036
CR Number:   377036
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3018 18 Jan 2005 Fixed
9.0.1 1975 19 Jan 2005 Fixed
8.0.3 5206 19 Jan 2005 Fixed
Description
If the MobiLink client was run with the -vn option, ('show upload/download row counts'), but not the -vr option, ('show upload/download row values'), or the -v+ option, ('show all messages'), then the upload row counts reported for each table would be cummulative, that is each rows count would include not just the rows uploaded from that table, but also those uploaded for all previous tables.



CR:377116
CR Number:   377116
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   7.0.4
Fixed Version Build Resolution Date Closure Code (If Appropriate)
3010 17 Jan 2005 Fixed
9.0.2 2552 17 Jan 2005 Fixed
9.0.1 1972 17 Jan 2005 Fixed
8.0.3 5204 17 Jan 2005 Fixed
Description
The reload.sql file created by the Reload utility did not double-quote the login name for CREATE EXTERNLOGIN statements. This may have caused a syntax error during reload. This has been fixed, the login name is now double-quoted.



CR:377141
CR Number:   377141
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 3018 18 Jan 2005 Fixed
Description
The UltraLite Interactive SQL utility would have displayed only part of a column's name in the header of the result set after a query result was initially executed. This has been fixed, it will now display the entire column name, making it easier to read the result set



CR:377155
CR Number:   377155
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)
9.0.2 3018 17 Jan 2005 Fixed
9.0.1 1974 17 Jan 2005 Fixed
Description
Creating an index on a function and then inserting, updating, or deleting data into the table on which that index was created, could have created an invalid transaction log entry. If the index was added before any other operations are performed on the table or the server was shutdown after the index was created, and before any other operations were performed on the table, the log would have been valid. This has been fixed.



CR:377161
CR Number:   377161
Product Name:   UltraLite
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1582 21 Jan 2005 Fixed
9.0.2 3018 21 Jan 2005 Fixed
Description
The error code displayed by the UltraLite Interactive SQL utility when a query failed, or after an unsuccessful connection, did not correctly display the SQL Code associated with the error. This has been fixed, it now will display the SQL code after the initial error message.



CR:377276
CR Number:   377276
Product Name:   MobiLink
Product Component:   scripts
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1583 21 Jan 2005 Fixed
9.0.2 3019 21 Jan 2005 Fixed
9.0.1 1975 21 Jan 2005 Fixed
Description
Setting up or upgrading an ASE 12.0 database server, used as a consolidated database by MobiLink, would have failed. The problem was as a result of trying to setup the QAnywhere system tables, so the errors can be ignored if QAnywhere is not being used. The setup and upgrade scripts have been fixed.



CR:377349
CR Number:   377349
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 1594 28 Jan 2005 Fixed
9.0.2 3024 28 Jan 2005 Fixed
9.0.1 1979 28 Jan 2005 Fixed
Description
If a JMS server associated with a QAnywhere JMS connector went down, then some QAnywhere messages directed towards JMS, via the connector, may have been incorrectly routed to the dead message address instead. This has been fixed such that QAnywhere messages directed to a JMS server that is down, will be queued until it comes back up.



CR:377433
CR Number:   377433
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1592 25 Jan 2005 Fixed
9.0.2 3023 25 Jan 2005 Fixed
9.0.1 1978 25 Jan 2005 Fixed
8.0.3 5209 25 Jan 2005 Fixed
Description
If a jConnect or Open Client application made several requests to the server using many host variables, but didn't open any cursors, and then attempted to use a jConnect or Open Client cursor with host variables, then the server would likely have crashed. This problem has been fixed.



CR:377450
CR Number:   377450
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)
9.0.2 3020 20 Jan 2005 Fixed
9.0.1 1975 20 Jan 2005 Fixed
Description
If one, or both, of the tables in a full outer join was a proxy table, executing the query would have caused the server to either crash, or give a syntax error. Remote data access did not support full outer joins, This has been fixed, full outer join support has now been added.



CR:377471
CR Number:   377471
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Linux
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3022 24 Jan 2005 Fixed
9.0.1 1977 24 Jan 2005 Fixed
8.0.3 5209 24 Jan 2005 Fixed
Description
Attemps to synchronize proxy tables would have failed with the error message "Feature 'remote savepoints' not implemented". This has been fixed.



CR:377566
CR Number:   377566
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)
9.0.2 3021 21 Jan 2005 Fixed
8.0.3 5207 21 Jan 2005 Fixed
Description
Under rare circumstances, when executing an UPDATE statement, the server could have created empty histograms, and/or corrupted the selectivity of IS NULL predicates. This problem has now been resolved.



CR:377586
CR Number:   377586
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 1585 21 Jan 2005 Fixed
9.0.2 3021 21 Jan 2005 Fixed
Description
An application thread using the QAnywhere client library for messaging, would have blocked during message synchronization. Normally this was quite brief, however, if synchronization was having difficulty establishing a connection with the QAnywhere server, the blocking could have lasted several minutes. This problem is fixed.



CR:377749
CR Number:   377749
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Generic
Original Version:   10.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1586 24 Jan 2005 Fixed
9.0.2 3107 05 Apr 2005 Fixed
8.0.3 5236 05 Apr 2005 Fixed
Description
A REMOVE JAVA CLASS ... statement would sometimes have failed to remove the Java class, as an obsolete version of the class had a foreign key reference to the current version. This problem was been fixed by deleting all obsolete versions of a Java class first, and then deleting the current version.



CR:377755
CR Number:   377755
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 1586 24 Jan 2005 Fixed
9.0.2 3021 24 Jan 2005 Fixed
9.0.1 1976 24 Jan 2005 Fixed
Description
If a connection updated rows in a table and subsequently left a cursor open past a commit or rollback, other connections would not have been able to lock the entire table in share mode (ie LOCK TABLE ... IN SHARE MODE) until the updating connection closed the cursors and executed either a commit or rollback. If a cursor is left open past a commit or rollback, the schema locks persist until the cursor is closed, but other locks are now released.



CR:377759
CR Number:   377759
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 1585 21 Jan 2005 Fixed
9.0.2 3021 21 Jan 2005 Fixed
Description
In Transact-SQL stored procedures, cursor names in DECLARE CURSOR statements were required to be unique. It was not possible to conditionally declare a cursor, then use a common set of statements to access the cursor. Now, DECLARE CURSOR statements in Transact-SQL procedures are treated as executable statements, and may appear anywhere in a procedure. The cursor declaration takes effect when the statement is executed and remains in effect until a DEALLOCATE CURSOR statement is executed or until the procedure completes. In Watcom-SQL procedures, cursor names must still be unique and cursor declarations must appear with variable declarations at the start of a BEGIN..END block.



CR:377878
CR Number:   377878
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   7.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1590 24 Jan 2005 Fixed
9.0.2 3022 24 Jan 2005 Fixed
9.0.1 1977 24 Jan 2005 Fixed
8.0.3 5209 24 Jan 2005 Fixed
Description
The MobiLink client could have crashed, or behaved irratically, when when the value of the 'charset' database property for the remote database was longer than 29 bytes. In particular, this was the case for databases with the EUC_JAPAN collation, although there may be other such collations. This issue has been fixed.



CR:377879
CR Number:   377879
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1590 25 Jan 2005 Fixed
9.0.2 3032 25 Jan 2005 Fixed
9.0.1 1978 25 Jan 2005 Fixed
Description
On Windows CE, when synchronizing a remote database with a double-byte character set, the MobiLink client would issue the following warning if the database's character set was not identical to the operating system's character set:



"Unable to convert the string ... from the system collation to the database collation".



The MobiLink client will no longer issue this warning if the operating system character set and the database character set are very similar (for example cp932 and sjis).



CR:377885
CR Number:   377885
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 1590 24 Jan 2005 Fixed
9.0.2 3022 24 Jan 2005 Fixed
9.0.1 1977 24 Jan 2005 Fixed
8.0.3 5209 24 Jan 2005 Fixed
Description
If an application used the PreparedStatement.setTimestamp() method to set a timestamp parameter, then the millisecond portion of the timestamp would not have been set. This problem has been fixed.



CR:377900
CR Number:   377900
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   7.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1586 25 Jan 2005 Fixed
9.0.2 3021 25 Jan 2005 Fixed
Description
When using timestamp-based downloads with MobiLink and an Oracle consolidated database, special steps are required to ensure that all changes will be downloaded. Otherwise uncommitted changes from before a download may be missed in downloads that occur after the changes are committed, assuming that triggers are used to record "last modified" timestamps for each row. In other RDBMSes, the download will block until changes are committed, assuming MobiLink's default isolation level, so changes are not missed.



To help download scripts avoid this problem, the MobiLink server now sets the next "last download time" to the start time of the oldest open transaction. This ensures that all changes will be picked up in the next synchronization that occurs after they are committed. The Oracle account used the by the MobiLink server must have permission for the V_$TRANSACTION Oracle system view, otherwise the following warning message will be displayed:



Unable to access ORACLE table 'v_$transaction'. Access is needed in order to ensure no data is missed if using timestamp-based downloads.



Note that only SYS can grant this access, and it must be granted for the base V_$TRANSACTION view (V$TRANSACTION is a synonym for the V_$TRANSACTION view, and hence cannot have permission granted on it directly). The syntax is:



grant select on SYS.V_$TRANSACTION to <user_name>;



Workaround:

For earlier versions of the MobiLink server, equivalent functionality can be achieved with the following procedure:



The simplest way to make sure that all changes are downloaded, assuming a trigger is used to maintain a last_modifed marker for each row, is to change the next "last download time" to be the earliest start time of the open transactions. MobiLink offers the modify_next_last_dowload_timestamp connection event for modifying the next "last download time", but it is invoked at the end of the download transaction, and the new value needs to be determined at the beginning of the download transaction. So the value needs to be determined in the begin_download connection event, and used in the modify_next_last_download_timestamp event. In this example the value is stored in a package variable between the events.



Here are detailed instructions:



1. Ensure that the MobiLink connection (i.e. Oracle user) has permission to access the V$TRANSACTION Oracle system view. Only SYS can grant this access, and it must be granted for the base V_$TRANSACTION view (V$TRANSACTION is a synonym for the V_$TRANSACTION view, and hence cannot have permission granted on it directly):



grant select on SYS.V_$TRANSACTION to <user_name>;



It is essential for the user to have the permission directly, rather than through a role, because a stored procedure does not have role privileges.



If GRANT access is not wanted on the whole view, instead define a view that only allows access to the required start_time column, as in the following example:



create view transaction_start_times

as

select start_time from v$transaction;



grant select on transaction_start_times to public;



2. Create a package with a variable to hold the timestamp value (use DATE type instead of TIMESTAMP for Oracle 8), and procedures to set and get it (from MobiLink events):



create or replace package SyncVars

as

procedure SetDownloadTimestamp;

function GetDownloadTimestamp return timestamp;

end SyncVars;



create or replace package body SyncVars

as

DownloadTimestamp timestamp;



procedure SetDownloadTimestamp

as

begin

select nvl( min( to_timestamp( start_time, 'mm/dd/rr hh24:mi:ss' ) ), localtimestamp )

into DownloadTimestamp

from v$transaction;

end SetDownloadTimestamp;



function GetDownloadTimestamp return timestamp

as

begin

return DownloadTimestamp;

end GetDownloadTimestamp;



end SyncVars;





3. Add a begin_download connection script to determine the timestamp value:



exec ml_add_lang_connection_script( 'version?', 'begin_download', 'SQL','begin SyncVars.SetDownloadTimestamp(); end;' );



4. Add a modify_next_last_download_timestamp connection script to replace the timestamp that will be used by MobiLink:



exec ml_add_lang_connection_script( 'version?','modify_next_last_download_timestamp', 'SQL','begin ? := GetDownloadTimestamp(); end;' );



Then the table download_cursor scripts just need to use the usual 'WHERE last_modified >= ?' clause, since the value that MobiLink passes in for the question mark will be the timestamp value determined in the previous synchronization.



CR:377905
CR Number:   377905
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3020 24 Jan 2005 Fixed
9.0.1 1975 24 Jan 2005 Fixed
Description
The documentation describes a MobiLink client hook called sp_hook_dbmlsync_process_return_code. The documentation is incorrect in that the name of this hook is actually sp_hook_dbmlsync_process_exit code. Otherwise the documentation on this hook is correct.
Workaround Description
 Untested (as in begin fully functional) and probably unsupported

but changing the name to match the name



sp_hook_dbmlsync_process_exit_code



clears the warning.



CR:377911
CR Number:   377911
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 1638 15 Mar 2005 Fixed
9.0.2 3099 15 Mar 2005 Fixed
9.0.1 2001 15 Mar 2005 Fixed
8.0.3 5227 15 Mar 2005 Fixed
Description
Using AWE on Windows 2003 would very likely have caused some or all of the following:

1) a blue screen error 76 with text "Process has locked pages",

2) event log messages indicating that a "driver is leaking locked pages",

3) ASA fatal errors indicating the reads or writes were failing with the error code 1453 (ERROR_WORKING_SET_QUOTA), and/or

4) other generic fatal read/write errors



Microsoft has fixed this problem in Service Pack 1 of Windows 2003. It is our understanding that no fix will be made by Microsoft prior to the release of Service Pack 1.



In order to prevent these serious consequences the database server can no longer be started on Windows 2003 pre-SP1 while using AWE. Any attempt to do so will result in a startup error "Windows 2003 does not properly support AWE caching before Service Pack 1"



At the time this description was written there was no existing Microsoft Knowledge Base (KB) article describing this issue.



CR:378026
CR Number:   378026
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 1593 26 Jan 2005 Fixed
9.0.2 3023 26 Jan 2005 Fixed
9.0.1 1978 26 Jan 2005 Fixed
8.0.3 5210 26 Jan 2005 Fixed
8.0.2 4515 26 Jan 2005 Fixed
Description
Executing a query involving a column for which the server estimate for NULL selectivity had become invalid (ie greater than 100%), could have caused the server to crash. The server will now deal with this situation without crashing. The problem can be rectified by recreating the affected column statistics using the CREATE STATISTICS statement.



CR:378033
CR Number:   378033
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1592 25 Jan 2005 Fixed
9.0.2 3023 25 Jan 2005 Fixed
9.0.1 1978 25 Jan 2005 Fixed
9.0.0 1397 25 Jan 2005 Fixed
Description
When creating a new breakpoint in the debugger, the procedure list was not sorted. This has been fixed, now the list of procedures, events, and triggers is sorted.



CR:378034
CR Number:   378034
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 1594 26 Jan 2005 Fixed
9.0.2 3024 27 Jan 2005 Fixed
9.0.1 1979 27 Jan 2005 Fixed
Description
Executing a procedure that called a function in an external library could have caused the server to crash if the called routine was using the old-style API. The problem occurred when the function was declared in SQL with fewer arguments than it was actually written to handle. Consider the following example of a user-defined function accepting one output argument.



CREATE FUNCTION "DBA"."MachineName" (out @iMachine char(255))

returns integer external name

'Win32MachineName@C:\\path\\mytools.dll'



begin

declare @iMachine char(255);

call dba.MachineName(@iMachine);

select @iMachine

end



If the actual function was written to accept more than one argument (e.g., int Win32MachineName( char *p1, char *p2 ) ) and the function employed the "callee pops the arguments" protocol, then the stack pointer will be improperly aligned upon return to the caller (the server in this case). It will point to a memory location 4 bytes higher than where it should.



After the user function was called. the server checked, and corrected, the stack misalignment. There was, however, a small window of a few instructions where the stack pointer was misaligned and the server makes some other function calls. This resulted in the top of the stack being corrupted. In previous versions of the server, this did not result in any permanent harm. In more recent versions of the server, an important pointer is correpted, resulting in a crash.



Now, the server pushes and pops extra guard words on the stack so that these unused stack positions will be corrupted instead. The server also now checks for a serious stack underflow and will issue an assertion (103701 "Function parameter list mismatch") and stop rather than crash.



CR:378101
CR Number:   378101
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 1592 26 Jan 2005 Fixed
9.0.2 3023 26 Jan 2005 Fixed
Description
If a column of type Double or Float had DEFAULT AUTOINCREMENT defined, and the maximum value for the column had already been inserted into the the table, then inserting the DEFAULT value will yield unexpected results instead of inserting the expected NULL value. This problem has been fixed.



CR:378115
CR Number:   378115
Product Name:   MobiLink
Product Component:   ASA Client
Status:   Closed
OS:   Microsoft Windows 2000
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1598 01 Feb 2005 Fixed
9.0.2 3025 01 Feb 2005 Fixed
9.0.1 1980 01 Feb 2005 Fixed
8.0.3 5212 01 Feb 2005 Fixed
Description
The MobiLink ASA client may not have shut down gracefully when it was running as a Windows service. This may have caused resources such as temporary files, not to have been cleaned up before shutting down. This problem has now been fixed.



Note, this problem applied to the MobiLink synchronization server and SQL Remote for ASA as well, and have also been fixed.
Workaround Description
 Only workarounds



1 - manually deleting files (after guessing which

ones and if user permissions allow)



2 - not running the utility as a service



CR:378225
CR Number:   378225
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 1593 27 Jan 2005 Fixed
9.0.2 3023 27 Jan 2005 Fixed
Description
If WAITFOR ... AFTER MESSAGE BREAK was used to wait for a message from another connection and no message was received before the end of the specified waiting period, querying the value of connection_property('MessageReceived') would return the value of the previous message received. Now in this situation, connection_property('MessageReceived') will return an empty string.



CR:378230
CR Number:   378230
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)
9.0.2 3027 03 Feb 2005 Fixed
9.0.1 1981 03 Feb 2005 Fixed
Description
Queries containing predicates with subqueries may have crashed the server during execution. This may hace occurred if one of the following conditions was met:

1. There were at least two predicates with subqueries referencing the same table T, and T was also referenced in the main query block. In the example below, t3 is referenced in both subqueries and in the main query block.

2. There was an index on the outer reference columns used in the subquery. In the example below, t3 has an index on the column t2_id which is the outer reference column in both subqueries.



Example:

select * from t1 join t3 as t2 on t2.t2_id = t1.t1_id +1

where t1.t1_id between (select MIN(t3.t1_id) from t3 where t3.t2_id=t2.t2_id)

and (select MAX(t4.t1_id) from t3 as t4 where t4.t2_id=t2.t2_id)
Workaround Description
 None.



CR:378242
CR Number:   378242
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 1593 27 Jan 2005 Fixed
9.0.2 3023 27 Jan 2005 Fixed
9.0.1 1978 27 Jan 2005 Fixed
8.0.3 5210 27 Jan 2005 Fixed
Description
If a batch containing a call to an external procedure was executed, and the external procedure was subsequently canceled, the batch would have continued execution, instead of being canceled as well. This problem has been fixed.



CR:378243
CR Number:   378243
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 1593 27 Jan 2005 Fixed
9.0.2 3023 27 Jan 2005 Fixed
9.0.1 1978 27 Jan 2005 Fixed
8.0.3 5210 27 Jan 2005 Fixed
Description
Repeatedly calling a stored procedure that performed an INSERT, UPDATE or DELETE into a proxy table, would likely have caused a server crash. This problem has been fixed.



CR:378245
CR Number:   378245
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 1593 27 Jan 2005 Fixed
9.0.2 3034 27 Jan 2005 Fixed
Description
The QAnywhere Agent would have needlessly directed the MobiLink client (dbmlsync)to begin a synchronization process even though the MobiLink server was unreachable. This would have resulted in dbmlsync scanning the transaction log, and then failing the synchronization because it could not to connect to the server. The problem was only noticeable in cases where the transaction log scanning process was expensive and the server went offline and the transmission policy was scheduled. In this case, dbmlsync would cause high CPU usage and then fail to synchronize.



This problem has been fixed by doing a periodic check that the MobiLink server is reachable. This check is done only after a connection failure has occurred. Once the server is reachable again, the check is discontinued. The QAnywhere Agent will not direct dbmlsync to begin the synchronization process if it is known that the MobiLink server is unreachable.



CR:378272
CR Number:   378272
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1595 31 Jan 2005 Fixed
9.0.2 3024 31 Jan 2005 Fixed
9.0.1 1979 31 Jan 2005 Fixed
Description
Attempting to view the SQL for a view, trigger, procedure or function, that contained a -- comment anywhere in the "CREATE|ALTER <object-type> [<owner>].name" prefix, may have caused Sybase Central to appear to hang, at 100% CPU usage. It was in fact, just taking a very long time to parse the SQL. This has been fixed.
Workaround Description
 None



CR:378299
CR Number:   378299
Product Name:   SQL Remote for SQL Anywhere
Product Component:   File Messaging for Adaptive Server Anywhere
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
1600 02 Feb 2005 Fixed
Description
A new message system parameter called "invalid_extensions" now exists for the FILE and FTP messaging system. The customer can now stop dbremote from using certain file extensions for messages that are generated by specifying a comma separated list of extensions in this options. For example :



SET REMOTE ftp OPTION "Public"."invalid_extensions" = 'exe,pif,dll,bat,cmd,vbs';
Workaround Description
 We have typically suggested that such scanning be configure to bypass scanning of our message directories, but this may not always be possible with some utilites and some platforms.



CR:378305
CR Number:   378305
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 1589 27 Jan 2005 Fixed
9.0.2 3021 27 Jan 2005 Fixed
9.0.1 1977 27 Jan 2005 Fixed
Description
Sending an empty BytesMessage through the JMS connector may have caused the connector to crash due to an uncaught NullPointerException. This problem has been fixed.



Also, the handling of reply-to addresses through the JMS connector was changed to match the documentation.



CR:378360
CR Number:   378360
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Generic
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1598 01 Feb 2005 Fixed
9.0.2 3025 01 Feb 2005 Fixed
9.0.1 1980 01 Feb 2005 Fixed
8.0.3 5212 01 Feb 2005 Fixed
Description
The Data Adapter did not set IsKey property to true when filling a DataTable if the source tables had unique indexes. This problem has been fixed.



CR:378387
CR Number:   378387
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 1602 28 Jan 2005 Fixed
9.0.2 3028 07 Feb 2005 Fixed
9.0.1 1982 07 Feb 2005 Fixed
Description
If membership in group SYS was revoked from PUBLIC, rebuilding a database using "DBUNLOAD -an" would have failed with the error: "Table 'SYSOPTIONS' not found"

This has been fixed.



A workaround is to unload without the -an option.



CR:378482
CR Number:   378482
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 1595 31 Jan 2005 Fixed
9.0.2 3024 31 Jan 2005 Fixed
9.0.1 1979 31 Jan 2005 Fixed
Description
Incoming JMS Messages marked as "redelivered", were not being processed correctly by the QAnywhere JMS connector. This could have resulted in messages being lost if the connection between the JMS connector and the JMS server was broken while the connector was in the process of receiving a message. Now redelivered messages are handled correctly.



CR:378516
CR Number:   378516
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)
10.0.0 1608 10 Feb 2005 Fixed
9.0.2 3031 10 Feb 2005 Fixed
9.0.1 1984 10 Feb 2005 Fixed
Description
Attempting to run an ODBC application with a third-party Driver Manager would have resulted in a hang, or a crash, if the ASA ODBC driver stub (libdbodbc9.so) was present, but the actual drivers (libdbodbc9_n.so and libdbodbc9_r.so) were missing. This situation could occur if, when creating a custom ASA installation, the driver libraries were deleted, or were not copied. THis has been fixed.



CR:378610
CR Number:   378610
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 1593 31 Jan 2005 Fixed
9.0.2 3025 31 Jan 2005 Fixed
9.0.1 1980 31 Jan 2005 Fixed
Description
If the QAnywhere server crashed, it was possible that an incoming JMS message could have been acknowledged as received without the JMS message being forwarded onwards as a QAnywhere message. This has been fixed.



CR:378613
CR Number:   378613
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
9.0.2 3025 31 Jan 2005 Fixed
9.0.1 1980 31 Jan 2005 Fixed
8.0.3 5212 31 Jan 2005 Fixed
Description
The following problems related to the Import Wizard have been fixed:



1. When importing ASCII or FIXED files into an existing table, the column data types were always being displayed as "VARCHAR" on the last page. Now, the actual column types are displayed.



2. When importing FIXED data in an existing table, if fewer column breaks were placed so that fewer columns were defined than appeared in the actual table, the preview would still have shown columns for all of the columns in the database table. This was incorrect, and clicking on these extra columns would have caused Interactive SQL to crash. These extra columns are now no long displayed.



3. If the Import Wizard was closed by clicking the close box, it could still attempt to import the data. Now, clicking the close box is synonymous with clicking the "Cancel" button.



CR:378742
CR Number:   378742
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   8.0.3
Fixed Version Build Resolution Date Closure Code (If Appropriate)
8.0.3 5213 07 Feb 2005 Fixed
Description
If an item in the GROUP BY clause was an alias reference, that appeared more than once, then the statement would have failed with the eror "Function or column reference to '???' must also appear in a GROUP BY". This has been fixed.



The workaround is to remove the repeated item.



CR:378835
CR Number:   378835
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 1601 07 Feb 2005 Fixed
9.0.2 3027 07 Feb 2005 Fixed
9.0.1 1982 07 Feb 2005 Fixed
8.0.3 5213 07 Feb 2005 Fixed
8.0.2 4516 07 Feb 2005 Fixed
Description
The INSERT ... ON EXISTING UPDATE statement updates an existing row with the new column values. If a column list had been specified, then in addition to modifying the specified columns, the statement also modified columns with their default values. Now, the server will no longer update default columns unless explicitly asked to.



The following describes the new server behaviour:



1. When the row does not exist, the new row is inserted as per the

牋 usual rules of the INSERT statement.

2. If the row exists, and ON EXISTING SKIP is specified, no changes

牋 are made to the row.

3. If the row exists, and ON EXISTING UPDATE is specified, the row is

牋 updated as par the following rules:

牋 (a) All columns that have been explicitly specified in the

牋牋牋 INSERT statement are updated with the specified values.

牋 (b) Columns with defaults that are meant to be changed on an

牋牋牋 UPDATE are modified accordingly. These special defaults include

牋牋牋 "DEFAULT TIMESTAMP", "DEFAULT UTC TIMESTAMP", and

牋牋牋 "DEFAULT LAST USER".

牋 (c) Columns with other defaults are not modified unless some

牋牋牋 of these are explicitly mentioned with a non default

牋牋牋 value in the INSERT statement, in which case these columns

牋牋牋 are modified as par rule 3(a) above.

牋 (d) Computed columns are re-evaluated and modified using the new row.

牋 (e) Any other columns are left unchanged.



CR:378936
CR Number:   378936
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 1600 07 Feb 2005 Fixed
9.0.2 2452 07 Feb 2005 Fixed
9.0.1 1981 07 Feb 2005 Fixed
Description
After applying the 9.0.1 1965 EBF for Solaris, the server would no longer have run on machines with pre-SparcV9 CPUs. A SparcV9 instruction (CAS) was added to the server without properly detecting pre-SparcV9 chips. This has been fixed, the server now reverts to an emulated version of CAS on SparcV8 and older CPUs.



CR:379070
CR Number:   379070
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 1601 07 Feb 2005 Fixed
Description
The ON EXISTING UPDATE clause of the INSERT statement can be used to update existing rows. By default, columns with default values not mentioned in the column list of the insert statement, are left unchanged. With the new clause DEFAULTS [ ON | OFF ] specification described below, it is now possible to reset these columns to their default values.



INSERT ... ON EXISTING UPDATE [ DEFAULTS [ ON | OFF ] ] ...



Not using the DEFAULTS clause is equivalent to DEFAULTS OFF.



CR:379071
CR Number:   379071
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)
9.0.2 3028 07 Feb 2005 Fixed
9.0.1 1982 07 Feb 2005 Fixed
Description
If the server encountered unexpected file errors while starting, it could have displayed the error: "Unknown error (xxxxx)" (where xxxxx was meaningless).



For example, if asatest.db existed, running:

dbeng9 asatest.db" (the trailing quote is intentional)



would generate the error: "Unknown error (xxxxx)".



This problem has now been fixed so that unexpected file errors now display the error: "Could not open/read database file: <file name>"



CR:379077
CR Number:   379077
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 1632 08 Mar 2005 Fixed
9.0.2 3096 08 Mar 2005 Fixed
8.0.3 5225 08 Mar 2005 Fixed
Description
When the LOAD TABLE statement is used with the CHECK CONSTRAINTS OFF clause, it does not validate any check constraints on the table. However, the check constraints were built and annotated as part of the LOAD TABLE and failure to do so resulted in the statement being rejected. The server will now ignore the check constraints completely, by not attempting to build them at all.



As an example the following returns a "table not found error" when the table CT1 referenced in the check constraint is not visible to the user executing the LOAD TABLE statement:



grant dba,resource to dbowner

CREATE TABLE dbowner.CT1 ( c1 integer NOT NULL )

CREATE TABLE dbowner.T2 ( c1 integer NOT NULL, check(not c1 = any(select c1 from CT1) ) )

LOAD TABLE dbowner.T2 ... CHECK CONSTRAINTS OFF ...



CR:379106
CR Number:   379106
Product Name:   SQL Anywhere
Product Component:   Other
Status:   Closed
OS:   Generic
Original Version:   5.5.05
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1620 07 Feb 2005 Fixed
9.0.2 3040 07 Feb 2005 Fixed
9.0.1 1992 07 Feb 2005 Fixed
8.0.3 5219 07 Feb 2005 Fixed
Description
A multithreaded Embedded SQL application could, depending on timing, have failed with the error "Invalid statement" (SQLCODE -130). For this to have occurred, the application had to use the syntax "EXEC SQL DECLARE ... CURSOR FOR SELECT ..." in code which could be run by multiple threads concurrently. This has been fixed so that the SQL Preprocessor generates code for the syntax "EXEC SQL DECLARE ... CURSOR FOR SELECT ..." that is thread safe.



Note the syntax "EXEC SQL DECLARE ... CURSOR FOR :stmt_num" is thread safe (and is not affected by this problem), while the syntax "EXEC SQL DECLARE ... CURSOR FOR statement_name" is not thread safe (and cannot be made thread safe).



CR:379190
CR Number:   379190
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 1602 08 Feb 2005 Fixed
9.0.2 3029 08 Feb 2005 Fixed
9.0.1 1983 08 Feb 2005 Fixed
8.0.3 5213 08 Feb 2005 Fixed
8.0.2 4516 08 Feb 2005 Fixed
Description
The Dateadd() function would have produced incorrect results when the value to be added was close to the maximum or minimum 32-bit signed integer values and the time unit was seconds. For example:



select dateadd(ss,2147483647,'2005-02-03 11:45:37.027')



would have resulted in:



1937-01-16 08:32:**.***



This has been fixed, now, the result is:



2073-02-21 14:59:44.027



The Datediff() function also produced incorrect results when the difference was close to the maximum or minimum 32-bit signed integer values and the time unit was second. For example:



select datediff(ss,'2073-02-21 14:59:45.027','2005-02-03 11:45:37.027')



would have resulted in a range error. This has also been fixed, the result is now:



-2147483648



CR:379240
CR Number:   379240
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 1602 07 Feb 2005 Fixed
9.0.2 3028 07 Feb 2005 Fixed
9.0.1 1982 07 Feb 2005 Fixed
Description
A client could have continuously failed to synchronize messages with a QAnywhere server, using an ASE consolidated database, under the following circumstances:



1 - During the last message synchronization, the server committed the messages from the client but the connection with the client dropped before the client could receive the acknowledgement of that fact.



2 - A new client useed the same message store id as a previous client message id that was abandoned.



The problem was with the QAnywhere system procedure for handling primary key conflicts, ml_qa_handle_error. If QAnywhere is being using with an ASE back-end, the QAnywhere server schema can be patched by dropping and re-creating the procedure from the fixed syncase.sql, (or syncase125.sql), script.



Any new QAnywhere ASE server schemas created with the fixed scripts will not have the problem.



CR:379245
CR Number:   379245
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1602 07 Feb 2005 Fixed
9.0.2 3028 07 Feb 2005 Fixed
Description
Attempting to unload a version 5.5.x database, containing a table with a BIT column having a default value, would have resulted in a syntax error in the generated reload.sql script. This has been fixed.



CR:379371
CR Number:   379371
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 1609 10 Feb 2005 Fixed
9.0.2 3032 10 Feb 2005 Fixed
9.0.1 1986 10 Feb 2005 Fixed
8.0.3 5213 10 Feb 2005 Fixed
Description
If a CREATE TABLE statement was executed, and the table had a multi-column primary key, the statistics of the first primary key column would not have been used until the database had been restarted. This has been fixed



CR:379374
CR Number:   379374
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 1601 08 Feb 2005 Fixed
9.0.2 3028 08 Feb 2005 Fixed
Description
The QAnywhere Agent sends special system messages to a special "system" queue that contains information about the network status of the client. These messages were not getting deleted from the client message repository, even after they expired. This has been fixed so that they are now deleted.



CR:379378
CR Number:   379378
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 1601 08 Feb 2005 Fixed
9.0.2 3028 08 Feb 2005 Fixed
Description
The QAManager.recover() method allows recovery of unacknowledged messages so that they can be re-received. When a receiving QAManager called recover(), re-received a message, then acknowledged the message, the 'received' status of the message was not being synchronized back to the originator of the message. The message repository used by QAManager keeps a list of unacknowledged message IDs. This list was not being cleared by the recover() method, so the message ID of a recovered message was added to this list twice. The fix was to have the recover() method clear the list of unacknowledged message IDs.



CR:379390
CR Number:   379390
Product Name:   SQL Anywhere
Product Component:   ISQL
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1605 08 Feb 2005 Fixed
9.0.2 3029 08 Feb 2005 Fixed
Description
When starting Interactive SQL, if a "Connect" dialog is opened, the dialog is now parented to the main window. This ensures that it never opens behind the main window, and that if the main window is activated by clicking on its task bar icon (Windows only), the "Connect" dialog will always come to the front.



A similar bug was also fixed where error messages could have opened behind the main window under some circumstances.



CR:379414
CR Number:   379414
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 1605 08 Feb 2005 Fixed
9.0.2 3029 08 Feb 2005 Fixed
9.0.1 1983 08 Feb 2005 Fixed
8.0.3 5213 08 Feb 2005 Fixed
8.0.2 4516 08 Feb 2005 Fixed
Description
The Dateadd() function would have produced incorrect results when the value to be added was close to the maximum or minimum 32-bit signed integer values and the time unit was milliseconds. For example:



select dateadd(ms,2147483647,'2005-02-03 21:45:37.027')



would have resulted in:



2005-01-10 01:15:**.***



This has been fixed, now, the result is:



2005-02-28 18:17:00.674



The Datediff() function also produced incorrect results when the difference was close to the maximum or minimum 32-bit signed integer values and the time unit was milliseconds. For example:



select datediff(ms,'2005-02-28 18:17:00.675','2005-02-03 21:45:37.027')



would have resulted in a range error. This has also been fixed, the result is now:



-2147483648



CR:379532
CR Number:   379532
Product Name:   SQL Anywhere
Product Component:   ADO.Net Managed Provider
Status:   Closed
OS:   Generic
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1616 22 Feb 2005 Fixed
9.0.2 3035 22 Feb 2005 Fixed
9.0.1 1991 22 Feb 2005 Fixed
8.0.3 5217 22 Feb 2005 Fixed
Description
The same command object could have been deleted twice when running in a multi-threaded environment. This could potentially have caused a crash. The problem has been fixed.



CR:379662
CR Number:   379662
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 1598 09 Feb 2005 Fixed
9.0.2 3025 09 Feb 2005 Fixed
Description
The iAnywhere JDBC Driver has been enhanced to support the PreparedStatement.addBatch() method. This method is useful for performing batched (or wide) inserts.



To use this method:

1) An INSERT statement should be prepared using one of the Connection.prepareStatement() methods,

2) The parameters for the prepared insert statement should be set and batched as follows:



for( ... ) // for loop to batch n sets of parameters

{

stmt.set?( 1, ? ); // where stmt is the prepared insert statement from step 1

stmt.set?( 2, ? );

...

stmt.set?(m , ? ); // note that there are m parameters in the statement

stmt.addBatch(); // adds the set or parameters to the batch and moves to the next row of parameters

}

3) The batch should then be executed using the PreparedStatement.executeUpdate() method



It should be noted that only the PreparedStatement.addBatch() method is supported and that the PreparedStatement.executeUpdate() method needs to be called to execute the batch. None of batch methods for the Statement object (i.e. Statement.addBatch(), Statement.clearBatch(), Statement.executeBatch() ) are supported since these methods are completely optional and not very useful. For such static batches, it is best to call Statement.execute() or Statement.executeQuery() on a single string with the batched statements wrapped inside a BEGIN...END.



NOTE 1: BLOB parameters are not supported in batches



NOTE 2: String/Binary parameters are supported but the size of the string/binary parameter is an issue. By default the string/binary parameter is restricted to 255 characters or 510 bytes. The reason for the restriction is due to the underlying ODBC protocol and will not be discussed here. For futher information, it is best to view the documentation on passing arrays of parameters in ODBC. If, however, an application needs to pass larger string or binary parameters within a batch, then an additional method has been provided to increase the size of the string/binary parameter. Note that this method must be called PRIOR to the first addBatch() call. If the method is called after the first addBatch() call, then the new size setting will be ignored. Hence, when calling this extra method to change the size of a string/binary parameter, the application needs to know ahead of time what the maximum string or binary value for that parameter will be.



To use this extra method, you must modify the "code" above as follows:



// need to cast stmt to an IPreparedStatment object in order to change the size of string/binary parameters

ianywhere.ml.jdbcodbc.IPreparedStatement _stmt = (ianywhere.ml.jdbcodbc.IPreparedStatement)stmt;



// now change the size of string parameter 4 from the default 255 characters to 300 characters

_stmt.setBatchStringSize( 4, 300 ); // note string parameters are in "characters"



// change the size of binary parameter 6 from the default 510 bytes to 750 bytes

_stmt.setBatchStringSize( 6, 750 ); // note binary parameters are in bytes



for( ... ) // for loop to batch n sets of parameters where n should not be too large

{

stmt.set?( 1, ? ); // where stmt is the prepared insert statement from step 1

stmt.set?( 2, ? );

...

stmt.set?(m , ? ); // note that there are m parameters in the statement

stmt.addBatch(); // adds the set or parameters to the batch and moves to the next row of parameters

}



The maximum string/binary size of a parameter should be modified with caution. If the maximum is set too high, then the additional memory allocation cost *will* probably override any performance gained from using the batch. Also, there is a good chance the application will not know ahead of time what the maximum string or binary value for a particular parameter is. The recommendation then is to not change the maximum string or binary size of a parameter, but rather to use the batch method until a string or binary value larger than the current/default maximum is encountered. The application can at that point call executeBatch() to execute the parameters that are currently batched, then call the regular set and executeUpdate() method to execute until the large string/binary parameters have been handled, then switch back into batch mode when smaller string/binary parameters are encountered.



CR:379663
CR Number:   379663
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 1602 09 Feb 2005 Fixed
9.0.2 3028 09 Feb 2005 Fixed
Description
A new server command line option -ze, has been added to display the server environment variables. The environment variables are displayed on the server console window and will appear before the copyright notice. The output will also go in the system log if configured properly. This option is not available on Netware and Windows CE systems.



CR:379686
CR Number:   379686
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 1607 09 Feb 2005 Fixed
9.0.2 3031 09 Feb 2005 Fixed
Description
A new database option has been added, UUID_has_hyphens, which will control the formatting of uniqueidentifier values when they are converted to strings. With the default setting of ON, the resulting strings contain 4 hyphens, as in:

12345678-1234-1234-1234-1234567890ab

With the option set to OFF, the hyphens will be omitted from the string.



Also, when converting a string to a uniqueidentifier value, the server now supports UUID strings both with and without hyphens.



CR:379688
CR Number:   379688
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 1608 10 Feb 2005 Fixed
9.0.2 3031 10 Feb 2005 Fixed
9.0.1 1984 10 Feb 2005 Fixed
8.0.3 5213 10 Feb 2005 Fixed
Description
If an application was using Java in the database, or was using Remote Data Access with a JDBC class, then there was a possibility that the server may have lost a SQL error. This was most likely to occur if the SQL error was set, but the SQL error did not get reported to the client prior to the VM Garbage Collector running. Due to the asynchronous nature of the VM Garbage Collector, this problem is highly unreproducible. The problem has been fixed.



CR:379740
CR Number:   379740
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows 95
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1609 11 Feb 2005 Fixed
9.0.2 3032 11 Feb 2005 Fixed
9.0.1 1986 11 Feb 2005 Fixed
Description
A LIKE condition would have incorrectly evaluated to False, if the pattern string started with an underscore "_" or percent sign "%", and ended with at least two non-wildcard characters, (e.g. '%00'); or the string expression ended with at least two occurences of a non-wildcard character sequence that overlap, (e.g. '1000' LIKE '%00'). This has been fixed.



CR:379788
CR Number:   379788
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 1617 10 Feb 2005 Fixed
9.0.2 3085 10 Feb 2005 Fixed
9.0.1 1991 21 Feb 2005 Fixed
Description
Windows Mobile 2003 Second edition (aka Pocket PC 2003 SE, running Windows CE 4.21) is now supported. This Windows version supports both Portrait and Landscape mode screens, square screens, and also VGA screens (640X480 instead of 320X240). They can switch from portrait to landscape mode at the push of a button.



Software installed on this platform would previously have failed to install with the message: "The program you have installed may not display properly because it was designed for a previous version of Windows Mobile Software". The install has been updated to suppress this warning. Any software which supports a version of Windows CE earlier than 4.21 will still issue this error. The server was also updated to support screen resizing.



CR:379836
CR Number:   379836
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)
9.0.2 3031 14 Feb 2005 Fixed
9.0.1 2032 10 Jun 2005 Fixed
06 Jul 2005 Not a Bug
8.0.3 5292 25 Aug 2005 Fixed
Description
UltraLite can now be run on Palm NVFS devices, and supports both the record-based and file-based data stores.



This is a summary of UltraLite clarifications for the Palm OS platform.



A. Database

An internal file volume may also be present on some NVFS devices, such as Tungsten T5 handhelds, which can be accessed and used similar to an SD slot. Therefore, ULEnableFileDB is called to store UltraLite databases on either an internal drive (built-in storage card) or external slot (expansion card). Furthermore, the existing connection parameter palm_db=CRID:n is used to specify the data store on either an internal drive or external slot, where n is the volume ordinal from enumerating the mounted volumes, and the default value of n is 0. Tungsten T5, for example, has two volumes, the internal file volume and the SD slot volume. If the device cannot locate a volume with the user-specified volume ordinal, the SQLCODE -82 is reported when opening the database. ULEnablePalmRecordDB is called to store record-based UltraLite databases.



B. Synchronization Conduit

The conduit synchronizes the first UltraLite database which is found on the device. The database lookup sequence is first the record storage, then the file system including internal drive and external slot. The UltraLite database which is intended to be synchronize should be made available as the first one found in that sequence. The conduit has been designed to work like this, since the file-based data store support was first added to the Palm platform.



CR:379862
CR Number:   379862
Product Name:   SQL Anywhere
Product Component:   Utilities
Status:   Closed
OS:   Solaris
Original Version:   9.0.1
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1613 14 Feb 2005 Fixed
9.0.2 3033 14 Feb 2005 Fixed
9.0.1 1988 14 Feb 2005 Fixed
Description
The Unload utility option -ar ("rebuild and replace database"), would have deleted the old online transaction log files when done, for databases that were used as Replication Server stable queue databases. This problem has been fixed.



CR:379892
CR Number:   379892
Product Name:   SQL Anywhere
Product Component:   Server
Status:   Closed
OS:   Microsoft Windows NT
Original Version:   8.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1615 18 Feb 2005 Fixed
9.0.2 3034 18 Feb 2005 Fixed
8.0.3 5217 18 Feb 2005 Fixed
Description
If a variable was assigned a long string value (>254 character) from a table, and the table was subsequently dropped or truncated, the server would likely have crashed on the next use of the variable.



For example:



begin

declare local temporary table t(c varchar(32767));

declare rv varchar(32767);

insert into t values(repeat('*',5000));

select c into rv from t;

truncate table t;

select lcase(rv) from dummy;

end;



A work around is to concatenate a zero-length string to column value, i.e. use "select c || '' into rv from t" in the example above.



CR:379896
CR Number:   379896
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 1614 15 Feb 2005 Fixed
9.0.2 3034 15 Feb 2005 Fixed
8.0.3 5216 15 Feb 2005 Fixed
Description
Dropping a column from a table could have caused any UPDATE OF {column} triggers on that table to fire incorrectly. This has been fixed.



CR:379901
CR Number:   379901
Product Name:   SQL Anywhere
Product Component:   OLEDB 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 1615 18 Feb 2005 Fixed
9.0.2 3034 18 Feb 2005 Fixed
9.0.1 1990 18 Feb 2005 Fixed
8.0.3 5217 18 Feb 2005 Fixed
Description
The OLEDB provider was failing to close the result set cursor between prepared command executions. Enigeering Case 351298 reintroduced this bug, which was originally described by Case 271435. This fix addresses both issues, an open cursor is now closed before a SQLExecute, when the command has been previously prepared.



CR:379909
CR Number:   379909
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 1610 15 Feb 2005 Fixed
9.0.2 3032 15 Feb 2005 Fixed
Description
If an IIS web server was setup behind a proxy (see diagram below), when a client initiated an HTTPS request, the redirector may have failed to route the request with the error message: "user requesting redirection to unknown server:xxx". This has been fixed.



Diagram:



CLIENT <----HTTPS----> PROXY <----HTTPS----> IIS <-----> Redirector <-----> MobiLink



CR:379916
CR Number:   379916
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 1610 11 Feb 2005 Fixed
9.0.2 3032 11 Feb 2005 Fixed
9.0.1 1986 11 Feb 2005 Fixed
8.0.3 5215 11 Feb 2005 Fixed
Description
Attempting to insert into a local table, selected rows from a proxy table when the remote server was down or not available, would likely have caused the server to crash. Note that the crash will only occur if this INSERT-SELECT performs the first connection attempt to the remote server. This problem is now fixed and a proper error message will now get displayed.



CR:379925
CR Number:   379925
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 1609 11 Feb 2005 Fixed
9.0.2 2453 11 Feb 2005 Fixed
9.0.1 1985 11 Feb 2005 Fixed
Description
When run on Unix systems, the server could have hung or crashed, while processing HTTP requests. This was more likely on slower machines, or when processing large requests or responses, and has been fixed.



CR:379940
CR Number:   379940
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 1609 14 Feb 2005 Fixed
9.0.2 3032 14 Feb 2005 Fixed
9.0.1 1985 14 Feb 2005 Fixed
Description
If an HTTP connection was cancelled by the client while the server was still processing the request, the server may not have closed the socket or releasd it back to the OS. On Unix systems, this could have caused the HTTP listener thread to eventually run out of sockets and fail after a period of time. Clients then attempting to connect to the HTTP server would hang. On Windows systems, this problem was more likely to exhibit itself as a memory leak. This has been fixed.



CR:379951
CR Number:   379951
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)
10.0.0 1623 28 Feb 2005 Fixed
9.0.2 3088 28 Feb 2005 Fixed
9.0.1 1994 28 Feb 2005 Fixed
8.0.3 5220 28 Feb 2005 Fixed
Description
On some new versions of the Windows CE operating system, it was possible to get a 'Fatal Error: No such file or directory' message from the server, when bringing the device out of STANDBY mode. This has been fixed.



CR:379963
CR Number:   379963
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.0 1610 14 Feb 2005 Fixed
9.0.2 3032 14 Feb 2005 Fixed
Description
Selectivity estimates for the predicates generated for the KEY JOINs may have been set incorrectly when the User_estimates option was set to 'ENABLED' or 'OVERRIDE-MAGIC'. The side effect of the wrong selectivity estimates may have been bad performance for queries using KEY JOIN syntax. This has now been fixed.



Workarounds:

1) set the option USER_ESTIMATES to DISABLED ( highly recommended ); OR

2) rewrite the KEY JOIN into a JOIN with an ON clause, which must contain the predicates of the form 'primary key column = foreign key column' for all primary key/foreign key columns.



CR:380056
CR Number:   380056
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 1613 14 Feb 2005 Fixed
9.0.2 3033 14 Feb 2005 Fixed
9.0.1 1988 14 Feb 2005 Fixed
Description
It was possible, although extremely rare, for the server or client to crash, or drop connections, when using the TCPIP link. This could also happen to the server running on Windows for SPX connections. This has been fixed.



CR:380064
CR Number:   380064
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 1613 15 Feb 2005 Fixed
9.0.2 3033 15 Feb 2005 Fixed
Description
Attempting to use any of the bit-wise operators (&, |, ^, ~) with BIGINT or UNSIGNED BIGINT arguments would have resulted in an error, if one of the argument values was too large to be converted to an INTEGER or UNSIGNED INTEGER. This has been fixed.



Also, the INTTOHEX function now permits UNSIGNED BIGINT arguments.



CR:380084
CR Number:   380084
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 1614 14 Feb 2005 Fixed
9.0.2 3034 14 Feb 2005 Fixed
9.0.1 1989 14 Feb 2005 Fixed
8.0.3 5216 14 Feb 2005 Fixed
8.0.2 4519 14 Feb 2005 Fixed
Description
The Dateadd() function could have produced incorrect results when the time unit was milliseconds, minutes, hours, days, or weeks.



For example:



select dateadd(hour,365*24*7923,'0001-01-01 21:45:37.027'),dateadd(hour,69399300,'0001-01-01 21:45:37.027')



would have resulted in:



'****-09-18 00:00:37.027' '9998-07-01 00:00:37.027'



This has been fixed. Now, the results are:



'7918-09-29 00:00:37.027' '7918-01-15 00:00:37.027'



Similarily, the Datediff() function produced incorrect results when the time unit was milliseconds, minutes, hours, days, or weeks.



For example,



select datediff(minute,'2005-02-03 21:45:37.027','6088-02-26 23:52:37.027')



resulted in a range error. This has been fixed. Now, the result is



2147483647



CR:380086
CR Number:   380086
Product Name:   MobiLink
Product Component:   Synchronization Server
Status:   Closed
OS:   Generic
Original Version:   9.0.0
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1513 15 Feb 2005 Fixed
9.0.2 3033 15 Feb 2005 Fixed
9.0.1 1988 15 Feb 2005 Fixed
Description
The last_download_time (LDT) stored on the consolidated database, would have been incorrectly set during an upload-only synchronization. Note, this wouldn't affect the LDT stored at the remote, and sent up during synchronization, only consolidated-side logic that directly inspected last_download_time in the ml_user or ml_subscription tables would see an incorrect time. The LDT is now set only when there is a download.



CR:380104
CR Number:   380104
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 1613 15 Feb 2005 Fixed
9.0.2 3033 15 Feb 2005 Fixed
9.0.1 1988 15 Feb 2005 Fixed
9.0.0 1399 15 Feb 2005 Fixed
Description
On 64 bit Windows systems, dynamic cache sizing did not work correctly. The server was unable to query the OS to determine its own working set size, so the cache growth algorithm reverted back to the old (version 6.0), very conservative growth algorithm. This has been corrected.



CR:380163
CR Number:   380163
Product Name:   SQL Anywhere
Product Component:   Sybase Central Plug-in
Status:   Closed
OS:   Microsoft Windows
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1614 16 Feb 2005 Fixed
9.0.2 3034 16 Feb 2005 Fixed
9.0.1 1990 16 Feb 2005 Fixed
Description
If an Article of a Publication contained two columns such that one column's name was an exact prefix of another column's name (for example, "id" and "id2"), then only the shorter named column would have been marked as part of the Article on the Columns tab of the Article property sheet. This has been fixed.
Workaround Description
 None short of renaming columns involved in publication - alter schema



CR:380178
CR Number:   380178
Product Name:   UltraLite
Product Component:   UltraLite for M-Business Anywhere
Status:   Closed
OS:   Generic
Original Version:   9.0.2
Fixed Version Build Resolution Date Closure Code (If Appropriate)
10.0.0 1613 15 Feb 2005 Fixed
9.0.2 3033 15 Feb 2005 Fixed
Description
When ULPod threw an exception from Connection.Synchronize(), the message field of the exception only contained the string "SQLE_xxx", giving the type of the error, with no reference to the error context parameters. This information was not enough to help diagnose the problem. For example, a UNIQUE constraint violation during download would have caused the error from MobiLink: "download failed with a client error -196", and the UltraLite client side would only received a generic "SQLE_xxx" error string. It would have been very difficult to identify on which table the violation occured.



Now, extra information has been added to the message field of the exception thrown from Connection.Synchronize(). If a download UNIQUE constraint occurred inside UltraLite runtime, the conflicting table's name is added to the error parameters. ULPod will append the first three error parameters to the end of the SQLE_xxx" string, separated by ":". For example, the following message field of a synchronization exception "SQLE_SERVER_SYNCHRONIZATION_ERROR:-10013" tells that the MobiLink server error code is -10013.



CR:380189
CR Number:   380189
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 1613 15 Feb 2005 Fixed
9.0.2 3033 15 Feb 2005 Fixed
Description
When a unique constraint violation error occurred, the UltraLite run-time would have only generated a PRIMARY_KEY_NOT_UNIQUE error (SQLCODE -193), with no context information about which table caused the violation. Now if a download unique constraint violation error occurs, the conflicting table's name is added as part of the error parameters.



CR:380191
CR Number:   380191
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 3034 15 Feb 2005 Fixed
Description
Under some circumstances, the iAnywhere JDBC Driver could have return the error "Database server not found (SQLCODE -100), as a result of executing a "STOP ENGINE" statement. This error is now ignored by Interactive SQL and is not reported to the user.



CR:380206
CR Number:   380206
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 1614 15 Feb 2005 Fixed
9.0.2 3034 15 Feb 2005 Fixed
8.0.3 5216 15 Feb 2005 Fixed
Description
The server could have left connections hanging indefinitely, when receiving multi-piece strings on a heavily loaded system. There was a chance that this problem could also have occurred under other conditions, such as when the network connection between client and server introduced long delays. 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). This has been fixed.



CR:380351
CR Number:   380351
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 1621 22 Feb 2005 Fixed
9.0.2 3087 22 Feb 2005 Fixed
9.0.1 1993 22 Feb 2005 Fixed
8.0.3 5219 22 Feb 2005 Fixed
8.0.2 4520 22 Feb 2005 Fixed
Description
The server will no longer display command-line options in the console window when any part of the command line is derived from an obfuscated file. It will now display a command-line syntax error message with asterisks, instead of the text that caused the syntax error when obfuscation is used, (ie Error in command near "***" )
Workaround Description
 NONE. This IS a MAJOR feature flaw



CR:380378
CR Number:   380378
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)
9.0.2 3035 21 Feb 2005 Fixed
9.0.1 1991 21 Feb 2005 Fixed
8.0.3 5217 21 Feb 2005 Fixed
Description
Malformed GRANT statements could have resulted in incorrect behaviour. This has now been fixed.





--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------