2012-04-29 20:52:25 +02:00
POCO Data Release Notes
2012-10-13 12:07:38 +02:00
POCO Data Library
2012-04-29 20:52:25 +02:00
2012-09-26 01:39:33 +02:00
!!!Release 1.5.0
2012-04-29 20:52:25 +02:00
2012-09-26 01:39:33 +02:00
The Data library has been available since the 1.2 release. For the 1.5.0 release, a few things have been changed in an incompatible way that requires changes
2012-04-29 20:52:25 +02:00
to existing code.
!!Summary of Changes
2012-10-13 11:07:34 +02:00
- Poco::Data::RowFormatter class for convenient output formatting.
- Stored procedures support (for databases and ODBC drivers that support it).
- Improved transaction support (for databases that support it).
2012-09-26 01:39:33 +02:00
- Bulk execution (for ODBC drivers that support it).
- Batch queries and multiple results (for databases and ODBC drivers that support it).
- Stored procedures/functions support (for databases that support it)
2012-10-13 11:07:34 +02:00
- New Poco::Data::SessionPoolContainer class.
2012-04-29 20:52:25 +02:00
!!Incompatible Changes and Possible Transition Issues
2012-09-26 01:39:33 +02:00
Keywords (use, into, limit, etc) now reside in Poco::Data::Keywords namespace.
2013-04-29 03:09:36 +02:00
!!!Release 1.5.2
!!Summary of Changes
- framework-wide refactoring to use SharedPtr-based garbage collection
!!Incompatible Changes and Possible Transition Issues
Internally, (Abstract)Binder, Extracion nas (where applicable) Preparator are garbage collected.
While old way of passing pointers to TypeHandler may still work, it is strongly recommended
to pass SharedPtr to handler functions, e.g. :
template <>
class TypeHandler<Person>
{
public:
static std::size_t size()
{
return 3;
}
static void bind(std::size_t pos, const Person& person, AbstractBinder::Ptr pBinder, AbstractBinder::Direction dir)
{
TypeHandler<std::string>::bind(pos++, person.name, pBinder, dir);
// ...
}
static void extract(std::size_t pos, Person& person, const Person& deflt, AbstractExtractor::Ptr pExtr)
{
TypeHandler<std::string>::extract(pos++, person.name, deflt.name, pExtr);
// ...
}
static void prepare(std::size_t pos, const Person& person, AbstractPreparator::Ptr pPrep)
{
TypeHandler<std::string>::prepare(pos++, person.name, pPrep);
// ...
}
};