mirror of
				https://github.com/pocoproject/poco.git
				synced 2025-11-04 12:17:37 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			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);
 | 
						|
		// ...
 | 
						|
	}
 | 
						|
  };
 |