Subscribe to our News, Blogs and Updates
AnyDAC for Delphi v released PDF Print E-mail
Dec 21, 2011

Major TADTable optimizationFirebird v 3 support (packaged procedures, PSQL functions, identity columns, BOOLEAN data type), Firebird COMPUTED BY support, PostgreSQL v 9 support (named parameters, anonymous blocks, enums), Interbase v 6, 7 support, Advantage v 8, 9 support, SQL Anywhere v 12 support, SQLite v 3.7.9 support, ElevateDB ODBC support, ReportBuilder DADE and more.

Possibly breaking changes

  1. SQL Server and SQL Anywhere 'App' connection definition parameter removed. Use 'ApplicationName' instead. Supported by SQL Server, SQL Anywhere, Oracle and PostgreSQL driver.
  2. ParamBindMode property is removed. Use Params.BindMode instead.
  3. Oracle NUMBER (no precision and scale) now is described as dtFmtBCD (38,38) instead of dtFmtBCD (38,0).
  4. RoundToScale option renamed to Round2Scale.
  5. Fetching All & Unidirectional is prohibited and will raise an exception.

Mac OS X and iOS support

In last 3 months we had a lot of customer requests in other areas, including TADTable and Live Data Window support. We decided to finish / implement those areas with the higher priority. And add Mac OS X and iOS support around Happy New 2012 Year.

v (21.12.11)

  + added: IB: Interbase v 6-7 support
  + added: FB: Firebird v 3 support, including packaged procedures, PSQL functions, identity columns, BOOLEAN data type, etc
  + added: FB: "DROP DATABASE" support through ADScript and DropDatabase connection parameter
  + added: FB: COMPUTED BY columns support
  + added: FB: TADIBService.SqlRoleName property
  + added: PgSQL: PostgreSQL v 9 support, including named parameters and anonymous blocks
  + added: PgSQL: support for ENUM data type
  + added: ADS: Advantage v 8 and 9 support
  + added: ASA: SQL Anywhere v 12 support
  + added: SQLite: SQLite v 3.7.9 support
  + added: SQLite: TADSQLiteSecurity.Options with soSetLargeCache option
  + added: Phys: ApplicationName conn def parameter, allowing to identify the application. MSSQL and ASA "App" parameters are removed.
  + added: Phys: IADPhysConnectionMetadata.IsUnicode property returning True when connection is in Unicode mode
  + added: ADStoredProc: ExecFunc method to execute a stored function and return it value
  + added: ADConnection: AbortJob method allowing to cancel all running tasks on this connection
  + added: Stan: FormatOptions.StrsTrim2Len property
  + added: Stan: EADDBEngineException.ErrorCode property - shortcut to EADDBEngineException[0].ErrorCode
  + added: ADDataSet: new CopyDataSet options: coIndexesReset, coIndexesCopy, coConstraintsReset, coConstraintsCopy, coAggregatesReset, coAggregatesCopy, coRefresh
  + added: AddOn: ReportBuilder DADE
  + added: Samples: Oracle specific Samples\DBMS Specific\Oracle\BFile demo
  + added: Design Time: few property editors
  / changed: Lazarus / FPC: support updated to Lazarus and FPC 2.4.4
  / changed: Help: major cleanup and multiple extensions
  / changed: Phys: removed IADPhysCommand.ParamBindMode. Use Params.BindMode instead
  / changed: Phys: simplified CliHandle / SharedCliHandle usage. DLL Tx state is synchronized with host app, no need to set DriverID in DLL.
  / changed: Phys: Fetching All & Unidirectional is prohibited and will raise an exception
  / changed: Oracle: NUMBER (no precision and scale) now is described as dtFmtBCD (38,38) instead of dtFmtBCD (38,0)
  / changed: FormatOptions.StrsTrimToLen -> StrsTrim2Len, RoundToScale -> Round2Scale
  - fixed: ADConnection: GetTableNames, GetPackageNames, GetStoredProcNames, GetGeneratorNames does not use ACatalogName / ASchemaName to limit the list of objects
  - fixed: ADConnection: AfterCommit is never called
  - fixed: ADConnection: "assertion failed" when connection was losted before before Edit / Post call and OnRecover returned faFail
  - fixed: ADTransaction: AV is raised, when connection was losted in StartTransaction / Commit / Rollback and connection recovery was aborted
  - fixed: ADManager: memory leak when Application.Run is not called but DataModule with AnyDAC components is created
  - fixed: ADDataSet: does not fire OnUpdateRecord event, when there is no Adapter attached
  - fixed: ADDataSet: Insert / Post when CachedUpdates=True and not all records are fetched, ApplyUpdates may change the current position
  - fixed: ADDataSet: Insert / Cancel in a DBGrid may jump to the last record
  - fixed: ADDataSet: SourceEOF set incidentally to False after moving to top of dataset
  - fixed: ADDataSet: GotoNearest may locate prior to the correct record
  - fixed: ADDataSet: when UpdateOptions.EnableXxx is False, then exception with empty message is raised
  - fixed: ADDataSet: "assertion failed" in BookmarkValid after dataset records deletion
  - fixed: ADDataSet: "AnyDAC-400. Command updated [0] instead of [1] record" exception is not recorded into changes log at ApplyUpdates call
  - fixed: ADDataSet: AV in detail InfoPower grid
  - fixed: ADTable: multiple stability and performance issues. Reduced the number of the SQL queries sent by ADTable.
  - fixed: ADTable: after changing TableName, Field Editor / Add fields may raise "field does not exist"
  - fixed: ADTable: does not use LDV when UpdateOptions.KeyFields is specified
  - fixed: ADTable: fails to populate detail table, when master fields have a NULL value
  - fixed: ADTable: "bookmark not found" with InfoPower grid
  - fixed: ADTable: raises "bookmark not found" instead "bookmark key fields are incompatible"
  - fixed: ADTable: does not handle NULL values in master-detail relation and indexes columns
  - fixed: ADTable: after editing filtered ADTable record does not go away
  - fixed: ADMemTable: loading a ADMemTable saved file into ADQuery and ApplyUpdates on FB gives "Data too large for variable Xxx. Max len =[0]"
  - fixed: ADScript: fails to change AUTOCOMMIT setting without active connection
  - fixed: ADDataMove: "command text must be not empty" when moving to ADTable
  - fixed: Phys: when UpdateOptions.GeneratorName is set and DBMS does not support generators then "capability not supported" will be raised
  - fixed: Phys: "ADPhysManager shutdown timeout" is possible when IADStanAsyncExecutor is not linked
  - fixed: Phys: AV is possible when IADGUIxWaitCursor is not linked
  - fixed: Phys: FindParam(Position) may raise "List index out of bounds"
  - fixed: Phys: possible AV at application termination in ADManager.Close
  - fixed: Phys: possible AV when tracing is ON
  - fixed: Oracle: "index [SYS_ILXxxx] definition is not completed" when open a table with BLOB fields using TADTable
  - fixed: Oracle: ADStoredProc requires upper cased names
  - fixed: Oracle: fails to edit BFILE column value
  - fixed: Oracle: two DATE values with 1 sec difference are considered as equal, leading to TADTable "Duplicate row found on unique index"
  - fixed: ADS: AV when application is using both AnyDAC and Advantage native components
  - fixed: ADS: TADSTable was broken
  - fixed: ADS: fails to get metadata for dictionary based connection tables, when tables are stored in different than dictionary folder
  - fixed: ADS: mkForeignKeys - DELETE_RULE and UPDATE_RULE are misinterpreted
  - fixed: MSSQL: SQL_ERROR when INSERT into table with VARCHAR(MAX) fails with "UK violated"
  - fixed: MSSQL / ASA: "Invalid string or buffer length" with Array DML, where one parameter is BLOB and one of the cells is NULL
  - fixed: MSSQL: fails to connect using a password with ';' inside
  - fixed: MSSQL: the PRINT output includes a message with SQLState, ErrorCode, etc. Now includes only the message.
  - fixed: MySQL: AV in embedded server, when no EmbeddedArgs is specified
  - fixed: MySQL: fails to update record, when WHERE has ftFloat parameter
  - fixed: MySQL: places a shared instead of write lock in lpImmediate mode
  - fixed: MySQL: "table does not exists" on SELECT * FROM dual
  - fixed: FB: AV on TADIBSecurity.AddUser / DeleteUser calls
  - fixed: IB: AV is possible when using ftWideString parameters in non-Unicode Delphi
  - fixed: FB: pessimistic lock is released immediately in auto-commit mode with long result set
  - fixed: SQLite: fails to parse hh:mi:ss.z time value (expected zzz)
  - fixed: SQLite: TSQLiteLib.VersionStr is empty when static linking mode
  - fixed: SQLite: AV / memory leak is possible with dynamically linked library
  - fixed: SQLite: failed to detect invalid password for aes-ctr encrypted database
  - fixed: SQLite: "Invalid Floating Point Operation" exception possible on some operations
  - fixed: SQLite: invalid default value OpenMode=CreateUTF16
  - fixed: SQLite: character column with ROWID alias is recognised as dtInt64 [caROWID] and getting UnnamedN column name
  - fixed: SQLite: AV on reading exception SQL property in OnError event handler
  - fixed: SQLite: ADTable does not use ROWID in SELECT list, and produces non optimal update SQL commands for a table without PK
  - fixed: SQLite: incorrect BusyTimeout default value - 1s instead of 10s
  - fixed: SQLite: fails with AV on Sweep when uADStanAsync is not linked
  - fixed: MSAccess: fails to update BOOLEAN columns
  - fixed: ODBC: incompatibilities with ElevateDB ODBC driver
  - fixed: DataSnap: AV at Oracle stored procedure call with PL/SQL Table parameter
  - fixed: XE2 & MacOS: incompatibility with Update 2


Enjoy !
DA-SOFT Technologies Support Team