TMS Aurelius Changelog

What's new in TMS Aurelius 5.18.1.1

Jan 11, 2024
  • Fixed : TObjectManager.Replicate not working when one of the id fields of the entity being replicated is an enumeration. Ticket #22366.
  • Fixed : List item out of bounds in some cases where deleting an entity which contains a list of detail items that are also supposed to be deleted due to cascading configuration. Ticket #22156.

New in TMS Aurelius 5.17 (Nov 9, 2023)

  • New : Delphi 12 support.

New in TMS Aurelius 5.16 (Oct 12, 2023)

  • Improved : Support for ARM64 macOS and ARM64 iOS Simulator platforms.
  • Improved : Small memory optimization when saving blobs, Aurelius is now using less memory to save them.
  • Improved : Select projections and fetch eager information now work for many-valued associations. This allows you to improve performance when retrieving lists (many-valued associations), by selecting a subset of the properties to be returned.
  • Improved : RegularExpression attribute now accepts a parameter ValidateEmptyStrings. If True, empty strings will not be automatically considered valid and will have to pass the regular expression test.
  • Improved : Dictionary associations now provide the Alias property which contains the full prefixed association name. Useful to be used with the FetchEager method. Request #21312.
  • Fixed : Cascade was not being applied in polymorphic associations at the second deep level. For example, Parent -> Child -> SubChild. If SubChild is a class hierarchy and might have descendant classes, the cascades were not being applied for SubChild associations that were declared in descendant classes. Thanks to Dr. Holger Flick for reporting.
  • Fixed : AureliusDictionaryGenerator demo was not compiling due to using wrong dictionary generator class name. Thanks to Cesar Romero for reporting.

New in TMS Aurelius 5.15 (Jul 4, 2023)

  • New : support for {$alias} in SQL conditions (Filter).
  • Improved : OnSQLExecuting event now allows you to change the SQL being executed, giving you low-level flexibility to fine tune the generated SQL.
  • Improved : IgnoreVersionControl protected property was being ignored. Ticket #20746.
  • Fixed : SmartGuid id generator causing duplicated ids on non-Windows platforms. Ticket #20581.
  • Fixed : Range check error when trying to import entities from database at design-time.
  • Fixed : Automatic aliasing not working when aliased properties were being used in SQL functions like Upper or Lower. Ticket #20589

New in TMS Aurelius 5.14 (Feb 24, 2023)

  • New : ItemRequired, ItemMinLength, ItemMaxLength validation attributes allow validate items in lists and arrays.
  • Improved : New virtual method TCustomAureliusDataset.AddFieldDefsFromRttiInfo. Ticket #20281.
  • Improved : Better error message when a mapped class member does not have RTTI info. Ticket #20318.
  • Fixed : Concurrent version control was failing when using cached updates if the same record was being modified two or more times. Ticket #20134.
  • Fixed : Calculated fields not being updated after a call to RefreshRecord. Ticket #20132

New in TMS Aurelius 5.11 (Sep 30, 2022)

  • New: Associations now can be used in abstract entities.
  • Improved: Design-time components were greyed out in component palette if current platform was different than Win32.

New in TMS Aurelius 5.10 (Aug 24, 2022)

  • Fixed : Access Violation when using SubCriteria in Aurelius queries (regression). See https://support.tmssoftware.com/t/exception-with-latest-version/18897

New in TMS Aurelius 5.9 (Jul 7, 2022)

  • New : You can now use property projections when retrieving regular entities. This will allow you to optimize the queries by limiting the properties to be retrieved for the entities.
  • New : Automapping attribute now can receive an engine class that allows customizing automatic naming.
  • Fixed : Typo in design-time TAureliusConnection dialog.
  • Fixed : TFetchMode.Eager now forces eager loading of many-valued associations as well.

New in TMS Aurelius 5.8 (Mar 1, 2022)

  • Improved : BREAKING CHANGE: Range and MinLength validators don't fail anymore if value is empty.

New in TMS Aurelius 5.7 (Feb 3, 2022)

  • Improved : When an entity is deleted using Manager.Remove, its cascaded many-valued association lists are also cleared.
  • Improved : Now a custom id generator can be defined for composite ids.
  • Improved : Most database drivers now implement IDBResultSet3 interface, which provides the FieldCount method.
  • Improved : Better error messages for mapping errors, it's now informing the offending entity class.
  • Improved : Better error message when trying to use associated entities not belonging to the model.
  • Improved : Better error message when trying to use an entity with no Id attribute configured.
  • Fixed : Unique key names were being generated in Delphi 11 with different values then previous Delphi versions.
  • Fixed : Still range check errors (Integer overflow) was being raised in TAureliusDataset in some situations when the dataset had a high number of fields.
  • Fixed : MaxLength validator failing for null string values.

New in TMS Aurelius 5.6 (Feb 3, 2022)

  • New : Auto alias mechanism allows querying by associated objects without the need to use CreateAlias.
  • New : Aurelius dictionary validator makes sure your dictionary is never out of sync with the real entity classes, ensuring that you safely write queries that won't crash at runtime.
  • New : Aurelius dictionary now can be generated in many ways: from existing databases, from existing entity classes in your application, or even from external command-line tool.
  • New : Aurelius dictionary allows you to write queries in a much easier and safe way, even with associated objects.
  • Improved : Using global filter in a descendant entity class (using an inheritance strategy) is not supported and now an exception is raised if you try to use it.
  • Fixed : Very specific error happening when a global filter was applied to an associated object, and such object is a descendant class in a joined-table hierarchy. For example, suppose you are querying for TInvoice entities. Such TInvoice entity has an association Customer of type TSpecificCustomer. Such TSpecificCustomer is part of a joined-table hierarchy and is not the root class, but a descendant one. The bug would happen if there is a global filter declared specifically in TSpecificCustomer class, and such filter is enabled. Aurelius would generate an invalid SQL statement.
  • Fixed : Integer overflow when opening TAureliusDataset with too many fields.

New in TMS Aurelius 5.5 (Feb 3, 2022)

  • New : Delphi 11 support.

New in TMS Aurelius 4.18 (Sep 18, 2020)

  • Improved : The way to use internal classes TInsertCommand and TUpdateCommand has been modified.
  • Improved : Support for Boolean fields in ElevateDB databases.
  • Improved : Overall performance increase, with Aurelius now being up twice faster, specially in insert and update operations.
  • Improved : Better handling of transactions when using UIB components. Now UIB driver automatically opens a transaction to perform SQL statements, if no transaction is active.
  • Improved : AnyDAC support is deprecated. AnyDAC was the predecessor of FireDAC, and we considered it doesn't make sense anymore to keep supporting it.
  • Fixed : TAureliusDataset now returns correct value when reading OldValue property of dataset fields.
  • Fixed : Direct Oracle Access driver now works fine with Unicode memo fields (NCLOB).
  • Fixed : Access Violation (instead of a better error message) when the Id mapping attribute makes a reference to a class member that doesn't exist.
  • Fixed : AbsoluteDB boolean literal regression. Value projections of type boolean, like "Linq.Value(False)" was broken.

New in TMS Aurelius 4.17.2 (Aug 6, 2020)

  • Fixed : Regression bug - wrong behavior when the MappedBy parameter of a ManyValuedAssociation attribute references an association which is part of the id of the associated class. For example, in the declaration [ManyValuedAssociation([], [], 'FParent')], the FParent is part of the Id of TChild class. Fixed in 4.17.2, regression introduced in 4.17.

New in TMS Aurelius 4.17 (Aug 4, 2020)

  • New : TRecordCountMode.FetchAll option in TAureliusDataset. Allows you to force dataset to load (fetch) all records to retrieve the correct value for RecordCount property.
  • Improved : Several internal classes were refactored, bringing an average 10-20% performance increase in database operations (retrieve and update data).

New in TMS Aurelius 4.15 (Jun 5, 2020)

  • Fixed : Batch updates using SQLite native driver was not updating field values when parameter was null.

New in TMS Aurelius 4.14 (May 27, 2020)

  • New : TObjectManager.CachedCount property. Provides information about how many actions are cached to be applied when ApplyUpdates is called.
  • New : Support for Delphi 10.4 Sydney.
  • New : Batch Updates mechanism allows inserting, updating or deleting an arbitrary number of database records using a single SQL statement, improving peformance in such cases. TObjectManager now introduces a BatchSize property, which is used in conjunction with cached updates mechanism. When BatchSize is greater than 1, several similar cached actions are merged together in a single SQL statement, improving performance by reducing communication with the database.

New in TMS Aurelius 4.13 (Apr 21, 2020)

  • Fixed : Sporadic Assert failure in MSSQL native driver.

New in TMS Aurelius 4.10 (Dec 4, 2019)

  • New : Support for Android 64-bit platform (Delphi 10.3.3 Rio).
  • Fixed : Using Literal projection with date time values in some databases (like SQL Server) failed in Finish systems and any other language that set the time separator to a character different than ":".
  • Fixed : Still an extra fix for the AV/Invalid Pointer Operation issue described in version 4.9.
  • Fixed : Setting TAureliusDataset.RecNo had no effect in some situations (not correctly changing the current record).

New in TMS Aurelius 4.9 (Dec 4, 2019)

  • New : "Driver" parameter in MSSQL native driver allows to explicitly define which driver to use to connect. By default the most recent installed driver is automatically used, but this feaure is useful for testing purposes, or if you have a specific technical reason to use a specific driver, or an older version.
  • Improved : In TAureliusDataset import field definition dialog you can now order the list of available by unit name. Just click the column name in the list view and the list will be ordered, either by unit name or class name.
  • Fixed : Sporadic Access Violation or Invalid Pointer Operation when using object manager to retrieve entities that inherit from TInterfacedObject or any other class that implement interface reference counting. The error was more likely to happen when compiling for Win64 platforms. This issue was introduced in TMS Aurelius 4.5. If you are using any version from 4.5 until 4.8 and if your have any Aurelius entity that inherits from TInterfacedObject (or any other class that implement automatic reference counting), it's strongly recommended that you update to 4.9 version or above.

New in TMS Aurelius 4.8 (Dec 4, 2019)

  • New : Where attribute allows custom filtering when retrieving entities and many-valued associations. You can now add a Where attribute to an entity class that provides an additional SQL expression to be added to the WHERE clause of SELECT statement used to retrieve the entities. One use case for this is soft delete: you can add an SQL clause like "{Deleted} = 'T", for example. This will prevent such entities to be retrieved if the Deleted field in the database is "T". The Where attribute can also be used in a many-valued association to filter records retrieved in the list. You could have, for example, two TAddress lists, one for valid addresses and another for invalid ones, properly filtering those using the Where attribute.
  • New : TAureliusModelEvents component for setting mapping events using a RAD approach. Using events in Aurelius is now easier by using TAureliusModelEvents component. Simply drop it in a form and set the desired event handler(s) using the object inspector. It's as simple as that.
  • New : TAureliusManager component for persisting objects using a RAD approach. TAureliusManager component allows an even easier way to persist Aurelius entities. It encapsulates TObjectManager in a RAD way: just drop the component in the form, associate with a TAureliusConnection component and you are ready to go.
  • New : TAureliusDataset.ReadOnly property. You can set ReadOnly property of TAureliusDataset to true to easily put the dataset in read-only mode with a single line. This prevent data for being edited in data-aware controls.
  • New : TAureliusDBSchema component for updating database schema using a RAD approach. It's now easier than ever to create or update your database structure (tables and fields). Just drop a TAureliusDBSchema component in the form, associate it with a TAureliusConnection component and use one of this methods, like UpdateDatabase. It automatically instantiates and encapsulates the TDatabaseManager class that creates and validates database structure.
  • Improved : Design-time field loader form now persists its size and position. When using TAureliusDataset at design-time you can right-click and choose "Load field definitions..." to open a dialog form that allows you to choose a BPL package and load fields from entities. If you position or resize that dialog form, its size and position will be persisted: if you close and reopen the dialog at later time, last size and position will be restored.
  • Fixed : SQL error when mapping fields to expressions like field arrays "fieldname[index]". For example, you can now map to Postgres array fields, using a mapping like "[Column('fieldname[1]', [])]".

New in TMS Aurelius 4.7 (Jun 20, 2019)

  • Fixed : TAureliusDataset.RecNo property not properly working with filtered dataset.
  • Fixed : TAureliusDataset displaying incorrect data when dataset is filtered and some data modification is performed (like record insert or delete).
  • Fixed : Error when inserting entities belonging to a joined-table inheritance hierarchy, when the Id in the ancestor class was declared with TColumnProp.NoInsert.

New in TMS Aurelius 4.4 (Mar 25, 2019)

  • New : TGlobalConfigs.GetInstance.UseTransactionsInDBManager property provides a global way to control the UseTransactions property in TDatabaseManager.
  • New : TDatabaseManager.UseTransactions property allows automatically start/commit of transactions when executing DDL statements.
  • New : Support for SAP SQL Anywhere database - former Sybase SQL Anywhere, Adaptative SQL Anywhere (ASA)
  • New : Support for NativeDB components (adapter for TASASession).
  • Improved : OldColumnValues in OnUpdating/OnUpdated events now includes column values for proxies even when they were not yet loaded.
  • Fixed : Workaround a bug in Delphi Rio causing error in deserialization using TDataSnapJsonDeserializer.
  • Fixed : TAureliusConnection and UniDac adapter causing "one of the connections in the transaction is not active" error.
  • Fixed : It's now possible to have two Aurelius entity class with same name in the same model (e.g, TCity in Unit1 and TCity in Unit2).
  • Fixed : Entity generator raising an error when trying to extract schema information from PostgreSQL 11.
  • Fixed : Entity generator not working with "INTERBASE" dialect.

New in TMS Aurelius 4.3 (Mar 25, 2019)

  • Fixed : TAureliusConnection failing to create a cloned connection for ElevateDB connections.
  • Fixed : Entity generation from databases using TAureliusConnection failing on MySQL 8 with error "table 'mysql.proc' doesnt exist".

New in TMS Aurelius 4.2 (Mar 25, 2019)

  • New : Support for Delphi 10.3 Rio.
  • Improved : AllButRemove is default option for association cascade type when generating entities from database.
  • Fixed : TDatabaseManager.ValidateDatabase reporting wrong data type for wide memo fields in DB2.
  • Fixed : DBIndexes not being created together when a new table was created.

New in TMS Aurelius 4.1.1 (Nov 27, 2018)

  • Fixed : Error when importing Firebird3 boolean fields even using FIREBIRD3 dialect, when using TAureliusConnection "Generate database entities" design-time option.

New in TMS Aurelius 4.1 (Nov 1, 2018)

  • New : TObjectManager.HasChanges allows checking if an specific or all objects in manager have been modified.
  • New : MSSQL driver LoginTimeout parameter.
  • Improved : TCriteriaResult objects are now editable from the TAureliusDataset.
  • Improved : TAureliusDataset.ForceWideTypes forces dataset to create wide string types (widestring, widememo, widefixedchar) for text-based fields.
  • Improved : TAureliusConnection design-time settings dialog now responds to Enter and Esc keys.
  • Improved : Better error message when trying to use unsupported field/property types in mapped classes.
  • Fixed : TAureliusDataset now creates memo/widememo fields when the TBlob property is flagged with DBTypeMemo/DBTypeWideMemo attributes (previously it was blob).
  • Fixed : Rare Int64 convert error when importing entities from a MySQL database using a LONGBLOB data type.
  • Fixed : JwtAuthDemo memory leak when canceling the insertion of a new record.
  • Fixed : Entity generator now adds DBTypeWideMemo for field types in database that are explicit unicode memo fields (NText, NVarchar(max), etc.).
  • Fixed : Blob fields not marked as "loaded" when read from AureliusDataset, causing a single lazy blob to be retrieved multiple times when navigating through the dataset.
  • Fixed : Better handling of memo fields in TAureliusDataset - TBlob unicode memo raw data is now converted to ANSI data if field type is ftMemo.

New in TMS Aurelius 4.0 (Sep 20, 2018)

  • New : TAureliusConnection component. It provides design-time configuration and test of database connection.
  • New : Native database drivers for direct database connection. Native Microsoft SQL Server connection (TMSSQLConnection) is now supported.
  • New : Generate TMS Aurelius entities from existing database directly from the IDE.
  • Improved : Dropped Delphi 2010 and XE support. TMS Aurelius and BCL now supports Delphi XE2 and up.
  • Improved : Aurelius connection wizard updated to allow choosing the new native drivers.
  • Fixed : Icon in IDE splash screen not appearing.

New in TMS Aurelius 3.13 (Jul 11, 2018)

  • New : TObjectManager.DeferDestruction property. Such property prevents immediate destruction of entities removed with Remove method, deferring their destruction to the moment when object manager is destroyed.
  • New : TAureliusDataset.FieldInclusions property. This provides more control on what types of fields will be automatically created by Aurelius Dataset. You can choose not to automatically create lists (dataset fields) or objects (entity fields), for example.
  • Improved : TCriteria FindByAlias and FindByPath methods allows finding TSubCriteria objects created using CreateAlias or SubCriteria methods.
  • Improved : Proxy type now sets internal proxied value to nil when DestroyValue is called.
  • Improved : Aurelius DBConnection Wizard using FireDAC now adds FireDac.DApt unit automatically to uses clause.
  • Fixed : Entity classes in a single-table hierarchy without DiscriminatorColumn attribute was causing errors when loading entities. Now such classes are being ignored by Aurelius.
  • Fixed : DiscriminatorColumn now has default size of 0 (instead of 30) when DiscriminatorType is dtInteger.
  • Fixed : DiscriminatorColumn attribute now ignores size parameter (when updating database schema) if discriminator type is not string.
  • Fixed : Associations/proxies not loading correctly for inherited classes in a single-table hierarchy.

New in TMS Aurelius 3.12 (May 8, 2018)

  • New : THttpSysServer.KeepHostInUrlPrefixes property.
  • Improved : Windows HTTP client now decompresses deflate/gzip responses automatically at OS level (Windows 8.1 and up).
  • Improved : THttpClient automatically decompresses responses encoded with gzip or deflate.
  • Improved : Documentation update with example on how to ignore self-signed certificates when using HTTP client on Windows.
  • Fixed : THttpResponse.ContentLength returning wrong value on Windows when response body size was greater than 2Gb.

New in TMS Aurelius 3.11 (Mar 5, 2018)

  • New : TCriteria.Find.Open now can be iterated using for..in.
  • New : LINQ SqlFunction and ISQLGenerator.RegisterFunction allows creating custom SQL functions to be used in LINQ.
  • New : ILike operator in LINQ. You can now also use ILike operator in Linq expressions.
  • Improved : TCriteria.Open now returns ICriteriaCursor instead of TCriteriaCursor. This is a minor breaking change.
  • Improved : TAureliusDataset is not "Sequenced" anymore when RecordCount mode is set to Retrieve.
  • Improved : TAbstractSQLGenerator.EnforceAliasMaxLength allows avoiding issues when field names in database are at the maximum size and might cause "field not found" errors when executing LINQ queries.
  • Improved : No more UPDATE SQL statements executed when inserting child (many-valued association) items.
  • Improved : More detailed info when exception EAssociationReferencesTransientObject is raised ("Association references a transient object").
  • Fixed : Aurelius Dataset fields not notifying visual controls when subproperties were being automatically updated due to SyncSubprops behavior.

New in TMS Aurelius 2.2.0.0 (Oct 4, 2013)

  • New : TCriteria.AutoDestroy property allows keeping TCriteria in memory after objects are retrieved
  • New : RAD Studio XE5 support
  • New : Increased querying capabilities with newTExpression/TLinq methods that allow comparing a projection to any other projection
  • New : Connection driver for XData RemoteDB
  • Fixed : Wrong default values when inserting a record in XE4 with TAureliusDataset
  • Fixed : IBObjects driver now correctly performing statements using IB_Session object specified in the TIBODatabase
  • Fixed : Exception not being raised when calling TClassHierarchyExplorer.GetAllSubClasses
  • Fixed : Error when deserializing a Json array representing an existing object list, when class member was a proxy

New in TMS Aurelius 2.1.0.0 (Jun 3, 2013)

  • New : RAD Studio XE4 support
  • New : Full iOS support, including native access to SQLite database
  • Fixed : Wrong example in documentation about lazy-loading associations in distributed applications (proxy loader)
  • Fixed : Schema validation example code in manual
  • Fixed : Not possible to create unique keys referencing columns declared using ForeignJoinColumn attributes
  • Fixed : Merge cascades not being applied correctly
  • Fixed : Error using transactions with IBExpress, IBObjects and DirectOracleAccess components
  • Fixed : Access violation when loading package multiple times in TAureliusDataset design-time editor

New in TMS Aurelius 2.0.0.0 (Mar 30, 2013)

  • New : Update Database Schema feature (TDatabaseManager.UpdateDatabase method)
  • New : TSQLiteNativeConnectionAdapter.EnableForeignKeys and DisableForeignKeys methods allow control when foreign keys are enforced in SQLite connections
  • New : TMappingSetup.MappedClasses property allows defining different class entities for different setups
  • New : TDatabaseManager.SQLExecutionEnabled property allows generating scripts to update/create/drop database schema without effectively execute statements
  • New : Detailed Database Schema analysis when updating/validating/creating
  • New : Database Schema validation feature (TDatabaseManager.ValidateDatabase method)
  • Improved : TGlobalConfig.AutoSearchMappedClasses property removed
  • Fixed : Conversion error in TAureliusDataset entity fields when using live bindings

New in TMS Aurelius 1.9.0.0 (Feb 22, 2013)

  • New : Support for Unified Interbase (UIB) components
  • Improved : Statements to generate MS SQL Server database structure now explicitly declare NULL constraint when creating fields
  • Improved : Specific conversion issue when retrieving TGuid value from UNIQUEIDENTIFIER fields, using SQL-Direct with server type set to stSQLServer
  • Improved : Retrieving objects (Find) with null id in database now raises an exception instead of just returning a nil instance.
  • Improved : Exception when setting TAureliusDataset.Filtered := true when dataset is active
  • Improved : Error when flushing objects with many-valued-association declared before id fields and which foreign key field had same name as id field
  • Improved : Cascade not being applied when flushing objects with single-valued associations pointing to unmanaged (transient) instances
  • Improved : Auto mapping now automatically includes TColumnProp.NoUpdate in ID column properties
  • Fixed : Uses clause in Direct Oracle Access driver included a wrong unit name
  • Fixed : Error when deserializing Nullable types using JSON deserializer

New in TMS Aurelius 1.8.0.0 (Jan 24, 2013)

  • New : Support for Direct Oracle Access components
  • Improved : Updated source code to work correctly when recompiling with Assertions off
  • Fixed : Rare memory leak when using some specific compiler settings (Optimizations=On)
  • Fixed : Memory leak in "Getting Started" demo
  • Fixed : Error using TAureliusDataset.Locate with nullable string fields when there were null fields in dataset

New in TMS Aurelius 1.7.0.0 (Nov 29, 2012)

  • New : Full JSON support makes it easy to build distributed applications
  • New : Enumeration field as string now possible in TAureliusDataset by using field name suffix ".EnumName"
  • Improved : TGlobalConfigs.AutoMappingDefaultCascade now split in two different properties for Association and ManyValuedAssociation (breaking change)
  • Improved : IdEq method in TLinq
  • Fixed : TGuid properties and fields were causing occasional errors in Flush method calls

New in TMS Aurelius 1.6.0.0 (Sep 21, 2012)

  • New : TCriteria.RemovingDuplicatedEntities allows removing duplicated objects from result list
  • New : Support for FIBPlus components
  • New : Properties Count and PropNames in TCriteriaResult object provides additional info about retrieved projections
  • New : Delphi/C++Builder XE3 support
  • Improved : Possibility to use descendants of TList/TObjectList for many-valued associations
  • Improved : Non-generic TObjectManager.Find method overload accepting a class type as parameter
  • Improved : Better support for other date types (string and julian) in SQLite database
  • Fixed : Memory leak when creating a default TMappingExplorer
  • Fixed : Error when saving collection items belonging to a joined-tables class hierarchy
  • Fixed : Cascade removal was not removing lazy-loaded associations if the associations were not loaded

New in TMS Aurelius 1.5.0.0 (Jun 22, 2012)

  • New : TExpression.Sql and TProjections.Sql methods for adding custom SQL syntax to a query, increasing flexibility in query construction
  • New : Support for properties/fields of type TGuid, which are now mapped to database Guid/Uniqueidentifier fields (if supported by database)
  • New : Support for Absolute Database
  • New : Guid, Uuid38, Uuid36 and Uuid32 identifier generators allow client-side automatic generation of GUID and/or string identifiers

New in TMS Aurelius 1.4 (May 8, 2012)

  • New : Dynamic properties allows mapping to database columns at runtime connection
  • Improved : TCriteriaResult objects supported in TAureliusDataset
  • Improved : TCriteriaResult object can retrieved projected values by projection alias
  • Improved : TAureliusDataset.Post method now saves object if it's not persisted, even in edit mode
  • Improved : Better validation of MappedBy parameter in ManyValuedAssociation attribute
  • Fixed : Manual Quick Start example updated with correct code
  • Fixed : Issue with association as part of composite id when multiple associations are used in cascaded objects
  • Fixed : Automapping was not correctly defining table name in some situations with inherited classes

New in TMS Aurelius 1.3 (Mar 13, 2012)

  • New : TCriteria.Open method allows returning a cursor for fetching objects on demand
  • New : TBlob.LoadFromStream and SaveToStream methods for improved blob manipulation
  • New : TAureliusDataset.InternalList property allows access to the internal object list
  • New : Support for ElevateDB database server
  • New : Paging query results now supported by using new TCriteria methods Skip and Take
  • New : Paged fetch-on-demand using TAureliusDataset.SetSourceCriteria allows fetching TDataset records on demand without keeping an open database connection
  • New : Fetch-on-demand support on TAureliusDataset, by using SetSourceCursor method
  • New : "Not" operator supported in TLinq expressions and "Not_" method in TExpression
  • Improved : TObjectManager.Find method introduced as an alias for CreateCriteria method for query creation
  • Improved : TCriteria.UniqueResult returns the unique object even if the object is returned in more than one row (duplicated rows of same object)
  • Improved : TCriteria.UniqueResult now returns nil if no objects are returned
  • Improved : NexusDB through UniDac components now supported

New in TMS Aurelius 1.2 (Feb 29, 2012)

  • New : Support for UniDac components
  • New : Fully documented TAureliusDataset component for visual binding objects to data-aware controls
  • Improved : IBObjects adapter now can adapt any TIB_Connection component, not only TIBODatabase ones
  • Improved : Better exception messages for convert error when load entity property values from database
  • Improved : Better error handling with more detailed and typed exceptions being raised at key points, especially value conversion routines
  • Fixed : Memory leak in MusicLibrary demo
  • Fixed : Issue with lazy-loaded proxies using non-id columns as foreign keys
  • Fixed : Issue with SQL statement when using more than 26 eager-loading associations
  • Fixed : Issue when selecting objects with non-required associations and required sub-associations
  • Fixed : Automapping in a subclass in a single-table hierarchy caused issues when creating database schema
  • Fixed : Adding Automapping attribute was not requiring Entity attribute to be declared

New in TMS Aurelius 1.1 (Feb 10, 2012)

  • New : TObjectDataset preview (for registered users only)
  • New : Support for IBObjects components
  • Improved : MusicLibrary demo refactored to use best-designed controllers
  • Improved : Access Violation replaced by descriptive error message when SQL dialect was not found for connection
  • Fixed : Registered version installer sometimes not correctly detecting XE/XE2 installation
  • Fixed : Memory leak is some specific situations with automapped associations
  • Fixed : Memory leak in MusicLibrary demo
  • Fixed : Issue with automapping self-referenced associations
  • Fixed : Default value of OwnsObjects property in TObjectManager changed from false to true (as stated by documentation)
  • Fixed : Component adapter was ignoring explicitly specified SQL dialect