Advantage Developer Zone

 
 
 

Advantage 9.1 Update (9.10.0.0) is now available


The Advantage 9.1 service update (9.10.0.0) has been posted to the Developer's Zone download area at http://devzone.advantagedatabase.com/dz/content.aspx?key=20&Release=13

Please review the “Effects of Upgrading to Version 9.1” help document before updating to 9.1.

Mike Hagman
Product Manager
Sybase iAnywhere 

This update addresses the following issues:
9.10.0.0 - Advantage Client Engine (ACE)
This Service Update of the Advantage Client Engine (ACE) addresses the following issues:

Fixed an issue where various operations in ARC could result in an "Invalid Floating Point Operation" error.

Removed all initialization logic from DllMain's DLL_THREAD_ATTACH code for both ace32.dll and adsloc32.dll. DllMain is now a no-op for thread attach calls. Previously, it made some calls that would allocate some per-thread memory, which could result in acquiring a critical section. If another thread locked the process heap, this could result in deadlock during the thread creation. The initialization now happens on demand when a thread running in ace32.dll needs the per-thread memory.

Fixed an issue where applications that read and write the ads.ini file could not use an ads.ini file in a specific directory if another ads.ini file already existed in the c:\windows directory. Added support to read an environment variable called adsini_path, and use that path to locate the ads.ini file. This variable can be set in the user's environment, or set programmatically by the application. This variable is also useful in Windows Vista installations, to allow the ads.ini file to live in a shared public folder.

Fixed an issue where it was possible to restructure (alter) a table so that memo or BLOB fields would have invalid field level constraints on them, which resulted in unexpected errors. The restructure (alter table) will now return an error if a field with a minimum/maximum constraint or default field value is changed to a memo or BLOB.



9.10.0.0 - Advantage Data Architect (ARC)
This Service Update of the Advantage Data Architect (ARC) addresses the following issues:

Fixed an issue where ARC could not import DBF tables without creating NULL values in the destination ADT tables. A new checkbox in the import wizard controls this functionality.

Fixed an issue where child form menus were incorrectly displayed when the child form was inactive, causing form contents to shift up as a form was activated.

Fixed an issue where the ARC login dialog would not always put the cursor focus in the password edit box.

Fixed an issue where the ARC dictionary comparison utility would raise 5004 errors if the client did not have rights to either data directory.

Fixed an issue where ARC would return the error "X is not a valid component name" when exporting table data to an existing table in a dictionary that had spaces in the filename.

Fixed an issue where columns other than the focused column were not shown when editing a record if the PC was using windows themes.

Fixed an issue where in some situations the SQL debugger would not stop directly on a breakpoint line, but would stop a few lines earlier in the script.

Added button to toolbar and Help menu directing product feedback to http://feedback.advantagedatabase.com

Fixed an issue where ARC would not correctly initialize the state of the ADSSYS user's "internet enabled" property.

Fixed an issue parsing the input parameter list of a function.



9.10.0.0 - Advantage Database Server
This Service Update of the Advantage Database Server addresses the following issues:

Fixed an issue where the Advantage server would not respond if it was using an evaluation serial number that had expired. This would cause clients to typically receive a 6097 error when attempting to connect. The server will now respond with a 7046 (ERR_EVAL_PERIOD_EXPIRED) error.

Fixed an issue that allowed tables to be removed from publications while pending entries for that table existed in replication queues, which could result in 9126 errors being logged.

Fixed issue where cancelling an index build can leave the index file in an unusable state.

Fixed an issue where Linux/NetWare servers would fail to recognize Server-Side aliases that were on the last line of the server configuration file.

Fixed an issue where it was possible for record decryption to fail due to concurrency problems with dynamic cursors and AOFs built on encrypted tables. The issue could affect replication and triggers and sometimes would manifest as memory allocation failures (error 7001) in the error log.

Added collation tables from the ansi.chr and extend.chr files into the adscollate.adt collation repository in order to allow those collations to be loaded dynamically with the ADS_ADT and ADS_VFP table types.

Fixed a bug that caused incorrect filter results when an AOF used a multi-segment index with integer column(s) to optimize a filter expression.

Fixed an issue that prevented Visual FoxPro VarChar and VarBinary fields from replicating correctly.

Fixed an issue where the nullflags field in Visual FoxPro tables was not correctly maintained if a record was modified during an online backup operation.

Fixed a memory corruption issue when renaming a connected user.

Fixed an issue where the server would crash when trying to restore a database from a corrupted backup image.

Fixed an issue that prevented the server from accepting more than 1000 TCP/IP connections.

Fixed an access violation when parsing options for backups.

Fixed an issue where a non-ADSSYS user adding triggers to a table he/she had ALTER permissions to could cause existing triggers on the table to stop working.

Fixed issue where a SELECT TOP x DISTINCT could cause an exception in the server.

Fixed an issue where the server could crash after failing to allocate enough memory to read a memo field.

Fixed an issue where ADS for Linux can crash if a large number of files and TCP sockets are opened when ulimit has been used to increase the number of allowed file opens.

Fixed an issue where differential backups were not correctly managing recycled memo pages, which could lead to memo corruption in a restored database image. It is recommended that anyone using differential backups re-initialize their backup image after installing this service update.

Fixed an issue where the server would crash if a transaction rollback could not complete because another process (a backup utility, for example) had a table, index, or memo locked at the time of the rollback operation.

Fixed an issue where a server crash could occur if a trigger caused a notification event to be signaled while a connection was actively waiting for the event.

Fixed an issue where the NOT BETWEEN operator was not optimized correctly and resulted in 3118 errors being logged. This issue does not affect SQL correctness.

Fixed an issue where the expression parser allowed numeric values with more than one decimal point.

Changed the default open behavior of files opened with Advantage proprietary locking. In the past, Advantage would open files in a "deny write" mode, allowing other non-Advantage processes to open the files read only. While this approach allows non-Advantage applications such as backup, reporting and virus scanning software to open Advantage data files, it also allows them to lock bytes in these files, which can cause Advantage read and write errors, many of which can lead to index corruption. The new default behavior for proprietary locking is to open data files exclusive, only allowing access to them via the Advantage Database Server. In this configuration backups must be done with the adsbackup.exe utility or via the sp_BackupDatabase/sp_BackupFreeTables canned procedures. If you would like to revert to earlier "deny write" behavior, see KB item 081023-2093 at http://devzone.advantagedatabase.com/dz/content.aspx?Key=17&RefNo=081023-2093

Fixed an issue where a partially encrypted table's memo data could become corrupted after packing the table.

Fixed a potential 9042 error when restructuring a table involved in replication.

Fixed an issue that would cause ALTER TABLE to fail even when the connected user had ALTER permissions to the table.

Fixed an issue where the 64 bit server online backup functionality would lose the first 4 bytes of memos associated with DBFs if the records were modified during a backup operation.

Fixed an issue that could cause 9063 errors to be logged when appending records to Visual FoxPro (ADS_VFP) tables with Referential Integrity (RI) rules.

Fixed an issue that caused poor query performance when a subquery was used indirectly in an algebraic expression.

Fixed a server crash when executing a statement with more than 1000 UNION clauses.

Fixed an issue where sp_mgGetSQLStatements incorrectly indicates that certain queries producing static cursors are active.

Fixed an issue that caused the server to crash when executing an SQL script statement RAISE with NULL as the exception message.

Fixed an issue in the SQL engine that caused evaluation of the boolean AND expression to return incorrect results when one of the operands was NULL.

Fixed an issue where sp_GetProcedureColumns would not correctly handle procedure columns with a type of ADS_VARCHAR_FOX or ADS_VARBINARY_FOX.

Fixed an issue where SQL truncation and conversion errors would not specify the column name or the error location.

Fixed an issue where the query optimizer would not generate optimal execution plans for certain parameterized queries. The queries that would suffer from this issue must have at least three tables in an INNER JOIN and the parameter must be used in an equal restriction on the primary key column in one of the tables.

Fixed an issue where the SQL CREATE TABLE command would not add the !Deleted() condition to a VFP table's primary key.

Fixed an issue that would cause a server crash when executing an SQL query that had an empty table with deleted records and an unoptimizable constant restriction on the table.



9.10.0.0 - Advantage JDBC Driver
This Service Update of the Advantage JDBC Driver addresses the following issues:

Implemented missing setObject method in the ADSPreparedStatement class. This allows Servoy applications to use the Advantage JDBC driver without getting "not implemented" errors.



9.10.0.0 - Advantage ODBC Driver
This Service Update of the Advantage ODBC Driver addresses the following issues:

Fixed an issue where DBCConvert would not wrap table names in quotes when generating ALTER TABLE statements.



9.10.0.0 - Advantage PHP Extension
This Service Update of the Advantage PHP Extension addresses the following issues:

Changed ads_result_all to return an error with severity of E_NOTICE rather than E_WARNING when called on a result that does not have a cursor.



9.10.0.0 - Advantage TDataSet Descendant
This Service Update of the Advantage TDataSet Descendant addresses the following issues:

Modified components to support RAD Studio (Delphi and C++Builder) 2009.

Fixed an issue in the TDataSet descendant that caused appends (record inserts) to be slow if an ADT table contained a large number of deleted records.

Fixed an access violation when freeing a TAdsQuery or TAdsTable component in the finalization section of a unit.

Fixed an issue where the Advantage TDataSet Descendant for .NET would always do partial string lookups when calling either the Locate or Lookup method, even if loPartialKey was not passed in as an option.

Fixed an issue where SQL statements that had strings containing a colon would return a 5101 error.



9.10.0.0 - Advantage TDataSet Switch Utility
This Service Update of the Advantage TDataSet Switch Utility addresses the following issues:

Fixed an issue that prevented the TDataSet Switch utility from switching the Delphi 2007 TDataSet to/from version 7.1.



9.10.0.0 - Advantage Visual Objects Driver
This Service Update of the Advantage Visual Objects Driver addresses the following issues:

Fixed an issue where the RDD would return a 5068 (AE_NO_CURRENT_RECORD) error if the work area was not positioned on a record (e.g. after a failed seek).

Fixed an issue where temporary indexes created on SQL cursors were not available for use. Only the last index created was available.

Fixed an issue that could cause the VO debugger to fail to report information about an open work area.

Fixed an issue in the Vulcan.NET RDD where the Seek() method was not updating the current record number after re-positioning the work area.

Fixed an issue where the Vulcan.NET RDD RLock() function would return true even though the record lock failed.