New in version 15.0.0
You can find information about existing projects upgrading in the article Upgrade project.
-
New features
-
Added
- 4446 unit tests.
- CDateTime can now be initialized both with local and UTC time depending on boolean constructor parameter local_time. It also got 3 new methods to convert to string:
asDateString()
, asDateTimeString()
and asTimeString()
.
- DbDate structure has got four more comparison operators
>
, >=
, <
, <=
.
- DbTime structure has got four more comparison operators
>
, >=
, <
, <=
.
- DbDateTime structure has got four more comparison operators
>
, >=
, <
, <=
. It has also got assignment (=
) operators and a few constructors.
- Feature handling methods to IApplication and all its implementations.
- Query builder and migration handling methods to IDb and all its implementations.
- IFeature interface and CFeature base class.
- TDbActiveQuery template class to work with Active Record models.
- TDbActiveRecord template class supposed to be a base class for Active Record models.
- TDbRelation template class used to add relations to Active Record models.
- CDbCondition class representing different conditions for query building.
- CDbDelete class responsible for high level representation of deleting from database operations.
- CDbInsert class responsible for high level representation of inserting into database operations.
- CDbUpdate class responsible for high level representation of updating database data operations.
- CDbQuery class responsible for high level representation of querying from database operations.
- CDbMigration base class responsible for high level representation of database structure changing operations.
- CDbMigrationColumn class responsible for high level description of database table column.
- CDbMigrationKey class responsible for high level description of database table keys and indices.
- CDbModel base class representing a model (not connected to database).
- DbOrder enumeration describing sorting order in queries.
- CDbQueryBuilderMySql class responsible for translation high level query objects into SQL for MySQL/MariaDB database engines.
- DbSchema helper class providing high level abstraction to fetch some additional information about tables and columns.
- CDbTransaction helper class providing high level abstraction and simple deal with transactions.
- CDbValidator base class providing common functionality of validators.
- IDbActiveRecord interface describing minimum required functionality from Active Record model.
- IDbAttribute interface describing minimum required functionality from Active Record model attribute.
- IDbMigration interface describing minimum required functionality from migration.
- IDbMigrationColumn interface describing minimum required functionality from migration column description.
- IDbMigrationKey interface describing minimum required functionality from migration key description.
- IDbQuery interface describing minimum required functionality from high level abstraction of database query.
- IDbQueryBuilder interface describing minimum required functionality from query builder.
- IDbRelation interface describing minimum required functionality from Active Record model relation.
- IDbValidator interface describing minimum required functionality from attribute validator.
-
Following exception classes used in migrations, query builders and active records:
- DbExceptionBuildQuery
- DbExceptionCreateStatement
- DbExceptionExecuteStatement
- DbExceptionNoAttributes
- DbExceptionNoColumnName
- DbExceptionNoConnection
- DbExceptionNoQueryBuilder
- DbExceptionNoResult
- DbExceptionNoStatement
- DbExceptionNoTableName
- DbExceptionQueryPrimaryKeys
- DbExceptionRevertNotImplemented
-
Following aliases used in migrations, query builders and active records:
- DbActiveRecordPrimaryKey
- DbCondition
- DbConditions
- DbOrderBy
- DbOrderByArray
- DbSet
-
Following validators:
- CDbValidatorBoolean
- CDbValidatorCompare
- CDbValidatorDate
- CDbValidatorDateTime
- CDbValidatorDefault
- CDbValidatorEmail
- CDbValidatorExists
- CDbValidatorMatch
- CDbValidatorNumber
- CDbValidatorRange
- CDbValidatorRequired
- CDbValidatorString
- CDbValidatorTime
- CDbValidatorTrim
- CDbValidatorUnique
- CDbValidatorUrl
-
Following utility functions to build conditions:
- db::Expression()
- db::Equals()
- db::NotEquals()
- db::Greater()
- db::GreaterEquals()
- db::Less()
- db::LessEquals()
- db::And()
- db::Or()
- db::Not()
- db::Between()
- db::NotBetween()
- db::In()
- db::NotIn()
- db::Like()
- db::NotLike()
- db::Exists()
- db::NotExists()
- db::expr()
- db::eqcc()
- db::eqcv()
- db::eqvc()
- db::eqvv()
- db::eqce()
- db::eqec()
- db::eqee()
- db::eqve()
- db::eqev()
- db::necc()
- db::necv()
- db::nevc()
- db::nevv()
- db::nece()
- db::neec()
- db::neee()
- db::neve()
- db::neev()
- db::gtcc()
- db::gtcv()
- db::gtvc()
- db::gtvv()
- db::gtce()
- db::gtec()
- db::gtee()
- db::gtve()
- db::gtev()
- db::gecc()
- db::gecv()
- db::gevc()
- db::gevv()
- db::gece()
- db::geec()
- db::geee()
- db::geve()
- db::geev()
- db::lscc()
- db::lscv()
- db::lsvc()
- db::lsvv()
- db::lsce()
- db::lsec()
- db::lsee()
- db::lsve()
- db::lsev()
- db::lecc()
- db::lecv()
- db::levc()
- db::levv()
- db::lece()
- db::leec()
- db::leee()
- db::leve()
- db::leev()
- db::a()
- db::o()
- db::n()
- db::btcсc()
- db::btcсv()
- db::btcсe()
- db::btcvc()
- db::btcvv()
- db::btcve()
- db::btcec()
- db::btcev()
- db::btcee()
- db::btvcc()
- db::btvcv()
- db::btvce()
- db::btvvc()
- db::btvvv()
- db::btvve()
- db::btvec()
- db::btvev()
- db::btvee()
- db::btecc()
- db::btecv()
- db::btece()
- db::btevc()
- db::btevv()
- db::bteve()
- db::bteec()
- db::bteev()
- db::bteee()
- db::nbcсc()
- db::nbcсv()
- db::nbcсe()
- db::nbcvc()
- db::nbcvv()
- db::nbcve()
- db::nbcec()
- db::nbcev()
- db::nbcee()
- db::nbvcc()
- db::nbvcv()
- db::nbvce()
- db::nbvvc()
- db::nbvvv()
- db::nbvve()
- db::nbvec()
- db::nbvev()
- db::nbvee()
- db::nbecc()
- db::nbecv()
- db::nbece()
- db::nbevc()
- db::nbevv()
- db::nbeve()
- db::nbeec()
- db::nbeev()
- db::nbeee()
- db::inc()
- db::inv()
- db::ine()
- db::nic()
- db::niv()
- db::nie()
- db::lkc()
- db::lkv()
- db::lke()
- db::nlc()
- db::nlv()
- db::nle()
- db::ex()
- db::ne()
-
Fixed
- Utility number conversion functions
StringTo*
convert now only entire string and throw exception if string was not converted completely (there are one or more characters left unused in conversion). Similarly, TryStringTo*
functions in such a case return false value.
-
Improved
- IReleasable and its implementation in CReleasable class now can handle multiple listeners.
- ReleasablePtr template has been improved to work with multiple copies referencing the same releasable object. Also new const operators
->
and *
have been added to the template class.
- DbValue has got constructors and assignment operators to work with
char*
and wchar_t*
arguments.
- DbValue has got
Convert()
method to convert it to a specified value type.
-
Removed
RegisterReleaseListener()
and UnregisterReleaseListener()
from IDbConnection interface and all its implementations as that methods are now a part of a base interface.
RegisterReleaseListener()
and UnregisterReleaseListener()
from IDbStatement interface and all its implementations as that methods are now a part of a base interface.