64 строки
1.9 KiB
Plaintext
64 строки
1.9 KiB
Plaintext
POCO Data Release Notes
|
|
POCO Data Library
|
|
|
|
!!!Release 1.5.0
|
|
|
|
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
|
|
to existing code.
|
|
|
|
!!Summary of Changes
|
|
|
|
- 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).
|
|
- 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)
|
|
- New Poco::Data::SessionPoolContainer class.
|
|
|
|
|
|
!!Incompatible Changes and Possible Transition Issues
|
|
|
|
Keywords (use, into, limit, etc) now reside in Poco::Data::Keywords namespace.
|
|
|
|
|
|
!!!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);
|
|
// ...
|
|
}
|
|
};
|