Feature overview
Benefits
Aurelius brings all benefits an application can obtain from using an ORM
framework:
Productivity: Avoid complex SQL statements that can only be verified at runtime.
Code directly with objects.
It's basically something that prevents you from writing code like this:
-
Query1.Sql.TeText := 'SELECT I.ID AS INVOICE_ID, I.INVOICE_TYPE, I.INVOICE_NO, I.ISSUE_DATE, I.PRINT_DATE, ' +
-
'C.ID AS CUSTOMER_ID, C.CUSTOMER_NAME, C.SEX, C.BIRTHDAY, N.ID AS COUNTRY_ID, N.COUNTRY_NAME' +
-
'FROM INVOICE AS I INNER JOIN CUSTOMER AS C ON (C.ID = I.CUSTOMER_ID) ' +
-
'LEFT JOIN COUNTRY AS N ON (N.ID = C.COUNTRY_ID)' +
-
'WHERE I.ID = :INVOICE_ID;'
-
Query1.ParamByName('INVOICE_ID').AsInteger := 1;
-
Query1.Open;
-
ShowMessage(Format('Invoice No: %d, Customer: %s, Country: %s',
-
[Query1.FieldByName('INVOICE_NO').AsInteger,
-
Query1.FieldByName('CUSTOMER_NAME').AsString,
-
Query1.FieldByName('COUNTRY_NAME').AsString]));
anand instead write this:
-
Invoice := Manager1.Find<TInvoice>(1);
-
ShowMessage(Format('Invoice No: %d, Customer: %s, Country: %s',
-
[Invoice.InvoiceNo, Invoice.Customer.Name, Invoice.Customer.Country.N
Maintainability: Clearer business logic by dealing with objects, hiding all the
database-access layer.
Portability: Easily change the underlying database - all your business code
stays the same since they are just pure objects.
Feature details
Several database servers supported (MS SQL Server, Firebird, MySQL, DB2,
Interbase, Oracle,...)
Several database-access components supported (dbExpress, AnyDac,
SQLDirect, ADO, IBX,...)
Multi-platform solution - Win32, Win64, Mac OS X, VCL, FireMonkey
Saving, updating and loading of entity objects in an object-oriented way
TAureliusDataSet for easy and fast interfacing to DB-aware controls in
VCL
Queries - Powerful query API using criteria expressions, projections,
grouping, conditions and even logical operators in a LINQ-like approach
Inheritance mapping and polymorphism - map a full class hierarchy into
the database
Cross-database development - use a single Delphi code to target multiple
databases in a transparent way
Choose from classes-to-database approach (creating the database structure
from classes) or database-to-classes approach (creating classes source code from
database, using TMS Data Modeler )
Mapping directly in classes using custom attributes
Association mapping
Lifetime management of objects using object manager
Cached and identity-mapped objects
Automatic database structure generation
Nullable types support
Lazy loading for associations and blob fields
Allows logging of SQL commands
Allows mapping enumerated types to database values
Open architecture - easy extendable to use different component sets or
database servers
|
|
|
|