diff --git a/ActiveRecord/Compiler/Compiler.progen b/ActiveRecord/Compiler/Compiler.progen index 14d6ad151..624f293a6 100644 --- a/ActiveRecord/Compiler/Compiler.progen +++ b/ActiveRecord/Compiler/Compiler.progen @@ -12,5 +12,5 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.linker.dependencies = +vc.project.linker.dependencies = vc.solution.create = true diff --git a/ApacheConnector/doc/ApacheConnectorUserGuide.page b/ApacheConnector/doc/ApacheConnectorUserGuide.page index b045dc54e..7c3162221 100644 --- a/ApacheConnector/doc/ApacheConnectorUserGuide.page +++ b/ApacheConnector/doc/ApacheConnectorUserGuide.page @@ -16,7 +16,7 @@ file (usually <[httpd.conf]>): LoadModule poco_module modules/mod_pocod.so ---- - + !!!Configuring ApacheConnector ApacheConnector must be able to find shared libraries containing request handler, as well as optional configuration files. ApacheConnector provides an Poco::Util::Application class @@ -30,7 +30,7 @@ is used in the Apache configuration file: AddPocoRequestHandler ... ---- - + The first argument specifies the name of the request handler factory class. The second argument contains the path of the shared library containing the request handler. The third (and optionally following) argument(s) specify the URI paths handled by the @@ -38,7 +38,7 @@ request handler. For example: AddPocoRequestHandler TimeRequestHandlerFactory p:/Poco/ApacheConnector/samples/TimeServer/bin/TimeServerd.dll /time ---- - + loads the TimeRequestHandlerFactory from TimeServerd.dll. Whenever a request for a URI starting with "/time" is sent by a client, this request will be handled by the TimeRequestHandler. @@ -76,8 +76,8 @@ Following is a sample for a request handler implementation. The complete sample #include "Poco/DateTimeFormatter.h" #include "Poco/DateTimeFormat.h" #include "Poco/ClassLibrary.h" - - + + using Poco::Net::HTTPRequestHandler; using Poco::Net::HTTPRequestHandlerFactory; using Poco::Net::HTTPServerRequest; @@ -85,24 +85,24 @@ Following is a sample for a request handler implementation. The complete sample using Poco::Timestamp; using Poco::DateTimeFormatter; using Poco::DateTimeFormat; - - + + class TimeRequestHandler: public HTTPRequestHandler /// Return a HTML document with the current date and time. { public: - TimeRequestHandler() + TimeRequestHandler() { } - + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) { Timestamp now; std::string dt(DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT)); - + response.setChunkedTransferEncoding(true); response.setContentType("text/html"); - + std::ostream& ostr = response.send(); ostr << "TimeServer powered by POCO ApacheConnector"; ostr << ""; @@ -111,22 +111,22 @@ Following is a sample for a request handler implementation. The complete sample ostr << "

"; } }; - - + + class TimeRequestHandlerFactory: public HTTPRequestHandlerFactory { public: TimeRequestHandlerFactory() { } - + HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) { return new TimeRequestHandler; } }; - - + + POCO_BEGIN_MANIFEST(HTTPRequestHandlerFactory) POCO_EXPORT_CLASS(TimeRequestHandlerFactory) POCO_END_MANIFEST diff --git a/ApacheConnector/include/ApacheConnector.h b/ApacheConnector/include/ApacheConnector.h index 55a6cf3f3..1de4130ff 100644 --- a/ApacheConnector/include/ApacheConnector.h +++ b/ApacheConnector/include/ApacheConnector.h @@ -25,7 +25,7 @@ class ApacheRequestRec public: ApacheRequestRec(request_rec* _pRec); /// Creates the ApacheRequestRec; - + bool haveRequestBody(); /// Returns true if the request contains a body. diff --git a/ApacheConnector/include/ApacheRequestHandlerFactory.h b/ApacheConnector/include/ApacheRequestHandlerFactory.h index 7e071aab5..f24e86879 100644 --- a/ApacheConnector/include/ApacheRequestHandlerFactory.h +++ b/ApacheConnector/include/ApacheRequestHandlerFactory.h @@ -45,7 +45,7 @@ public: private: typedef std::map RequestHandlerFactories; - + RequestHandlerFactories _requestHandlers; Poco::ClassLoader _loader; Poco::FastMutex _mutex; diff --git a/ApacheConnector/include/ApacheServerRequest.h b/ApacheConnector/include/ApacheServerRequest.h index 825d6b734..6dd9b5c60 100644 --- a/ApacheConnector/include/ApacheServerRequest.h +++ b/ApacheConnector/include/ApacheServerRequest.h @@ -25,10 +25,10 @@ class ApacheServerRequest: public Poco::Net::HTTPServerRequest { public: ApacheServerRequest( - ApacheRequestRec* pApacheRequest, - const char* serverName, - int serverPort, - const char* clientName, + ApacheRequestRec* pApacheRequest, + const char* serverName, + int serverPort, + const char* clientName, int clientPort); /// Creates a new ApacheServerRequest. @@ -73,7 +73,7 @@ private: ApacheInputStream* _pStream; Poco::Net::SocketAddress _serverAddress; Poco::Net::SocketAddress _clientAddress; - + friend class ApacheServerResponse; }; @@ -84,7 +84,7 @@ private: inline std::istream& ApacheServerRequest::stream() { poco_check_ptr (_pStream); - + return *_pStream; } diff --git a/ApacheConnector/include/ApacheServerResponse.h b/ApacheConnector/include/ApacheServerResponse.h index 5b110dea1..ea03caec8 100644 --- a/ApacheConnector/include/ApacheServerResponse.h +++ b/ApacheConnector/include/ApacheServerResponse.h @@ -42,7 +42,7 @@ public: void sendContinue(); /// Sends a 100 Continue response to the /// client. - + void sendErrorResponse(int status); /// Sends an error response with the given /// status back to the client. @@ -55,20 +55,20 @@ public: /// The returned stream is valid until the response /// object is destroyed. /// - /// Must not be called after sendFile(), sendBuffer() + /// Must not be called after sendFile(), sendBuffer() /// or redirect() has been called. - + void sendFile(const std::string& path, const std::string& mediaType); /// Sends the response header to the client, followed /// by the content of the given file. /// - /// Must not be called after send(), sendBuffer() + /// Must not be called after send(), sendBuffer() /// or redirect() has been called. /// /// Throws a FileNotFoundException if the file /// cannot be found, or an OpenFileException if /// the file cannot be opened. - + void sendBuffer(const void* pBuffer, std::size_t length); /// Sends the response header to the client, followed /// by the contents of the given buffer. @@ -77,12 +77,12 @@ public: /// to length and chunked transfer encoding is disabled. /// /// If both the HTTP message header and body (from the - /// given buffer) fit into one single network packet, the + /// given buffer) fit into one single network packet, the /// complete response can be sent in one network packet. /// - /// Must not be called after send(), sendFile() + /// Must not be called after send(), sendFile() /// or redirect() has been called. - + void redirect(const std::string& uri, Poco::Net::HTTPResponse::HTTPStatus status); /// Sets the status code, which must be one of /// HTTP_MOVED_PERMANENTLY (301), HTTP_FOUND (302), @@ -92,12 +92,12 @@ public: /// the HTTP specification, must be absolute. /// /// Must not be called after send() has been called. - + void requireAuthentication(const std::string& realm); /// Sets the status code to 401 (Unauthorized) /// and sets the "WWW-Authenticate" header field /// according to the given realm. - + bool sent() const; /// Returns true if the response (header) has been sent. diff --git a/ApacheConnector/include/ApacheStream.h b/ApacheConnector/include/ApacheStream.h index f79cfc7e0..22b355e8d 100644 --- a/ApacheConnector/include/ApacheStream.h +++ b/ApacheConnector/include/ApacheStream.h @@ -33,7 +33,7 @@ protected: int writeToDevice(const char* buffer, std::streamsize length); private: - enum + enum { STREAM_BUFFER_SIZE = 1024 }; @@ -53,15 +53,15 @@ class ApacheIOS: public virtual std::ios public: ApacheIOS(ApacheRequestRec* pApacheRequest, bool haveData = false); /// Creates the ApacheIOS with the given socket. - + ~ApacheIOS(); /// Destroys the ApacheIOS. /// /// Flushes the buffer, but does not close the socket. - + ApacheStreamBuf* rdbuf(); /// Returns a pointer to the internal ApacheStreamBuf. - + void close(); /// Flushes the stream. diff --git a/ApacheConnector/samples/FormServer/src/FormServer.cpp b/ApacheConnector/samples/FormServer/src/FormServer.cpp index 278b71700..c5df459c7 100644 --- a/ApacheConnector/samples/FormServer/src/FormServer.cpp +++ b/ApacheConnector/samples/FormServer/src/FormServer.cpp @@ -40,7 +40,7 @@ public: _length(0) { } - + void handlePart(const MessageHeader& header, std::istream& stream) { _type = header.get("Content-Type", "(unspecified)"); @@ -52,18 +52,18 @@ public: _name = params.get("name", "(unnamed)"); _fileName = params.get("filename", "(unnamed)"); } - + CountingInputStream istr(stream); NullOutputStream ostr; StreamCopier::copyStream(istr, ostr); _length = istr.chars(); } - + int length() const { return _length; } - + const std::string& name() const { return _name; @@ -73,12 +73,12 @@ public: { return _fileName; } - + const std::string& contentType() const { return _type; } - + private: int _length; std::string _type; @@ -91,10 +91,10 @@ class FormRequestHandler: public HTTPRequestHandler /// Return a HTML document with the current date and time. { public: - FormRequestHandler() + FormRequestHandler() { } - + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) { MyPartHandler partHandler; @@ -104,7 +104,7 @@ public: response.setContentType("text/html"); std::ostream& ostr = response.send(); - + ostr << "\n" "\n" @@ -127,7 +127,7 @@ public: " \n" "\n" "\n"; - + ostr << "

Request

\n"; ostr << "Method: " << request.getMethod() << "
\n"; ostr << "URI: " << request.getURI() << "
\n"; @@ -150,7 +150,7 @@ public: } ostr << "

"; } - + if (!partHandler.name().empty()) { ostr << "

Upload

\n"; diff --git a/ApacheConnector/samples/TimeServer/src/TimeServer.cpp b/ApacheConnector/samples/TimeServer/src/TimeServer.cpp index d12642df5..f577981f4 100644 --- a/ApacheConnector/samples/TimeServer/src/TimeServer.cpp +++ b/ApacheConnector/samples/TimeServer/src/TimeServer.cpp @@ -32,10 +32,10 @@ class TimeRequestHandler: public HTTPRequestHandler /// Return a HTML document with the current date and time. { public: - TimeRequestHandler() + TimeRequestHandler() { } - + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) { Timestamp now; diff --git a/ApacheConnector/src/ApacheApplication.cpp b/ApacheConnector/src/ApacheApplication.cpp index c67810ceb..114356e6c 100644 --- a/ApacheConnector/src/ApacheApplication.cpp +++ b/ApacheConnector/src/ApacheApplication.cpp @@ -35,7 +35,7 @@ ApacheApplication::~ApacheApplication() void ApacheApplication::setup() { FastMutex::ScopedLock lock(_mutex); - + if (!_ready) { std::vector cmdLine; diff --git a/ApacheConnector/src/ApacheRequestHandlerFactory.cpp b/ApacheConnector/src/ApacheRequestHandlerFactory.cpp index d1ac5d78d..cd1fdb1b4 100644 --- a/ApacheConnector/src/ApacheRequestHandlerFactory.cpp +++ b/ApacheConnector/src/ApacheRequestHandlerFactory.cpp @@ -34,7 +34,7 @@ ApacheRequestHandlerFactory::~ApacheRequestHandlerFactory() Poco::Net::HTTPRequestHandler* ApacheRequestHandlerFactory::createRequestHandler(const Poco::Net::HTTPServerRequest& request) { FastMutex::ScopedLock lock(_mutex); - + // only if the given uri is found in _uris we are // handling this request. RequestHandlerFactories::iterator it = _requestHandlers.begin(); @@ -75,7 +75,7 @@ void ApacheRequestHandlerFactory::handleURIs(const std::string& uris) void ApacheRequestHandlerFactory::addRequestHandlerFactory(const std::string& dllPath, const std::string& factoryName, const std::string& uri) -{ +{ try { _loader.loadLibrary(dllPath); diff --git a/ApacheConnector/src/ApacheServerRequest.cpp b/ApacheConnector/src/ApacheServerRequest.cpp index 0699c79ba..d36382b32 100644 --- a/ApacheConnector/src/ApacheServerRequest.cpp +++ b/ApacheConnector/src/ApacheServerRequest.cpp @@ -16,10 +16,10 @@ ApacheServerRequest::ApacheServerRequest( - ApacheRequestRec* pApacheRequest, - const char* serverName, - int serverPort, - const char* clientName, + ApacheRequestRec* pApacheRequest, + const char* serverName, + int serverPort, + const char* clientName, int clientPort): _pApacheRequest(pApacheRequest), _pResponse(0), diff --git a/ApacheConnector/src/ApacheServerResponse.cpp b/ApacheConnector/src/ApacheServerResponse.cpp index a8e866054..73f1e95fa 100644 --- a/ApacheConnector/src/ApacheServerResponse.cpp +++ b/ApacheConnector/src/ApacheServerResponse.cpp @@ -52,7 +52,7 @@ void ApacheServerResponse::initApacheOutputStream() std::vector cookies; getCookies(cookies); - + std::size_t cnt = cookies.size(); for (int c = 0; c < cnt; c++) { @@ -77,7 +77,7 @@ void ApacheServerResponse::sendContinue() std::ostream& ApacheServerResponse::send() { poco_assert (!_pStream); - + initApacheOutputStream(); return *_pStream; @@ -124,7 +124,7 @@ void ApacheServerResponse::redirect(const std::string& uri, HTTPStatus status) void ApacheServerResponse::sendErrorResponse(int status) -{ +{ initApacheOutputStream(); _pApacheRequest->sendErrorResponse(status); diff --git a/ApacheConnector/src/ApacheStream.cpp b/ApacheConnector/src/ApacheStream.cpp index aeaacc6a1..5f92f7c7d 100644 --- a/ApacheConnector/src/ApacheStream.cpp +++ b/ApacheConnector/src/ApacheStream.cpp @@ -21,7 +21,7 @@ using Poco::BufferedStreamBuf; // -ApacheStreamBuf::ApacheStreamBuf(ApacheRequestRec* pApacheRequest, bool haveData): +ApacheStreamBuf::ApacheStreamBuf(ApacheRequestRec* pApacheRequest, bool haveData): BufferedStreamBuf(STREAM_BUFFER_SIZE, std::ios::in | std::ios::out), _pApacheRequest(pApacheRequest), _haveData(haveData) diff --git a/CppParser/include/Poco/CppParser/Attributes.h b/CppParser/include/Poco/CppParser/Attributes.h index 2f90db269..3c1519b2d 100644 --- a/CppParser/include/Poco/CppParser/Attributes.h +++ b/CppParser/include/Poco/CppParser/Attributes.h @@ -34,7 +34,7 @@ class CppParser_API Attributes public: typedef std::map AttrMap; typedef AttrMap::const_iterator Iterator; - + Attributes(); /// Creates the Attributes object. @@ -46,15 +46,15 @@ public: Attributes& operator = (const Attributes& attrs); /// Assignment operator. - + bool has(const std::string& name) const; /// Returns true if an attribute with the given name exists. - + std::string getString(const std::string& name) const; /// Returns the attribute's value as a string. /// /// Throws a Poco::NotFoundException if the attribute does not exist. - + std::string getString(const std::string& name, const std::string& defaultValue) const; /// Returns the attribute's value as a string, if it exists. /// Returns the defaultValue if the attribute does not exist. @@ -64,7 +64,7 @@ public: /// /// Throws a Poco::NotFoundException if the attribute does not exist. /// Throws a Poco::SyntaxException if the stored value is not an integer. - + int getInt(const std::string& name, int defaultValue) const; /// Returns the attribute's value as an integer, if it exists. /// Returns the defaultValue if the attribute does not exist. @@ -74,7 +74,7 @@ public: bool getBool(const std::string& name) const; /// Returns the attribute's value as a boolean. /// The returned value is 'true', iff the stored value is not "false". - /// + /// /// Throws a Poco::NotFoundException if the attribute does not exist. bool getBool(const std::string& name, bool defaultValue) const; @@ -83,17 +83,17 @@ public: void set(const std::string& name, const std::string& value); /// Sets the value of an attribute. - + void remove(const std::string& name); /// Removes the attribute with the given name. /// Does nothing if the attribute does not exist. - + const std::string& operator [] (const std::string& name) const; - std::string& operator [] (const std::string& name); - + std::string& operator [] (const std::string& name); + Iterator begin() const; Iterator end() const; - + void clear(); /// Clears all attributes. diff --git a/CppParser/include/Poco/CppParser/AttributesParser.h b/CppParser/include/Poco/CppParser/AttributesParser.h index 8dcd62537..2cbeee8e8 100644 --- a/CppParser/include/Poco/CppParser/AttributesParser.h +++ b/CppParser/include/Poco/CppParser/AttributesParser.h @@ -34,13 +34,13 @@ class CppParser_API AttributesParser /// structs/classes, functions, types, etc. can be annotated /// with attributes. /// - /// Attributes always come immediately before the symbol that + /// Attributes always come immediately before the symbol that /// is being annotated, and are written inside special comments /// with the syntax: /// //@ [,...] /// where is /// [=] - /// is a valid C++ identifier, or two identifiers separated by + /// is a valid C++ identifier, or two identifiers separated by /// a period (struct accessor notation). /// is a string, integer, identifier, bool literal, or a complex value /// in the form @@ -67,7 +67,7 @@ protected: static bool isOperator(const Poco::Token* pToken, int kind); static bool isLiteral(const Poco::Token* pToken); static bool isEOF(const Poco::Token* pToken); - + private: Attributes& _attrs; Tokenizer _tokenizer; diff --git a/CppParser/include/Poco/CppParser/Function.h b/CppParser/include/Poco/CppParser/Function.h index b59c273c7..4f4853201 100644 --- a/CppParser/include/Poco/CppParser/Function.h +++ b/CppParser/include/Poco/CppParser/Function.h @@ -48,7 +48,7 @@ public: FN_DEFAULT = 512, /// The function is default. FN_DELETE = 1024 /// The function has been deleted. }; - + typedef std::vector Parameters; typedef Parameters::const_iterator Iterator; @@ -68,51 +68,51 @@ public: Iterator end() const; /// Returns an iterator for iterating over the Function's Parameter's. - + void makeInline(); /// Sets the FN_INLINE flag. - + void makeConst(); /// Sets the FN_CONST flag. - + void makePureVirtual(); /// Sets the FN_PURE_VIRTUAL flag. - + void makeFinal(); /// Sets the FN_FINAL flag. - + void makeOverride(); /// Sets the FN_OVERRIDE flag. - + void makeNoexcept(); /// Sets the FN_NOEXCEPT flag. void makeDefault(); /// Sets the FN_DEFAULT flag. - + void makeDelete(); /// Sets the FN_DELETE flag. - + int flags() const; /// Returns the function's flags. - + bool isConstructor() const; /// Returns true iff the function is a constructor. - + bool isDestructor() const; /// Returns true iff the function is a destructor. bool isMethod() const; /// Returns true iff the function is a method (it's part of /// a Struct and it's neither a constructor nor a destructor). - + bool isFunction() const; /// Returns true iff the function is not a member of a class /// (a freestanding function). bool isConst() const; /// Returns true iff the method is const. - + bool isDefault() const; /// Returns true iff the method has a default implementation. @@ -121,20 +121,20 @@ public: int countParameters() const; /// Returns the number of parameters. - + std::string signature() const; /// Returns the signature of the function. - + bool isVirtual() const; /// Returns true if the method is virtual. Also examines base /// classes to check for a virtual function with the same /// signature. - + Function* getOverridden() const; /// If the function is virtual and overrides a function in a /// base class, the base class function is returned. /// Otherwise, null is returned. - + Symbol::Kind kind() const; std::string toString() const; diff --git a/CppParser/include/Poco/CppParser/NameSpace.h b/CppParser/include/Poco/CppParser/NameSpace.h index bd3417b92..02d7f5450 100644 --- a/CppParser/include/Poco/CppParser/NameSpace.h +++ b/CppParser/include/Poco/CppParser/NameSpace.h @@ -37,7 +37,7 @@ public: typedef SymbolTable::const_iterator Iterator; typedef std::map AliasMap; typedef std::vector NameSpaceVec; - + NameSpace(); /// Creates the NameSpace. @@ -46,56 +46,56 @@ public: ~NameSpace(); /// Destroys the NameSpace. - + void addSymbol(Symbol* pSymbol); /// Adds a symbol to the namespace. - + void importSymbol(const std::string& fullName); /// Imports a symbol from another namespace (using ). - + void importNameSpace(const std::string& nameSpace); /// Imports a namespace (using namespace ). - + Iterator begin() const; /// Returns an iterator for iterating over the NameSpace's Symbol's. Iterator end() const; /// Returns an iterator for iterating over the NameSpace's Symbol's. - + Symbol* lookup(const std::string& name) const; /// Looks up the given name in the symbol table /// and returns the corresponding symbol, or null /// if no symbol can be found. The name can include /// a namespace. - + static NameSpace* root(); /// Returns the root namespace. Never delete this one! - + void nameSpaces(SymbolTable& table) const; /// Fills the symbol table with all namespaces. - + void typeDefs(SymbolTable& table) const; /// Fills the symbol table with all type definitions. - + void typeAliases(SymbolTable& table) const; /// Fills the symbol table with all type alias (using) definitions. void enums(SymbolTable& table) const; /// Fills the symbol table with all enums. - + void classes(SymbolTable& table) const; /// Fills the symbol table with all classes and structs. - + void functions(SymbolTable& table) const; /// Fills the symbol table with all functions. - + void variables(SymbolTable& table) const; /// Fills the symbol table with all variables. - + const AliasMap& importedSymbols() const; /// Returns a const reference to a SymbolTable containing all /// imported symbols. - + const NameSpaceVec& importedNameSpaces() const; /// Returns a vector containing all imported namespaces. @@ -128,7 +128,7 @@ inline const NameSpace::AliasMap& NameSpace::importedSymbols() const return _importedSymbols; } - + inline const NameSpace::NameSpaceVec& NameSpace::importedNameSpaces() const { return _importedNameSpaces; diff --git a/CppParser/include/Poco/CppParser/Parser.h b/CppParser/include/Poco/CppParser/Parser.h index 6c7e4a4d1..060551b8c 100644 --- a/CppParser/include/Poco/CppParser/Parser.h +++ b/CppParser/include/Poco/CppParser/Parser.h @@ -82,7 +82,7 @@ protected: const Poco::Token* parseClassMembers(const Poco::Token* pNext, Struct* pClass); const Poco::Token* parseAccess(const Poco::Token* pNext); const Poco::Token* parseIdentifier(const Poco::Token* pNext, std::string& id); - + void addSymbol(Symbol* pSymbol, int lineNumber, bool addGST = true); void pushNameSpace(NameSpace* pNameSpace, int lineNumber, bool addGST = true); void popNameSpace(); diff --git a/CppParser/include/Poco/CppParser/Struct.h b/CppParser/include/Poco/CppParser/Struct.h index 12c25cbf4..2c3a5c7cd 100644 --- a/CppParser/include/Poco/CppParser/Struct.h +++ b/CppParser/include/Poco/CppParser/Struct.h @@ -42,7 +42,7 @@ public: FN_TEMPLATE_SPECIALIZATION = 4, FN_FINAL = 8 }; - + struct Base { Symbol::Access access; @@ -50,7 +50,7 @@ public: std::string name; Struct* pClass; }; - + typedef std::vector BaseClasses; typedef BaseClasses::const_iterator BaseIterator; typedef std::vector StructVec; @@ -67,13 +67,13 @@ public: void addBase(const std::string&, Symbol::Access access, bool isVirtual); /// Adds a base class. - + BaseIterator baseBegin() const; /// Returns an iterator for iterating over all base classes. - + BaseIterator baseEnd() const; /// Returns an iterator for iterating over all base classes. - + void fixupBases(); /// Adds pointers for all base classes. @@ -88,13 +88,13 @@ public: const std::string& declaration() const; /// Returns the declaration. - + int flags() const; /// Returns the struct's flags. void makeInline(); /// Changes the class to a inline class, i.e. definition and implementation are hidden in a cpp file. - + void makeFinal(); /// Makes the class final. @@ -106,39 +106,39 @@ public: void constructors(Functions& functions) const; /// Returns all constructors, sorted by their parameter count. - + Function* destructor() const; /// Returns the destructor, or NULL if no /// destructor is defined. void methods(Symbol::Access access, Functions& functions) const; /// Returns all functions with the given access. - + void inheritedMethods(FunctionSet& functions) const; /// Returns all inherited methods. - + void bases(std::set& bases) const; /// Returns all base classes. - + void derived(StructSet& derived) const; - /// Returns all derived classes. - + /// Returns all derived classes. + Function* findFunction(const std::string& signature) const; /// Finds a function with the given signature. - + bool hasVirtualDestructor() const; /// Returns true if the class CppParser_API or one if its base classes /// has a virtual destructor. bool isClass() const; /// Returns true iff the struct was declared as class. - + bool isDerived() const; /// Returns true iff the struct or class is derived from another struct or class. Symbol::Kind kind() const; std::string toString() const; - + private: std::string _decl; BaseClasses _bases; diff --git a/CppParser/include/Poco/CppParser/Utility.h b/CppParser/include/Poco/CppParser/Utility.h index 3ded488e0..8fa9267b8 100644 --- a/CppParser/include/Poco/CppParser/Utility.h +++ b/CppParser/include/Poco/CppParser/Utility.h @@ -37,9 +37,9 @@ public: public: std::string beginNameSpaceDecl; // contains either $(NS)_BEGIN or the namespace x { decl std::string endNameSpaceDecl; // contains either $(NS)_END or the closing brackets } - std::vector classDecls; // contains strings of the form "class X;" + std::vector classDecls; // contains strings of the form "class X;" }; - + static void parse(const std::string& file, NameSpace::SymbolTable& st, const std::string& exec, const std::string& options, const std::string& path); /// Preprocesses and parses the file. The resulting symboltable has base class references already fixed, diff --git a/CppParser/include/Poco/CppParser/Variable.h b/CppParser/include/Poco/CppParser/Variable.h index d167eda59..92f67752d 100644 --- a/CppParser/include/Poco/CppParser/Variable.h +++ b/CppParser/include/Poco/CppParser/Variable.h @@ -37,13 +37,13 @@ public: VAR_VOLATILE = 4, /// The variable is volatile. VAR_CONST = 8 /// The variable is const. }; - + Variable(const std::string& decl, NameSpace* pNameSpace); /// Creates the Variable. ~Variable(); /// Destroys the Variable. - + int flags() const; /// Returns the variable's flags. @@ -57,7 +57,7 @@ public: /// /// Example: a type const std::string& -> std::string, a type const std::string* returns std::string - + private: int _flags; bool _isPointer; diff --git a/CppParser/src/Attributes.cpp b/CppParser/src/Attributes.cpp index 21d14e808..5507d20cf 100644 --- a/CppParser/src/Attributes.cpp +++ b/CppParser/src/Attributes.cpp @@ -48,13 +48,13 @@ Attributes& Attributes::operator = (const Attributes& attrs) return *this; } - + bool Attributes::has(const std::string& name) const { return _map.find(name) != _map.end(); } - + std::string Attributes::getString(const std::string& name) const { AttrMap::const_iterator it = _map.find(name); @@ -64,7 +64,7 @@ std::string Attributes::getString(const std::string& name) const throw Poco::NotFoundException(name); } - + std::string Attributes::getString(const std::string& name, const std::string& defaultValue) const { AttrMap::const_iterator it = _map.find(name); @@ -84,7 +84,7 @@ int Attributes::getInt(const std::string& name) const throw Poco::NotFoundException(name); } - + int Attributes::getInt(const std::string& name, int defaultValue) const { AttrMap::const_iterator it = _map.find(name); diff --git a/CppParser/src/AttributesParser.cpp b/CppParser/src/AttributesParser.cpp index 441c988b8..ef8eb3dc1 100644 --- a/CppParser/src/AttributesParser.cpp +++ b/CppParser/src/AttributesParser.cpp @@ -88,7 +88,7 @@ const Token* AttributesParser::parseAttribute(const Token* pNext) const Token* AttributesParser::parseComplexAttribute(const Token* pNext, const std::string& id) { poco_assert_dbg (isOperator(pNext, OperatorToken::OP_OPENBRACE)); - + pNext = next(); std::string oldId(_id); if (!_id.empty()) @@ -103,7 +103,7 @@ const Token* AttributesParser::parseComplexAttribute(const Token* pNext, const s pNext = next(); else throw SyntaxException("bad attribute declaration"); - + return pNext; } diff --git a/CppParser/src/Function.cpp b/CppParser/src/Function.cpp index b518d8940..e41db8004 100644 --- a/CppParser/src/Function.cpp +++ b/CppParser/src/Function.cpp @@ -111,13 +111,13 @@ void Function::makeFinal() _flags |= FN_FINAL; } - + void Function::makeOverride() { _flags |= FN_OVERRIDE; } - + void Function::makeNoexcept() { _flags |= FN_NOEXCEPT; @@ -141,7 +141,7 @@ bool Function::isConstructor() const return name() == nameSpace()->name(); } - + bool Function::isDestructor() const { return name()[0] == '~'; @@ -201,7 +201,7 @@ std::string Function::signature() const return signature; } - + bool Function::isVirtual() const { if (_flags & FN_VIRTUAL) diff --git a/CppParser/src/NameSpace.cpp b/CppParser/src/NameSpace.cpp index 7551bc17f..9bd683030 100644 --- a/CppParser/src/NameSpace.cpp +++ b/CppParser/src/NameSpace.cpp @@ -49,7 +49,7 @@ NameSpace::~NameSpace() void NameSpace::addSymbol(Symbol* pSymbol) { poco_check_ptr (pSymbol); - + _symbols.insert(SymbolTable::value_type(pSymbol->name(), pSymbol)); } @@ -65,7 +65,7 @@ void NameSpace::importSymbol(const std::string& fullName) } } - + void NameSpace::importNameSpace(const std::string& nameSpace) { _importedNameSpaces.push_back(nameSpace); @@ -94,7 +94,7 @@ Symbol* NameSpace::lookup(const std::string& name) const Symbol* NameSpace::lookup(const std::string& name, std::set& alreadyVisited) const { Symbol* pSymbol = 0; - + if (name.empty()) return pSymbol; @@ -103,12 +103,12 @@ Symbol* NameSpace::lookup(const std::string& name, std::set& a std::string head; std::string tail; splitName(name, head, tail); - + alreadyVisited.insert(this); bool currentNSInserted = true; - - if (head.empty()) + + if (head.empty()) { alreadyVisited.insert(this); return root()->lookup(tail, alreadyVisited); @@ -161,13 +161,13 @@ void NameSpace::nameSpaces(SymbolTable& table) const extract(Symbol::SYM_NAMESPACE, table); } - + void NameSpace::typeDefs(SymbolTable& table) const { extract(Symbol::SYM_TYPEDEF, table); } - + void NameSpace::typeAliases(SymbolTable& table) const { extract(Symbol::SYM_TYPEALIAS, table); @@ -179,19 +179,19 @@ void NameSpace::enums(SymbolTable& table) const extract(Symbol::SYM_ENUM, table); } - + void NameSpace::classes(SymbolTable& table) const { extract(Symbol::SYM_STRUCT, table); } - + void NameSpace::functions(SymbolTable& table) const { extract(Symbol::SYM_FUNCTION, table); } - + void NameSpace::variables(SymbolTable& table) const { extract(Symbol::SYM_VARIABLE, table); @@ -226,7 +226,7 @@ void NameSpace::splitName(const std::string& name, std::string& head, std::strin head.assign(name, 0, pos); pos += 2; poco_assert (pos < name.length()); - tail.assign(name, pos, name.length() - pos); + tail.assign(name, pos, name.length() - pos); } else head = name; } diff --git a/CppParser/src/Struct.cpp b/CppParser/src/Struct.cpp index 02db88321..fa2ed6db4 100644 --- a/CppParser/src/Struct.cpp +++ b/CppParser/src/Struct.cpp @@ -62,7 +62,7 @@ void Struct::addBase(const std::string& name, Symbol::Access access, bool isVirt _bases.push_back(base); } - + Struct::BaseIterator Struct::baseBegin() const { return _bases.begin(); @@ -78,7 +78,7 @@ Struct::BaseIterator Struct::baseEnd() const void Struct::addDerived(Struct* pClass) { poco_check_ptr (pClass); - + _derived.push_back(pClass); } diff --git a/CppParser/src/Tokenizer.cpp b/CppParser/src/Tokenizer.cpp index d557e2a86..a51258584 100644 --- a/CppParser/src/Tokenizer.cpp +++ b/CppParser/src/Tokenizer.cpp @@ -25,7 +25,7 @@ namespace CppParser { Tokenizer::Tokenizer(std::istream& istr): - StreamTokenizer(istr) + StreamTokenizer(istr) { addToken(new OperatorToken); addToken(new IdentifierToken); diff --git a/CppParser/src/Utility.cpp b/CppParser/src/Utility.cpp index 2eb93a266..c6017a01b 100644 --- a/CppParser/src/Utility.cpp +++ b/CppParser/src/Utility.cpp @@ -195,14 +195,14 @@ std::string Utility::preprocessFile(const std::string& file, const std::string& newPath += path; Environment::set("PATH", path); } - - ProcessHandle proc = Process::launch(exec, args); + + ProcessHandle proc = Process::launch(exec, args); int rc = Process::wait(proc); if (rc != 0) { throw Poco::RuntimeException("Failed to process file"); } - + return pp.getFileName(); } @@ -293,7 +293,7 @@ std::string replace(const std::string& input, const std::string& oldToken, const start = pos + oldToken.length(); } while (pos != std::string::npos); - + return result; } diff --git a/CppParser/src/Variable.cpp b/CppParser/src/Variable.cpp index 01459f0e5..5062e8033 100644 --- a/CppParser/src/Variable.cpp +++ b/CppParser/src/Variable.cpp @@ -39,10 +39,10 @@ Variable::Variable(const std::string& decl, NameSpace* pNameSpace): std::size_t pos = decl.rfind(name()); std::string tmp = decl.substr(0, pos); tmp = Poco::trim(tmp); - + pos = tmp.rfind("*"); _isPointer = (pos == (tmp.size()-1)); - + Poco::replaceInPlace(tmp, "static ", ""); Poco::replaceInPlace(tmp, "mutable ", ""); Poco::replaceInPlace(tmp, "volatile ", ""); @@ -53,7 +53,7 @@ Variable::Variable(const std::string& decl, NameSpace* pNameSpace): tmp = tmp.substr(6); if (tmp.find("const\t") == 0) tmp = tmp.substr(6); - + std::size_t rightCut = tmp.size(); while (rightCut > 0 && (tmp[rightCut-1] == '&' || tmp[rightCut-1] == '*' || tmp[rightCut-1] == '\t' || tmp[rightCut-1] == ' ')) --rightCut; diff --git a/CppUnit/doc/README.html b/CppUnit/doc/README.html index 5f8a1418a..788619cd3 100644 --- a/CppUnit/doc/README.html +++ b/CppUnit/doc/README.html @@ -15,14 +15,14 @@

CppUnit is a simple unit test framework for C++. It is a port from JUnit, a testing framework for Java, developed by Kent Beck and Erich Gamma.

Contents

README.html                     this file
-    
+   
     test                        the source code
         framework               the testing framework
-		extensions	some framework extension classes 
-        textui                  a command line interface to run tests 
+		extensions	some framework extension classes
+        textui                  a command line interface to run tests
     ms                          code for a Microsoft specific TestRunner
     samples                     some example test cases and extensions to the framework
-        multicaster             a sample illustrating a publish/subscribe 
+        multicaster             a sample illustrating a publish/subscribe
 				multicaster under test
     doc                         documentation

Installation

diff --git a/CppUnit/doc/cookbook.htm b/CppUnit/doc/cookbook.htm index 08224883b..2cf027258 100644 --- a/CppUnit/doc/cookbook.htm +++ b/CppUnit/doc/cookbook.htm @@ -17,7 +17,7 @@

Subclass the TestCase class. Override the method "runTest ()". When you want to check a value, call "assert (bool)" and pass in an expression that is true if the test succeeds.

For example, to test the equality comparison for a Complex number class, write:

	class ComplexNumberTest : public TestCase { 
-	public: 
+	public:
                     ComplexNumberTest (string name) : TestCase (name) {}
         void        runTest () {
                         assert (Complex (10, 1) == Complex (10, 1));
@@ -59,7 +59,7 @@
 	void		setUp ()  {
 			    m_10_1 = new Complex (10, 1);
 			    m_1_1  = new Complex (1, 1);
-			    m_11_2  = new Complex (11, 2);  
+			    m_11_2  = new Complex (11, 2);
                         }
 	void		tearDown ()  {
 			    delete m_10_1, delete m_1_1, delete m_11_2;
@@ -83,7 +83,7 @@
 	void		setUp ()  {
 			    m_10_1 = new Complex (10, 1);
 			    m_1_1  = new Complex (1, 1);
-			    m_11_2 = new Complex (11, 2);  
+			    m_11_2 = new Complex (11, 2);
                         }
 	void		tearDown ()  {
 			    delete m_10_1, delete m_1_1, delete m_11_2;
diff --git a/CppUnit/include/CppUnit/CppUnitException.h b/CppUnit/include/CppUnit/CppUnitException.h
index 68eb9739c..7bbc891d1 100644
--- a/CppUnit/include/CppUnit/CppUnitException.h
+++ b/CppUnit/include/CppUnit/CppUnitException.h
@@ -20,8 +20,8 @@ class CppUnit_API CppUnitException: public std::exception
 	/// descriptive strings through its what() method
 {
 public:
-	CppUnitException(const std::string& message = "", 
-	                 long lineNumber = CPPUNIT_UNKNOWNLINENUMBER, 
+	CppUnitException(const std::string& message = "",
+	                 long lineNumber = CPPUNIT_UNKNOWNLINENUMBER,
 	                 const std::string& fileName = CPPUNIT_UNKNOWNFILENAME);
 	CppUnitException(const std::string& message,
 	                 long lineNumber,
@@ -110,26 +110,26 @@ inline const char* CppUnitException::what() const throw ()
 
 inline long CppUnitException::lineNumber() const
 {
-	return _lineNumber; 
+	return _lineNumber;
 }
 
 
 inline long CppUnitException::data1LineNumber() const
 {
-	return _data1lineNumber; 
+	return _data1lineNumber;
 }
 
 
 inline long CppUnitException::data2LineNumber() const
 {
-	return _data2lineNumber; 
+	return _data2lineNumber;
 }
 
 
 // The file in which the error occurred
 inline const std::string& CppUnitException::fileName() const
 {
-	return _fileName; 
+	return _fileName;
 }
 
 
diff --git a/CppUnit/include/CppUnit/Orthodox.h b/CppUnit/include/CppUnit/Orthodox.h
index 5e9f41c37..ac08c0100 100644
--- a/CppUnit/include/CppUnit/Orthodox.h
+++ b/CppUnit/include/CppUnit/Orthodox.h
@@ -45,11 +45,11 @@ namespace CppUnit {
  *
  * see TestSuite
  */
-template  
+template 
 class Orthodox: public TestCase
 {
 public:
-	Orthodox(): TestCase("Orthodox") 
+	Orthodox(): TestCase("Orthodox")
 	{
 	}
 
@@ -60,7 +60,7 @@ protected:
 
 
 // Run an orthodoxy test
-template  
+template 
 void Orthodox::runTest()
 {
     // make sure we have a default constructor
@@ -90,7 +90,7 @@ void Orthodox::runTest()
 
 
 // Exercise a call
-template  
+template 
 ClassUnderTest Orthodox::call(ClassUnderTest object)
 {
     return object;
diff --git a/CppUnit/include/CppUnit/RepeatedTest.h b/CppUnit/include/CppUnit/RepeatedTest.h
index dd471c0c1..21499f780 100644
--- a/CppUnit/include/CppUnit/RepeatedTest.h
+++ b/CppUnit/include/CppUnit/RepeatedTest.h
@@ -29,7 +29,7 @@ class CppUnit_API RepeatedTest: public TestDecorator
 	REFERENCEOBJECT (RepeatedTest)
 
 public:
-	RepeatedTest(Test* test, int timesRepeat): TestDecorator (test), _timesRepeat (timesRepeat) 
+	RepeatedTest(Test* test, int timesRepeat): TestDecorator (test), _timesRepeat (timesRepeat)
 	{
 	}
 
@@ -59,7 +59,7 @@ inline std::string RepeatedTest::toString()
 // Runs a repeated test
 inline void RepeatedTest::run(TestResult *result)
 {
-	for (int n = 0; n < _timesRepeat; n++) 
+	for (int n = 0; n < _timesRepeat; n++)
 	{
 		if (result->shouldStop())
 			break;
diff --git a/CppUnit/include/CppUnit/Test.h b/CppUnit/include/CppUnit/Test.h
index 642f41b6e..aeabfe099 100644
--- a/CppUnit/include/CppUnit/Test.h
+++ b/CppUnit/include/CppUnit/Test.h
@@ -64,7 +64,7 @@ inline void Test::run(TestResult *result, const Callback& callback)
 // Counts the number of test cases that will be run by this test.
 inline int Test::countTestCases() const
 {
-	return 0; 
+	return 0;
 }
 
 
diff --git a/CppUnit/include/CppUnit/TestFailure.h b/CppUnit/include/CppUnit/TestFailure.h
index b443f5970..b2ff60aae 100644
--- a/CppUnit/include/CppUnit/TestFailure.h
+++ b/CppUnit/include/CppUnit/TestFailure.h
@@ -57,7 +57,7 @@ inline TestFailure::TestFailure(Test* failedTest, CppUnitException* thrownExcept
 
 // Deletes the owned exception.
 inline TestFailure::~TestFailure()
-{ 
+{
 	delete _thrownException;
 }
 
diff --git a/CppUnit/include/CppUnit/TestResult.h b/CppUnit/include/CppUnit/TestResult.h
index a09aa9e88..6539e0bae 100644
--- a/CppUnit/include/CppUnit/TestResult.h
+++ b/CppUnit/include/CppUnit/TestResult.h
@@ -67,7 +67,7 @@ public:
 		SynchronizationObject()
 		{
 		}
-		
+
 		virtual ~SynchronizationObject()
 		{
 		}
@@ -75,7 +75,7 @@ public:
 		virtual void lock()
 		{
 		}
-		
+
 		virtual void unlock()
 		{
 		}
@@ -112,7 +112,7 @@ protected:
 // Construct a TestResult
 inline TestResult::TestResult(): _syncObject(new SynchronizationObject())
 {
-	_runTests = 0; 
+	_runTests = 0;
 	_stop = false;
 }
 
@@ -121,7 +121,7 @@ inline TestResult::TestResult(): _syncObject(new SynchronizationObject())
 // caused the error
 inline void TestResult::addError(Test* test, CppUnitException* e)
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	_errors.push_back(new TestFailure(test, e));
 }
 
@@ -130,7 +130,7 @@ inline void TestResult::addError(Test* test, CppUnitException* e)
 // caused the failure.
 inline void TestResult::addFailure(Test* test, CppUnitException* e)
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	_failures.push_back(new TestFailure(test, e));
 }
 
@@ -138,7 +138,7 @@ inline void TestResult::addFailure(Test* test, CppUnitException* e)
 // Informs the result that a test will be started.
 inline void TestResult::startTest(Test* test)
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	_runTests++;
 }
 
@@ -153,7 +153,7 @@ inline void TestResult::endTest(Test* test)
 // Gets the number of run tests.
 inline int TestResult::runTests()
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	return _runTests;
 }
 
@@ -161,7 +161,7 @@ inline int TestResult::runTests()
 // Gets the number of detected errors.
 inline int TestResult::testErrors()
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	return (int) _errors.size();
 }
 
@@ -169,7 +169,7 @@ inline int TestResult::testErrors()
 // Gets the number of detected failures.
 inline int TestResult::testFailures()
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	return (int) _failures.size();
 }
 
@@ -177,15 +177,15 @@ inline int TestResult::testFailures()
 // Returns whether the entire test was successful or not.
 inline bool TestResult::wasSuccessful()
 {
-	ExclusiveZone zone(_syncObject); 
-	return _failures.size() == 0 && _errors.size () == 0; 
+	ExclusiveZone zone(_syncObject);
+	return _failures.size() == 0 && _errors.size () == 0;
 }
 
 
 // Returns a std::vector of the errors.
 inline std::vector& TestResult::errors()
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	return _errors;
 }
 
@@ -193,7 +193,7 @@ inline std::vector& TestResult::errors()
 // Returns a std::vector of the failures.
 inline std::vector& TestResult::failures()
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	return _failures;
 }
 
@@ -201,7 +201,7 @@ inline std::vector& TestResult::failures()
 // Returns whether testing should be stopped
 inline bool TestResult::shouldStop()
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	return _stop;
 }
 
@@ -209,7 +209,7 @@ inline bool TestResult::shouldStop()
 // Stop testing
 inline void TestResult::stop()
 {
-	ExclusiveZone zone(_syncObject); 
+	ExclusiveZone zone(_syncObject);
 	_stop = true;
 }
 
@@ -218,7 +218,7 @@ inline void TestResult::stop()
 // TestResult assumes ownership of the object
 inline void TestResult::setSynchronizationObject(SynchronizationObject* syncObject)
 {
-	delete _syncObject; 
+	delete _syncObject;
 	_syncObject = syncObject;
 }
 
diff --git a/CppUnit/include/CppUnit/TestSetup.h b/CppUnit/include/CppUnit/TestSetup.h
index 323d6cf5b..040b7685a 100644
--- a/CppUnit/include/CppUnit/TestSetup.h
+++ b/CppUnit/include/CppUnit/TestSetup.h
@@ -24,17 +24,17 @@ class CppUnit_API TestSetup: public TestDecorator
 	REFERENCEOBJECT (TestSetup)
 
 public:
-	TestSetup(Test* test): TestDecorator(test) 
+	TestSetup(Test* test): TestDecorator(test)
 	{
 	}
-	
+
 	void run(TestResult* result);
 
 protected:
-	void setUp() 
+	void setUp()
 	{
 	}
-	
+
 	void tearDown()
 	{
 	}
@@ -44,7 +44,7 @@ protected:
 inline void TestSetup::run(TestResult* result)
 {
 	setUp();
-	TestDecorator::run(result); 
+	TestDecorator::run(result);
 	tearDown();
 }
 
diff --git a/CppUnit/include/CppUnit/TestSuite.h b/CppUnit/include/CppUnit/TestSuite.h
index 425fdcb3b..9aa6a55d9 100644
--- a/CppUnit/include/CppUnit/TestSuite.h
+++ b/CppUnit/include/CppUnit/TestSuite.h
@@ -48,7 +48,7 @@ public:
 	Test::Type getType() const;
 
 	virtual void deleteContents();
-	
+
 	const std::vector tests() const;
 
 private:
@@ -80,7 +80,7 @@ inline void TestSuite::addTest(Test* test)
 // Returns a std::string representation of the test suite.
 inline std::string TestSuite::toString() const
 {
-	return "suite " + _name; 
+	return "suite " + _name;
 }
 
 // Returns the type of the test, see Test::Type
diff --git a/CppUnit/include/CppUnit/TextTestResult.h b/CppUnit/include/CppUnit/TextTestResult.h
index d7421f16f..867679965 100644
--- a/CppUnit/include/CppUnit/TextTestResult.h
+++ b/CppUnit/include/CppUnit/TextTestResult.h
@@ -31,7 +31,7 @@ public:
 	virtual void printErrors(std::ostream& stream);
 	virtual void printFailures(std::ostream& stream);
 	virtual void printHeader(std::ostream& stream);
-	
+
 protected:
 	std::string shortName(const std::string& testName);
 	void setup();
diff --git a/CppUnit/include/CppUnit/estring.h b/CppUnit/include/CppUnit/estring.h
index 8adf030b3..b323db9ed 100644
--- a/CppUnit/include/CppUnit/estring.h
+++ b/CppUnit/include/CppUnit/estring.h
@@ -32,26 +32,26 @@ inline std::string estring(std::string& expandedString)
 // Create a std::string from an int
 inline std::string estring(int number)
 {
-	char buffer[50]; 
-	std::snprintf(buffer, sizeof(buffer), "%d", number); 
-	return std::string (buffer); 
+	char buffer[50];
+	std::snprintf(buffer, sizeof(buffer), "%d", number);
+	return std::string (buffer);
 }
 
 
 // Create a string from a long
 inline std::string estring(long number)
 {
-	char buffer[50]; 
-	std::snprintf(buffer, sizeof(buffer), "%ld", number); 
-	return std::string (buffer); 
+	char buffer[50];
+	std::snprintf(buffer, sizeof(buffer), "%ld", number);
+	return std::string (buffer);
 }
 
 
 // Create a std::string from a double
 inline std::string estring(double number)
 {
-	char buffer[50]; 
-	std::snprintf(buffer, sizeof(buffer), "%lf", number); 
+	char buffer[50];
+	std::snprintf(buffer, sizeof(buffer), "%lf", number);
 	return std::string(buffer);
 }
 
@@ -59,8 +59,8 @@ inline std::string estring(double number)
 // Create a std::string from a double
 inline std::string estring(const void* ptr)
 {
-	char buffer[50]; 
-	std::snprintf(buffer, sizeof(buffer), "%p", ptr); 
+	char buffer[50];
+	std::snprintf(buffer, sizeof(buffer), "%p", ptr);
 	return std::string(buffer);
 }
 
diff --git a/CppUnit/src/TestSuite.cpp b/CppUnit/src/TestSuite.cpp
index e172cc218..00d336d06 100644
--- a/CppUnit/src/TestSuite.cpp
+++ b/CppUnit/src/TestSuite.cpp
@@ -21,7 +21,7 @@ void TestSuite::deleteContents()
 // Runs the tests and collects their result in a TestResult.
 void TestSuite::run(TestResult *result, const Test::Callback& callback)
 {
-	for (std::vector::iterator it = _tests.begin(); it != _tests.end(); ++it) 
+	for (std::vector::iterator it = _tests.begin(); it != _tests.end(); ++it)
 	{
 		if (result->shouldStop ())
 			break;
diff --git a/Crypto/include/Poco/Crypto/CipherFactory.h b/Crypto/include/Poco/Crypto/CipherFactory.h
index d284dbfe6..5202e3f70 100644
--- a/Crypto/include/Poco/Crypto/CipherFactory.h
+++ b/Crypto/include/Poco/Crypto/CipherFactory.h
@@ -43,8 +43,8 @@ public:
 		/// Destroys the CipherFactory.
 
 	Cipher* createCipher(const CipherKey& key);
-		/// Creates a Cipher object for the given Cipher name. Valid cipher 
-		/// names depend on the OpenSSL version the library is linked with;  
+		/// Creates a Cipher object for the given Cipher name. Valid cipher
+		/// names depend on the OpenSSL version the library is linked with;
 		/// see the output of
 		///
 		///     openssl enc --help
@@ -64,7 +64,7 @@ public:
 	Cipher* createCipher(const EVPPKey& key);
 		/// Creates an EVPCipher using the given EVP key
 		/// for public key encryption/private key decryption.
-	
+
 	static CipherFactory& defaultFactory();
 		/// Returns the default CipherFactory.
 
diff --git a/Crypto/include/Poco/Crypto/DigestEngine.h b/Crypto/include/Poco/Crypto/DigestEngine.h
index 8244a6ea8..1c30e769d 100644
--- a/Crypto/include/Poco/Crypto/DigestEngine.h
+++ b/Crypto/include/Poco/Crypto/DigestEngine.h
@@ -39,13 +39,13 @@ public:
 		/// See the OpenSSL documentation for a list of supported digest algorithms.
 		///
 		/// Throws a Poco::NotFoundException if no algorithm with the given name exists.
-		
+
 	~DigestEngine();
 		/// Destroys the DigestEngine.
-	
+
 	const std::string& algorithm() const;
 		/// Returns the name of the digest algorithm.
-	
+
 	int nid() const;
 		/// Returns the NID (OpenSSL object identifier) of the digest algorithm.
 
@@ -56,7 +56,7 @@ public:
 
 protected:
 	void updateImpl(const void* data, std::size_t length);
-	
+
 private:
 	std::string _name;
 	EVP_MD_CTX* _pContext;
diff --git a/Crypto/include/Poco/Crypto/ECKeyImpl.h b/Crypto/include/Poco/Crypto/ECKeyImpl.h
index 1795e9584..f9c1b1d42 100644
--- a/Crypto/include/Poco/Crypto/ECKeyImpl.h
+++ b/Crypto/include/Poco/Crypto/ECKeyImpl.h
@@ -62,8 +62,8 @@ public:
 
 	ECKeyImpl(const std::string& publicKeyFile, const std::string& privateKeyFile, const std::string& privateKeyPassphrase);
 		/// Creates the ECKey, by reading public and private key from the given files and
-		/// using the given passphrase for the private key. Can only by used for signing if 
-		/// a private key is available. 
+		/// using the given passphrase for the private key. Can only by used for signing if
+		/// a private key is available.
 
 	ECKeyImpl(std::istream* pPublicKeyStream, std::istream* pPrivateKeyStream, const std::string& privateKeyPassphrase);
 		/// Creates the ECKey. Can only by used for signing if pPrivKey
@@ -91,7 +91,7 @@ public:
 	void save(const std::string& publicKeyFile,
 		const std::string& privateKeyFile = "",
 		const std::string& privateKeyPassphrase = "") const;
-		/// Exports the public and private keys to the given files. 
+		/// Exports the public and private keys to the given files.
 		///
 		/// If an empty filename is specified, the corresponding key
 		/// is not exported.
diff --git a/Crypto/include/Poco/Crypto/EVPPKey.h b/Crypto/include/Poco/Crypto/EVPPKey.h
index 925544de9..1bc0356f9 100644
--- a/Crypto/include/Poco/Crypto/EVPPKey.h
+++ b/Crypto/include/Poco/Crypto/EVPPKey.h
@@ -220,7 +220,7 @@ private:
 #if defined(_MSC_VER)
 #pragma warning(push)
 #pragma warning(disable:4996) // deprecation warnings
-#endif				
+#endif
 				pFile = fopen(keyFile.c_str(), "r");
 #if defined(_MSC_VER)
 #pragma warning(pop)
diff --git a/Crypto/include/Poco/Crypto/KeyPairImpl.h b/Crypto/include/Poco/Crypto/KeyPairImpl.h
index 6999a46d8..50718ce37 100644
--- a/Crypto/include/Poco/Crypto/KeyPairImpl.h
+++ b/Crypto/include/Poco/Crypto/KeyPairImpl.h
@@ -56,7 +56,7 @@ public:
 	virtual void save(const std::string& publicKeyFile,
 		const std::string& privateKeyFile = "",
 		const std::string& privateKeyPassphrase = "") const = 0;
-		/// Exports the public and private keys to the given files. 
+		/// Exports the public and private keys to the given files.
 		///
 		/// If an empty filename is specified, the corresponding key
 		/// is not exported.
diff --git a/Crypto/include/Poco/Crypto/RSADigestEngine.h b/Crypto/include/Poco/Crypto/RSADigestEngine.h
index 7c4d38605..e0c451d24 100644
--- a/Crypto/include/Poco/Crypto/RSADigestEngine.h
+++ b/Crypto/include/Poco/Crypto/RSADigestEngine.h
@@ -39,7 +39,7 @@ class Crypto_API RSADigestEngine: public Poco::DigestEngine
 	/// signed. Then, the hash value is encrypted, using
 	/// the RSA private key.
 	///
-	/// To verify a signature, pass it to the verify() 
+	/// To verify a signature, pass it to the verify()
 	/// member function. It will decrypt the signature
 	/// using the RSA public key and compare the resulting
 	/// hash with the actual hash of the data.
@@ -50,7 +50,7 @@ public:
 		DIGEST_MD5,
 		DIGEST_SHA1
 	};
-	
+
 	//@ deprecated
 	RSADigestEngine(const RSAKey& key, DigestType digestType = DIGEST_SHA1);
 		/// Creates the RSADigestEngine with the given RSA key,
@@ -74,11 +74,11 @@ public:
 	void reset();
 		/// Resets the engine so that a new
 		/// digest can be computed.
-		
+
 	const DigestEngine::Digest& digest();
-		/// Finishes the computation of the digest 
+		/// Finishes the computation of the digest
 		/// (the first time it's called) and
-		/// returns the message digest. 
+		/// returns the message digest.
 		///
 		/// Can be called multiple times.
 
diff --git a/Crypto/include/Poco/Crypto/RSAKeyImpl.h b/Crypto/include/Poco/Crypto/RSAKeyImpl.h
index 7b9f0f547..f0397381c 100644
--- a/Crypto/include/Poco/Crypto/RSAKeyImpl.h
+++ b/Crypto/include/Poco/Crypto/RSAKeyImpl.h
@@ -65,8 +65,8 @@ public:
 
 	RSAKeyImpl(const std::string& publicKeyFile, const std::string& privateKeyFile, const std::string& privateKeyPassphrase);
 		/// Creates the RSAKey, by reading public and private key from the given files and
-		/// using the given passphrase for the private key. Can only by used for signing if 
-		/// a private key is available. 
+		/// using the given passphrase for the private key. Can only by used for signing if
+		/// a private key is available.
 
 	RSAKeyImpl(std::istream* pPublicKeyStream, std::istream* pPrivateKeyStream, const std::string& privateKeyPassphrase);
 		/// Creates the RSAKey. Can only by used for signing if pPrivKey
@@ -97,7 +97,7 @@ public:
 	void save(const std::string& publicKeyFile,
 		const std::string& privateKeyFile = "",
 		const std::string& privateKeyPassphrase = "") const;
-		/// Exports the public and private keys to the given files. 
+		/// Exports the public and private keys to the given files.
 		///
 		/// If an empty filename is specified, the corresponding key
 		/// is not exported.
diff --git a/Crypto/samples/genrsakey/src/genrsakey.cpp b/Crypto/samples/genrsakey/src/genrsakey.cpp
index 75ce37544..f284c6281 100644
--- a/Crypto/samples/genrsakey/src/genrsakey.cpp
+++ b/Crypto/samples/genrsakey/src/genrsakey.cpp
@@ -52,29 +52,29 @@ public:
 	{
 		Poco::Crypto::initializeCrypto();
 	}
-	
+
 	~RSAApp()
 	{
 		Poco::Crypto::uninitializeCrypto();
 	}
 
-protected:	
+protected:
 	void initialize(Application& self)
 	{
 		loadConfiguration(); // load default configuration files, if present
 		Application::initialize(self);
 	}
-	
+
 	void uninitialize()
 	{
 		Application::uninitialize();
 	}
-	
+
 	void reinitialize(Application& self)
 	{
 		Application::reinitialize(self);
 	}
-	
+
 	void defineOptions(OptionSet& options)
 	{
 		Application::defineOptions(options);
@@ -97,7 +97,7 @@ protected:
 				.repeatable(false)
 				.argument("512|1024|2048|4096")
 				.callback(OptionCallback(this, &RSAApp::handleKeyLength)));
-				
+
 		options.addOption(
 			Option("exponent", "e", "defines the exponent of the key")
 				.required(false)
@@ -119,14 +119,14 @@ protected:
 				.argument("pwd")
 				.callback(OptionCallback(this, &RSAApp::handlePassword)));
 	}
-	
+
 	void handleHelp(const std::string& name, const std::string& value)
 	{
 		_helpRequested = true;
 		displayHelp();
 		stopOptionsProcessing();
 	}
-	
+
 	void handleKeyLength(const std::string& name, const std::string& value)
 	{
 		int keyLen = Poco::NumberParser::parse(value);
@@ -150,12 +150,12 @@ protected:
 			throw Poco::Util::IncompatibleOptionsException("Empty file prefix forbidden");
 		_name = value;
 	}
-	
+
 	void handlePassword(const std::string& name, const std::string& value)
 	{
 		_pwd = value;
 	}
-		
+
 	void displayHelp()
 	{
 		HelpFormatter helpFormatter(options());
@@ -176,14 +176,14 @@ protected:
 			logger().information("Generating key: DONE");
 			std::string pubFile(_name + ".pub");
 			std::string privFile(_name + ".priv");
-			
+
 			logger().information("Saving key to " + pubFile + " and " + privFile);
 			key.save(pubFile, privFile, _pwd);
 			logger().information("Key saved");
 		}
 		return Application::EXIT_OK;
 	}
-	
+
 private:
 	bool _helpRequested;
 	RSAKey::KeyLength _length;
diff --git a/Crypto/src/CryptoTransform.cpp b/Crypto/src/CryptoTransform.cpp
index e4e58fd6e..6ecba2ec8 100644
--- a/Crypto/src/CryptoTransform.cpp
+++ b/Crypto/src/CryptoTransform.cpp
@@ -28,7 +28,7 @@ CryptoTransform::~CryptoTransform()
 {
 }
 
-  
+
 int CryptoTransform::setPadding(int padding)
 {
 	return 1;
diff --git a/Crypto/src/DigestEngine.cpp b/Crypto/src/DigestEngine.cpp
index 92e7adeed..db5cf6069 100644
--- a/Crypto/src/DigestEngine.cpp
+++ b/Crypto/src/DigestEngine.cpp
@@ -26,10 +26,10 @@ DigestEngine::DigestEngine(const std::string& name):
 {
 	const EVP_MD* md = EVP_get_digestbyname(_name.c_str());
 	if (!md) throw Poco::NotFoundException(_name);
-	EVP_DigestInit_ex(_pContext, md, NULL);	
+	EVP_DigestInit_ex(_pContext, md, NULL);
 }
 
-	
+
 DigestEngine::~DigestEngine()
 {
 	EVP_MD_CTX_destroy(_pContext);
diff --git a/Crypto/src/RSADigestEngine.cpp b/Crypto/src/RSADigestEngine.cpp
index 948aa25ac..9786eec3f 100644
--- a/Crypto/src/RSADigestEngine.cpp
+++ b/Crypto/src/RSADigestEngine.cpp
@@ -51,7 +51,7 @@ void RSADigestEngine::reset()
 	_signature.clear();
 }
 
-	
+
 const DigestEngine::Digest& RSADigestEngine::digest()
 {
 	if (_digest.empty())
@@ -77,7 +77,7 @@ const DigestEngine::Digest& RSADigestEngine::signature()
     return _signature;
 }
 
-	
+
 bool RSADigestEngine::verify(const DigestEngine::Digest& sig)
 {
 	digest();
diff --git a/Crypto/testsuite/src/DigestEngineTest.cpp b/Crypto/testsuite/src/DigestEngineTest.cpp
index bedba5b97..7e1ccd819 100644
--- a/Crypto/testsuite/src/DigestEngineTest.cpp
+++ b/Crypto/testsuite/src/DigestEngineTest.cpp
@@ -47,7 +47,7 @@ void DigestEngineTest::testMD5()
 
 	engine.update("abcdefghijklmnopqrstuvwxyz");
 	assertTrue (DigestEngine::digestToHex(engine.digest()) == "c3fcd3d76192e4007dfb496cca67e13b");
-	
+
 	engine.update("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
 	engine.update("abcdefghijklmnopqrstuvwxyz0123456789");
 	assertTrue (DigestEngine::digestToHex(engine.digest()) == "d174ab98d277d9f5a5611c2c9f419d9f");
diff --git a/Crypto/testsuite/src/Driver.cpp b/Crypto/testsuite/src/Driver.cpp
index d5bbcfc8e..a4c76e977 100644
--- a/Crypto/testsuite/src/Driver.cpp
+++ b/Crypto/testsuite/src/Driver.cpp
@@ -23,7 +23,7 @@ public:
 	{
 		Poco::Crypto::initializeCrypto();
 	}
-	
+
 	~CryptoInitializer()
 	{
 		Poco::Crypto::uninitializeCrypto();
@@ -34,7 +34,7 @@ public:
 int main(int ac, char **av)
 {
 	CryptoInitializer ci;
-	
+
 	std::vector args;
 	for (int i = 0; i < ac; ++i)
 		args.push_back(std::string(av[i]));
diff --git a/Crypto/testsuite/src/RSATest.cpp b/Crypto/testsuite/src/RSATest.cpp
index b0850a5e9..e5a978cfa 100644
--- a/Crypto/testsuite/src/RSATest.cpp
+++ b/Crypto/testsuite/src/RSATest.cpp
@@ -251,7 +251,7 @@ void RSATest::testRSACipherLarge()
 	sizes.push_back (16383);
 	sizes.push_back (16384);
 	sizes.push_back (16385);
-	
+
 	Cipher::Ptr pCipher = CipherFactory::defaultFactory().createCipher(RSAKey(RSAKey::KL_1024, RSAKey::EXP_SMALL));
 	for (std::vector::const_iterator it = sizes.begin(); it != sizes.end(); ++it)
 	{
@@ -273,7 +273,7 @@ void RSATest::testCertificate()
 	Cipher::Ptr pCipher = CipherFactory::defaultFactory().createCipher(publicKey);
 	Cipher::Ptr pCipher2 = CipherFactory::defaultFactory().createCipher(privateKey);
 	std::string val("lets do some encryption");
-	
+
 	std::string enc = pCipher->encryptString(val);
 	std::string dec = pCipher2->decryptString(enc);
 	assertTrue (dec == val);
diff --git a/Crypto/testsuite/src/WinCEDriver.cpp b/Crypto/testsuite/src/WinCEDriver.cpp
index 9bbd0b29b..6f0530a76 100644
--- a/Crypto/testsuite/src/WinCEDriver.cpp
+++ b/Crypto/testsuite/src/WinCEDriver.cpp
@@ -23,7 +23,7 @@ public:
 	{
 		Poco::Crypto::initializeCrypto();
 	}
-	
+
 	~CryptoInitializer()
 	{
 		Poco::Crypto::uninitializeCrypto();
@@ -42,7 +42,7 @@ int _tmain(int argc, wchar_t* argv[])
 		std::wcstombs(buffer, argv[i], sizeof(buffer));
 		args.push_back(std::string(buffer));
 	}
-	CppUnit::TestRunner runner;	
+	CppUnit::TestRunner runner;
 	runner.addTest("CryptoTestSuite", CryptoTestSuite::suite());
 	return runner.run(args) ? 0 : 1;
 }
diff --git a/Crypto/testsuite/src/WinDriver.cpp b/Crypto/testsuite/src/WinDriver.cpp
index d7f26bba6..90d085fda 100644
--- a/Crypto/testsuite/src/WinDriver.cpp
+++ b/Crypto/testsuite/src/WinDriver.cpp
@@ -22,7 +22,7 @@ public:
 	{
 		Poco::Crypto::initializeCrypto();
 	}
-	
+
 	~CryptoInitializer()
 	{
 		Poco::Crypto::uninitializeCrypto();
diff --git a/Data/MySQL/include/Poco/Data/MySQL/Connector.h b/Data/MySQL/include/Poco/Data/MySQL/Connector.h
index 14960f439..77878ac6c 100644
--- a/Data/MySQL/include/Poco/Data/MySQL/Connector.h
+++ b/Data/MySQL/include/Poco/Data/MySQL/Connector.h
@@ -35,7 +35,7 @@ public:
 
 	Connector();
 		/// Creates the Connector.
-	
+
 	virtual ~Connector();
 		/// Destroys the Connector.
 
diff --git a/Data/MySQL/include/Poco/Data/MySQL/MySQLStatementImpl.h b/Data/MySQL/include/Poco/Data/MySQL/MySQLStatementImpl.h
index d06a8ba2f..e303afd27 100644
--- a/Data/MySQL/include/Poco/Data/MySQL/MySQLStatementImpl.h
+++ b/Data/MySQL/include/Poco/Data/MySQL/MySQLStatementImpl.h
@@ -40,10 +40,10 @@ class MySQL_API MySQLStatementImpl: public Poco::Data::StatementImpl
 public:
 	MySQLStatementImpl(SessionImpl& s);
 		/// Creates the MySQLStatementImpl.
-		
+
 	~MySQLStatementImpl();
 		/// Destroys the MySQLStatementImpl.
-		
+
 protected:
 	virtual std::size_t columnsReturned() const;
 		/// Returns number of columns returned by query.
@@ -51,32 +51,32 @@ protected:
 	virtual int affectedRowCount() const;
 		/// Returns the number of affected rows.
 		/// Used to find out the number of rows affected by insert, delete or update.
-	
+
 	virtual const MetaColumn& metaColumn(std::size_t pos) const;
 		/// Returns column meta data.
-		
+
 	virtual bool hasNext();
 		/// Returns true if a call to next() will return data.
-		
+
 	virtual std::size_t next();
 		/// Retrieves the next row from the resultset.
 		/// Will throw, if the resultset is empty.
-	
+
 	virtual bool canBind() const;
 		/// Returns true if a valid statement is set and we can bind.
 
 	virtual bool canCompile() const;
 		/// Returns true if another compile is possible.
-		
+
 	virtual void compileImpl();
 		/// Compiles the statement, doesn't bind yet
-		
+
 	virtual void bindImpl();
 		/// Binds parameters
-		
+
 	virtual Poco::Data::AbstractExtractor::Ptr extractor();
 		/// Returns the concrete extractor used by the statement.
-		
+
 	virtual Poco::Data::AbstractBinder::Ptr binder();
 		/// Returns the concrete binder used by the statement.
 
diff --git a/Data/MySQL/src/ResultMetadata.cpp b/Data/MySQL/src/ResultMetadata.cpp
index 3c34bf5ca..33c3785ed 100644
--- a/Data/MySQL/src/ResultMetadata.cpp
+++ b/Data/MySQL/src/ResultMetadata.cpp
@@ -78,16 +78,16 @@ namespace
 		default:
 			throw Poco::Data::MySQL::StatementException("unknown field type");
 		}
-	}	
+	}
 
 	Poco::Data::MetaColumn::ColumnDataType fieldType(const MYSQL_FIELD& field)
-		/// Convert field MySQL-type to Poco-type	
+		/// Convert field MySQL-type to Poco-type
 	{
 		bool unsig = ((field.flags & UNSIGNED_FLAG) == UNSIGNED_FLAG);
 
 		switch (field.type)
 		{
-		case MYSQL_TYPE_TINY:     
+		case MYSQL_TYPE_TINY:
 			if (unsig) return Poco::Data::MetaColumn::FDT_UINT8;
 			return Poco::Data::MetaColumn::FDT_INT8;
 
@@ -96,32 +96,32 @@ namespace
 			return Poco::Data::MetaColumn::FDT_INT16;
 
 		case MYSQL_TYPE_INT24:
-		case MYSQL_TYPE_LONG:     
+		case MYSQL_TYPE_LONG:
 			if (unsig) return Poco::Data::MetaColumn::FDT_UINT32;
 			return Poco::Data::MetaColumn::FDT_INT32;
 
-		case MYSQL_TYPE_FLOAT:    
+		case MYSQL_TYPE_FLOAT:
 			return Poco::Data::MetaColumn::FDT_FLOAT;
 
 		case MYSQL_TYPE_DECIMAL:
 		case MYSQL_TYPE_NEWDECIMAL:
-		case MYSQL_TYPE_DOUBLE:   
+		case MYSQL_TYPE_DOUBLE:
 			return Poco::Data::MetaColumn::FDT_DOUBLE;
 
-		case MYSQL_TYPE_LONGLONG: 
+		case MYSQL_TYPE_LONGLONG:
 			if (unsig) return Poco::Data::MetaColumn::FDT_UINT64;
 			return Poco::Data::MetaColumn::FDT_INT64;
-			
+
 		case MYSQL_TYPE_DATE:
 			return Poco::Data::MetaColumn::FDT_DATE;
-			
+
 		case MYSQL_TYPE_TIME:
 			return Poco::Data::MetaColumn::FDT_TIME;
-			
+
 		case MYSQL_TYPE_DATETIME:
 		case MYSQL_TYPE_TIMESTAMP:
 			return Poco::Data::MetaColumn::FDT_TIMESTAMP;
-			
+
 		case MYSQL_TYPE_STRING:
 		case MYSQL_TYPE_VAR_STRING:
 			return Poco::Data::MetaColumn::FDT_STRING;
@@ -244,7 +244,7 @@ std::size_t ResultMetadata::length(std::size_t pos) const
 }
 
 
-const unsigned char* ResultMetadata::rawData(std::size_t pos) const 
+const unsigned char* ResultMetadata::rawData(std::size_t pos) const
 {
 	if ((_lengths[pos] == 0) && (_row[pos].buffer == nullptr))
 		return reinterpret_cast("");
@@ -254,7 +254,7 @@ const unsigned char* ResultMetadata::rawData(std::size_t pos) const
 }
 
 
-bool ResultMetadata::isNull(std::size_t pos) const 
+bool ResultMetadata::isNull(std::size_t pos) const
 {
 	return (_isNull[pos] != 0);
 }
diff --git a/Data/ODBC/Makefile b/Data/ODBC/Makefile
index 00e86dc45..180a72b70 100644
--- a/Data/ODBC/Makefile
+++ b/Data/ODBC/Makefile
@@ -10,7 +10,7 @@ include ODBC.make
 
 objects = Binder ConnectionHandle Connector EnvironmentHandle \
 	Extractor ODBCException ODBCMetaColumn ODBCStatementImpl \
-	Parameter Preparator SessionImpl TypeInfo Unicode Utility 
+	Parameter Preparator SessionImpl TypeInfo Unicode Utility
 
 target         = PocoDataODBC
 target_version = $(LIBVERSION)
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Connector.h b/Data/ODBC/include/Poco/Data/ODBC/Connector.h
index 8849bf775..6ddfedf75 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Connector.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Connector.h
@@ -58,7 +58,7 @@ public:
 		///
 		/// This can cause issues with SQL Server, resulting in an error
 		/// ("The data types varchar and text are incompatible in the equal to operator")
-		/// when comparing against a VARCHAR. 
+		/// when comparing against a VARCHAR.
 		///
 		/// Set this to false to bind std::string to SQL_VARCHAR.
 		///
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h b/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h
index 86c15fa42..818be4a1e 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h
@@ -36,7 +36,7 @@ template 
 class Diagnostics
 	/// Utility class providing functionality for retrieving ODBC diagnostic
 	/// records. Diagnostics object must be created with corresponding handle
-	/// as constructor argument. During construction, diagnostic records fields 
+	/// as constructor argument. During construction, diagnostic records fields
 	/// are populated and the object is ready for querying.
 {
 public:
@@ -92,7 +92,7 @@ public:
 	}
 
 	std::string connectionName() const
-		/// Returns the connection name. 
+		/// Returns the connection name.
 		/// If there is no active connection, connection name defaults to NONE.
 		/// If connection name is not applicable for query context (such as when querying environment handle),
 		/// connection name defaults to NOT_APPLICABLE.
@@ -146,54 +146,54 @@ public:
 
 		reset();
 
-		while (!Utility::isError(SQLGetDiagRec(handleType, 
-			_handle, 
-			count, 
-			df._sqlState, 
-			&df._nativeError, 
-			df._message, 
-			SQL_MESSAGE_LENGTH, 
-			&messageLength))) 
+		while (!Utility::isError(SQLGetDiagRec(handleType,
+			_handle,
+			count,
+			df._sqlState,
+			&df._nativeError,
+			df._message,
+			SQL_MESSAGE_LENGTH,
+			&messageLength)))
 		{
 			if (1 == count)
 			{
 				// success of the following two calls is optional
 				// (they fail if connection has not been established yet
 				//  or return empty string if not applicable for the context)
-				if (Utility::isError(SQLGetDiagField(handleType, 
-					_handle, 
-					count, 
-					SQL_DIAG_CONNECTION_NAME, 
-					_connectionName, 
-					sizeof(_connectionName), 
+				if (Utility::isError(SQLGetDiagField(handleType,
+					_handle,
+					count,
+					SQL_DIAG_CONNECTION_NAME,
+					_connectionName,
+					sizeof(_connectionName),
 					&messageLength)))
 				{
-					std::size_t len = sizeof(_connectionName) > none.length() ? 
+					std::size_t len = sizeof(_connectionName) > none.length() ?
 						none.length() : sizeof(_connectionName) - 1;
 					std::memcpy(_connectionName, none.c_str(), len);
 				}
-				else if (0 == _connectionName[0]) 
+				else if (0 == _connectionName[0])
 				{
-					std::size_t len = sizeof(_connectionName) > na.length() ? 
+					std::size_t len = sizeof(_connectionName) > na.length() ?
 						na.length() : sizeof(_connectionName) - 1;
 					std::memcpy(_connectionName, na.c_str(), len);
 				}
-				
-				if (Utility::isError(SQLGetDiagField(handleType, 
-					_handle, 
-					count, 
-					SQL_DIAG_SERVER_NAME, 
-					_serverName, 
-					sizeof(_serverName), 
+
+				if (Utility::isError(SQLGetDiagField(handleType,
+					_handle,
+					count,
+					SQL_DIAG_SERVER_NAME,
+					_serverName,
+					sizeof(_serverName),
 					&messageLength)))
 				{
-					std::size_t len = sizeof(_serverName) > none.length() ? 
+					std::size_t len = sizeof(_serverName) > none.length() ?
 						none.length() : sizeof(_serverName) - 1;
 					std::memcpy(_serverName, none.c_str(), len);
 				}
-				else if (0 == _serverName[0]) 
+				else if (0 == _serverName[0])
 				{
-					std::size_t len = sizeof(_serverName) > na.length() ? 
+					std::size_t len = sizeof(_serverName) > na.length() ?
 						na.length() : sizeof(_serverName) - 1;
 					std::memcpy(_serverName, na.c_str(), len);
 				}
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Error.h b/Data/ODBC/include/Poco/Data/ODBC/Error.h
index 049cc02d1..8afc08468 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Error.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Error.h
@@ -66,11 +66,11 @@ public:
 	std::string& toString(int index, std::string& str) const
 		/// Generates the string for the diagnostic record.
 	{
-		if ((index < 0) || (index > (count() - 1))) 
+		if ((index < 0) || (index > (count() - 1)))
 			return str;
 
 		std::string s;
-		Poco::format(s, 
+		Poco::format(s,
 			"===========================\n"
 			"ODBC Diagnostic record #%d:\n"
 			"===========================\n"
@@ -90,7 +90,7 @@ public:
 	{
 		std::string str;
 
-		Poco::format(str, 
+		Poco::format(str,
 			"Connection:%s\nServer:%s\n",
 			_diagnostics.connectionName(),
 			_diagnostics.serverName());
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Handle.h b/Data/ODBC/include/Poco/Data/ODBC/Handle.h
index 962ffe6c8..9d9dbc60c 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Handle.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Handle.h
@@ -39,14 +39,14 @@ class Handle
 /// ODBC handle class template
 {
 public:
-	Handle(const ConnectionHandle& rConnection): 
+	Handle(const ConnectionHandle& rConnection):
 		_rConnection(rConnection),
 		_handle(0)
 			/// Creates the Handle.
 	{
-		if (Utility::isError(SQLAllocHandle(handleType, 
-			_rConnection, 
-			&_handle))) 
+		if (Utility::isError(SQLAllocHandle(handleType,
+			_rConnection,
+			&_handle)))
 		{
 			throw ODBCException("Could not allocate statement handle.");
 		}
@@ -58,7 +58,7 @@ public:
 		try
 		{
 #if defined(_DEBUG)
-			SQLRETURN rc = 
+			SQLRETURN rc =
 #endif
 			SQLFreeHandle(handleType, _handle);
 			// N.B. Destructors should not throw, but neither do we want to
diff --git a/Data/ODBC/include/Poco/Data/ODBC/ODBCMetaColumn.h b/Data/ODBC/include/Poco/Data/ODBC/ODBCMetaColumn.h
index cc9df6d36..374f34dfe 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/ODBCMetaColumn.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/ODBCMetaColumn.h
@@ -39,15 +39,15 @@ class ODBC_API ODBCMetaColumn: public MetaColumn
 public:
 	explicit ODBCMetaColumn(const StatementHandle& rStmt, std::size_t position);
 		/// Creates the ODBCMetaColumn.
-		
+
 	~ODBCMetaColumn();
 		/// Destroys the ODBCMetaColumn.
 
 	std::size_t dataLength() const;
-		/// A numeric value that is either the maximum or actual character length of a character 
-		/// string or binary data type. It is the maximum character length for a fixed-length data type, 
-		/// or the actual character length for a variable-length data type. Its value always excludes the 
-		/// null-termination byte that ends the character string. 
+		/// A numeric value that is either the maximum or actual character length of a character
+		/// string or binary data type. It is the maximum character length for a fixed-length data type,
+		/// or the actual character length for a variable-length data type. Its value always excludes the
+		/// null-termination byte that ends the character string.
 		/// This information is returned from the SQL_DESC_LENGTH record field of the IRD.
 
 	bool isUnsigned() const;
diff --git a/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h b/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h
index e3a6492ca..db83e6d2d 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h
@@ -76,7 +76,7 @@ protected:
 		/// Returns true if another compile is possible.
 
 	void compileImpl();
-		/// Compiles the statement, doesn't bind yet. 
+		/// Compiles the statement, doesn't bind yet.
 		/// Does nothing if the statement has already been compiled.
 
 	void bindImpl();
@@ -101,12 +101,12 @@ private:
 	typedef std::vector         ExtractorVec;
 	typedef std::vector      ColumnPtrVec;
 	typedef std::vector         ColumnPtrVecVec;
-	
+
 	static const std::string INVALID_CURSOR_STATE;
 
 	void clear();
 		/// Closes the cursor and resets indicator variables.
-	
+
 	void doBind();
 		/// Binds parameters.
 
@@ -119,8 +119,8 @@ private:
 	void doPrepare();
 		/// Prepares placeholders for data returned by statement.
 		/// It is called during statement compilation for SQL statements
-		/// returning data. For stored procedures returning datasets, 
-		/// it is called upon the first check for data availability 
+		/// returning data. For stored procedures returning datasets,
+		/// it is called upon the first check for data availability
 		/// (see hasNext() function).
 
 	bool hasData() const;
@@ -133,8 +133,8 @@ private:
 		/// Returns true if there is a row fetched but not yet extracted.
 
 	void putData();
-		/// Called whenever SQLExecute returns SQL_NEED_DATA. This is expected 
-		/// behavior for PB_AT_EXEC binding mode. 
+		/// Called whenever SQLExecute returns SQL_NEED_DATA. This is expected
+		/// behavior for PB_AT_EXEC binding mode.
 
 	void addPreparator();
 	void fillColumns();
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Parameter.h b/Data/ODBC/include/Poco/Data/ODBC/Parameter.h
index e9f11bdb5..6afc4fec1 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Parameter.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Parameter.h
@@ -36,7 +36,7 @@ class ODBC_API Parameter
 public:
 	explicit Parameter(const StatementHandle& rStmt, std::size_t colNum);
 		/// Creates the Parameter.
-		
+
 	~Parameter();
 		/// Destroys the Parameter.
 
@@ -47,11 +47,11 @@ public:
 		/// Returns the SQL data type.
 
 	std::size_t columnSize() const;
-		/// Returns the the size of the column or expression of the corresponding 
+		/// Returns the the size of the column or expression of the corresponding
 		/// parameter marker as defined by the data source.
 
 	std::size_t decimalDigits() const;
-		/// Returns the number of decimal digits of the column or expression 
+		/// Returns the number of decimal digits of the column or expression
 		/// of the corresponding parameter as defined by the data source.
 
 	bool isNullable() const;
diff --git a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
index 0b132cbc7..d67269816 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
@@ -54,15 +54,15 @@ public:
 
 	SessionImpl(const std::string& connect,
 		std::size_t loginTimeout,
-		std::size_t maxFieldSize = ODBC_MAX_FIELD_SIZE, 
+		std::size_t maxFieldSize = ODBC_MAX_FIELD_SIZE,
 		bool autoBind = true,
 		bool autoExtract = true);
 		/// Creates the SessionImpl. Opens a connection to the database.
 		/// Throws NotConnectedException if connection was not succesful.
 
 	//@ deprecated
-	SessionImpl(const std::string& connect, 
-		Poco::Any maxFieldSize = ODBC_MAX_FIELD_SIZE, 
+	SessionImpl(const std::string& connect,
+		Poco::Any maxFieldSize = ODBC_MAX_FIELD_SIZE,
 		bool enforceCapability=false,
 		bool autoBind = true,
 		bool autoExtract = true);
@@ -144,7 +144,7 @@ public:
 
 	void setMaxFieldSize(const std::string& rName, const Poco::Any& rValue);
 		/// Sets the max field size (the default used when column size is unknown).
-		
+
 	Poco::Any getMaxFieldSize(const std::string& rName="") const;
 		/// Returns the max field size (the default used when column size is unknown).
 
@@ -154,11 +154,11 @@ public:
 	void setQueryTimeout(const std::string&, const Poco::Any& value);
 		/// Sets the timeout (in seconds) for queries.
 		/// Value must be of type int.
-		
+
 	Poco::Any getQueryTimeout(const std::string&) const;
 		/// Returns the timeout (in seconds) for queries,
 		/// or -1 if no timeout has been set.
-		
+
 	int queryTimeout() const;
 		/// Returns the timeout (in seconds) for queries,
 		/// or -1 if no timeout has been set.
@@ -230,7 +230,7 @@ inline void SessionImpl::setMaxFieldSize(const std::string& rName, const Poco::A
 	_maxFieldSize = rValue;
 }
 
-		
+
 inline Poco::Any SessionImpl::getMaxFieldSize(const std::string& rName) const
 {
 	return _maxFieldSize;
@@ -242,7 +242,7 @@ inline void SessionImpl::setDataTypeInfo(const std::string& rName, const Poco::A
 	throw InvalidAccessException();
 }
 
-		
+
 inline Poco::Any SessionImpl::dataTypeInfo(const std::string& rName) const
 {
 	return &_dataTypes;
diff --git a/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h b/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h
index f8b14a801..043bf7e72 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h
@@ -89,12 +89,12 @@ public:
 		/// Returns information about specified data type as specified by parameter 'type'.
 		/// The requested information is specified by parameter 'param'.
 		/// Will fail with a Poco::NotFoundException thrown if the param is not found
-		
+
 	bool tryGetInfo(SQLSMALLINT type, const std::string& param, DynamicAny& result) const;
 		/// Returns information about specified data type as specified by parameter 'type' in param result.
 		/// The requested information is specified by parameter 'param'.
 		/// Will return false if the param is not found. The value of result will be not changed in this case.
-			
+
 
 	void print(std::ostream& ostr);
 		/// Prints all the types (as reported by the underlying database)
@@ -104,8 +104,8 @@ private:
 	void fillCTypes();
 	void fillSQLTypes();
 
-	DataTypeMap _cDataTypes; 
-	DataTypeMap _sqlDataTypes; 
+	DataTypeMap _cDataTypes;
+	DataTypeMap _sqlDataTypes;
 	TypeInfoVec _typeInfo;
 	SQLHDBC*    _pHDBC;
 };
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Unicode_WIN32.h b/Data/ODBC/include/Poco/Data/ODBC/Unicode_WIN32.h
index 2cd237b94..8c22d31cc 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Unicode_WIN32.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Unicode_WIN32.h
@@ -27,7 +27,7 @@ inline void makeUTF16(SQLCHAR* pSQLChar, SQLINTEGER length, std::wstring& target
 	/// Utility function for conversion from UTF-8 to UTF-16
 {
 	int len = length;
-	if (SQL_NTS == len) 
+	if (SQL_NTS == len)
 		len = (int) std::strlen((const char *) pSQLChar);
 
 	UnicodeConverter::toUTF16((const char *) pSQLChar, len, target);
@@ -45,7 +45,7 @@ inline void makeUTF8(Poco::Buffer& buffer, SQLINTEGER length, SQLPOINTE
 	length /= sizeof(wchar_t);
 	std::string result;
 	UnicodeConverter::toUTF8(buffer.begin(), length, result);
-	
+
 	std::memset(pTarget, 0, targetLength);
 #if defined(_MSC_VER)
 #pragma warning(push)
diff --git a/Data/ODBC/src/ConnectionHandle.cpp b/Data/ODBC/src/ConnectionHandle.cpp
index 1fde52994..3efc04824 100644
--- a/Data/ODBC/src/ConnectionHandle.cpp
+++ b/Data/ODBC/src/ConnectionHandle.cpp
@@ -24,14 +24,14 @@ namespace Data {
 namespace ODBC {
 
 
-ConnectionHandle::ConnectionHandle(EnvironmentHandle* pEnvironment): 
+ConnectionHandle::ConnectionHandle(EnvironmentHandle* pEnvironment):
 	_pEnvironment(pEnvironment ? pEnvironment : new EnvironmentHandle),
-	_hdbc(SQL_NULL_HDBC), 
+	_hdbc(SQL_NULL_HDBC),
 	_ownsEnvironment(pEnvironment ? false : true)
 {
-	if (Utility::isError(SQLAllocHandle(SQL_HANDLE_DBC, 
-		_pEnvironment->handle(), 
-		&_hdbc))) 
+	if (Utility::isError(SQLAllocHandle(SQL_HANDLE_DBC,
+		_pEnvironment->handle(),
+		&_hdbc)))
 	{
 		throw ODBCException("Could not allocate connection handle.");
 	}
diff --git a/Data/ODBC/src/EnvironmentHandle.cpp b/Data/ODBC/src/EnvironmentHandle.cpp
index 5b2351daf..b9c19182a 100644
--- a/Data/ODBC/src/EnvironmentHandle.cpp
+++ b/Data/ODBC/src/EnvironmentHandle.cpp
@@ -26,12 +26,12 @@ namespace ODBC {
 
 EnvironmentHandle::EnvironmentHandle(): _henv(SQL_NULL_HENV)
 {
-	if (Utility::isError(SQLAllocHandle(SQL_HANDLE_ENV, 
-			SQL_NULL_HANDLE, 
+	if (Utility::isError(SQLAllocHandle(SQL_HANDLE_ENV,
+			SQL_NULL_HANDLE,
 			&_henv)) ||
-		Utility::isError(SQLSetEnvAttr(_henv, 
-			SQL_ATTR_ODBC_VERSION, 
-			(SQLPOINTER) SQL_OV_ODBC3, 
+		Utility::isError(SQLSetEnvAttr(_henv,
+			SQL_ATTR_ODBC_VERSION,
+			(SQLPOINTER) SQL_OV_ODBC3,
 			0)))
 	{
 		throw ODBCException("Could not initialize environment.");
diff --git a/Data/ODBC/src/Parameter.cpp b/Data/ODBC/src/Parameter.cpp
index 23023779b..b7dfe2970 100644
--- a/Data/ODBC/src/Parameter.cpp
+++ b/Data/ODBC/src/Parameter.cpp
@@ -23,14 +23,14 @@ namespace Data {
 namespace ODBC {
 
 
-Parameter::Parameter(const StatementHandle& rStmt, std::size_t colNum) : 
-	_rStmt(rStmt), 
+Parameter::Parameter(const StatementHandle& rStmt, std::size_t colNum) :
+	_rStmt(rStmt),
 	_number(colNum)
 {
 	init();
 }
 
-	
+
 Parameter::~Parameter()
 {
 }
@@ -38,8 +38,8 @@ Parameter::~Parameter()
 
 void Parameter::init()
 {
-	if (Utility::isError(SQLDescribeParam(_rStmt, 
-		(SQLUSMALLINT) _number + 1, 
+	if (Utility::isError(SQLDescribeParam(_rStmt,
+		(SQLUSMALLINT) _number + 1,
 		&_dataType,
 		&_columnSize,
 		&_decimalDigits,
diff --git a/Data/ODBC/src/SessionImpl.cpp b/Data/ODBC/src/SessionImpl.cpp
index 50d83470d..dc21541a1 100644
--- a/Data/ODBC/src/SessionImpl.cpp
+++ b/Data/ODBC/src/SessionImpl.cpp
@@ -31,7 +31,7 @@ SessionImpl::SessionImpl(const std::string& connect,
 	std::size_t loginTimeout,
 	std::size_t maxFieldSize,
 	bool autoBind,
-	bool autoExtract): 
+	bool autoExtract):
 	Poco::Data::AbstractSessionImpl(connect, loginTimeout),
 		_connector(Connector::KEY),
 		_maxFieldSize(maxFieldSize),
@@ -49,7 +49,7 @@ SessionImpl::SessionImpl(const std::string& connect,
 
 
 SessionImpl::SessionImpl(const std::string& connect,
-	Poco::Any maxFieldSize, 
+	Poco::Any maxFieldSize,
 	bool enforceCapability,
 	bool autoBind,
 	bool autoExtract): Poco::Data::AbstractSessionImpl(connect),
@@ -136,20 +136,20 @@ void SessionImpl::open(const std::string& connect)
 	}
 
 	_dataTypes.fillTypeInfo(_db);
-		addProperty("dataTypeInfo", 
-		&SessionImpl::setDataTypeInfo, 
+		addProperty("dataTypeInfo",
+		&SessionImpl::setDataTypeInfo,
 		&SessionImpl::dataTypeInfo);
 
-	addFeature("autoCommit", 
-		&SessionImpl::autoCommit, 
+	addFeature("autoCommit",
+		&SessionImpl::autoCommit,
 		&SessionImpl::isAutoCommit);
 
-	addFeature("autoBind", 
-		&SessionImpl::autoBind, 
+	addFeature("autoBind",
+		&SessionImpl::autoBind,
 		&SessionImpl::isAutoBind);
 
-	addFeature("autoExtract", 
-		&SessionImpl::autoExtract, 
+	addFeature("autoExtract",
+		&SessionImpl::autoExtract,
 		&SessionImpl::isAutoExtract);
 
 	addProperty("maxFieldSize",
@@ -222,11 +222,11 @@ bool SessionImpl::canTransact() const
 	if (ODBC_TXN_CAPABILITY_UNKNOWN == _canTransact)
 	{
 		SQLUSMALLINT ret;
-		checkError(Poco::Data::ODBC::SQLGetInfo(_db, SQL_TXN_CAPABLE, &ret, 0, 0), 
+		checkError(Poco::Data::ODBC::SQLGetInfo(_db, SQL_TXN_CAPABLE, &ret, 0, 0),
 			"Failed to obtain transaction capability info.");
 
-		_canTransact = (SQL_TC_NONE != ret) ? 
-			ODBC_TXN_CAPABILITY_TRUE : 
+		_canTransact = (SQL_TC_NONE != ret) ?
+			ODBC_TXN_CAPABILITY_TRUE :
 			ODBC_TXN_CAPABILITY_FALSE;
 	}
 
@@ -329,10 +329,10 @@ Poco::UInt32 SessionImpl::transactionIsolation(SQLULEN isolation)
 
 void SessionImpl::autoCommit(const std::string&, bool val)
 {
-	checkError(Poco::Data::ODBC::SQLSetConnectAttr(_db, 
-		SQL_ATTR_AUTOCOMMIT, 
-		val ? (SQLPOINTER) SQL_AUTOCOMMIT_ON : 
-			(SQLPOINTER) SQL_AUTOCOMMIT_OFF, 
+	checkError(Poco::Data::ODBC::SQLSetConnectAttr(_db,
+		SQL_ATTR_AUTOCOMMIT,
+		val ? (SQLPOINTER) SQL_AUTOCOMMIT_ON :
+			(SQLPOINTER) SQL_AUTOCOMMIT_OFF,
 		SQL_IS_UINTEGER), "Failed to set automatic commit.");
 }
 
@@ -415,7 +415,7 @@ void SessionImpl::close()
 	{
 		commit();
 	}
-	catch (ConnectionException&) 
+	catch (ConnectionException&)
 	{
 	}
 
@@ -433,7 +433,7 @@ int SessionImpl::maxStatementLength() const
 		0,
 		0)))
 	{
-		throw ConnectionException(_db, 
+		throw ConnectionException(_db,
 			"SQLGetInfo(SQL_MAXIMUM_STATEMENT_LENGTH)");
 	}
 
diff --git a/Data/ODBC/src/TypeInfo.cpp b/Data/ODBC/src/TypeInfo.cpp
index ca5aa0eb1..d667ad00b 100644
--- a/Data/ODBC/src/TypeInfo.cpp
+++ b/Data/ODBC/src/TypeInfo.cpp
@@ -110,7 +110,7 @@ void TypeInfo::fillTypeInfo(SQLHDBC pHDBC)
 				char literalSuffix[stringSize] = { 0 };
 				char createParams[stringSize] = { 0 };
 				char localTypeName[stringSize] = { 0 };
-				
+
 				TypeInfoTup ti("TYPE_NAME", "",
 					"DATA_TYPE", 0,
 					"COLUMN_SIZE", 0,
@@ -142,10 +142,10 @@ void TypeInfo::fillTypeInfo(SQLHDBC pHDBC)
 				ti.set<4>(literalSuffix);
 				rc = SQLGetData(hstmt, 6, SQL_C_CHAR, createParams, sizeof(createParams), &ind);
 				ti.set<5>(createParams);
-				rc = SQLGetData(hstmt, 7, SQL_C_SSHORT, &ti.get<6>(), sizeof(SQLSMALLINT), &ind); 
-				rc = SQLGetData(hstmt, 8, SQL_C_SSHORT, &ti.get<7>(), sizeof(SQLSMALLINT), &ind); 
-				rc = SQLGetData(hstmt, 9, SQL_C_SSHORT, &ti.get<8>(), sizeof(SQLSMALLINT), &ind); 
-				rc = SQLGetData(hstmt, 10, SQL_C_SSHORT, &ti.get<9>(), sizeof(SQLSMALLINT), &ind); 
+				rc = SQLGetData(hstmt, 7, SQL_C_SSHORT, &ti.get<6>(), sizeof(SQLSMALLINT), &ind);
+				rc = SQLGetData(hstmt, 8, SQL_C_SSHORT, &ti.get<7>(), sizeof(SQLSMALLINT), &ind);
+				rc = SQLGetData(hstmt, 9, SQL_C_SSHORT, &ti.get<8>(), sizeof(SQLSMALLINT), &ind);
+				rc = SQLGetData(hstmt, 10, SQL_C_SSHORT, &ti.get<9>(), sizeof(SQLSMALLINT), &ind);
 				rc = SQLGetData(hstmt, 11, SQL_C_SSHORT, &ti.get<10>(), sizeof(SQLSMALLINT), &ind);
 				rc = SQLGetData(hstmt, 12, SQL_C_SSHORT, &ti.get<11>(), sizeof(SQLSMALLINT), &ind);
 				rc = SQLGetData(hstmt, 13, SQL_C_CHAR, localTypeName, sizeof(localTypeName), &ind);
@@ -192,7 +192,7 @@ bool TypeInfo::tryGetInfo(SQLSMALLINT type, const std::string& param, DynamicAny
 			return true;
 		}
 	}
-	
+
 	return false;
 }
 
@@ -239,24 +239,24 @@ void TypeInfo::print(std::ostream& ostr)
 
 	for (; it != end; ++it)
 	{
-		ostr << it->get<0>() << "\t" 
-			<< it->get<1>() << "\t" 
-			<< it->get<2>() << "\t" 
-			<< it->get<3>() << "\t" 
-			<< it->get<4>() << "\t" 
-			<< it->get<5>() << "\t" 
-			<< it->get<6>() << "\t" 
-			<< it->get<7>() << "\t" 
-			<< it->get<8>() << "\t" 
-			<< it->get<9>() << "\t" 
-			<< it->get<10>() << "\t" 
-			<< it->get<11>() << "\t" 
-			<< it->get<12>() << "\t" 
-			<< it->get<13>() << "\t" 
+		ostr << it->get<0>() << "\t"
+			<< it->get<1>() << "\t"
+			<< it->get<2>() << "\t"
+			<< it->get<3>() << "\t"
+			<< it->get<4>() << "\t"
+			<< it->get<5>() << "\t"
+			<< it->get<6>() << "\t"
+			<< it->get<7>() << "\t"
+			<< it->get<8>() << "\t"
+			<< it->get<9>() << "\t"
+			<< it->get<10>() << "\t"
+			<< it->get<11>() << "\t"
+			<< it->get<12>() << "\t"
+			<< it->get<13>() << "\t"
 			<< it->get<14>() << "\t"
-			<< it->get<15>() << "\t" 
-			<< it->get<16>() << "\t" 
-			<< it->get<17>() << "\t" 
+			<< it->get<15>() << "\t"
+			<< it->get<16>() << "\t"
+			<< it->get<17>() << "\t"
 			<< it->get<18>() << std::endl;
 	}
 }
diff --git a/Data/ODBC/src/Unicode_UNIXODBC.cpp b/Data/ODBC/src/Unicode_UNIXODBC.cpp
index 4caf097c2..1f671fed5 100644
--- a/Data/ODBC/src/Unicode_UNIXODBC.cpp
+++ b/Data/ODBC/src/Unicode_UNIXODBC.cpp
@@ -38,7 +38,7 @@ namespace ODBC {
 void makeUTF16(SQLCHAR* pSQLChar, SQLINTEGER length, std::string& target)
 {
 	int len = length;
-	if (SQL_NTS == len) 
+	if (SQL_NTS == len)
 		len = (int) std::strlen((const char *) pSQLChar);
 
 	UTF8Encoding utf8Encoding;
@@ -59,7 +59,7 @@ void makeUTF8(Poco::Buffer& buffer, SQLINTEGER length, SQLPOINTER pTar
 	std::string result;
 	if (0 != converter.convert(buffer.begin(), length, result))
 		throw DataFormatException("Error converting UTF-16 to UTF-8");
-	
+
 	std::memset(pTarget, 0, targetLength);
 	std::strncpy((char*) pTarget, result.c_str(), result.size() < targetLength ? result.size() : targetLength);
 }
@@ -69,7 +69,7 @@ SQLRETURN SQLColAttribute(SQLHSTMT hstmt,
 	SQLUSMALLINT   iCol,
 	SQLUSMALLINT   iField,
 	SQLPOINTER	   pCharAttr,
-	SQLSMALLINT	   cbCharAttrMax,	
+	SQLSMALLINT	   cbCharAttrMax,
 	SQLSMALLINT*   pcbCharAttr,
 	NumAttrPtrType pNumAttr)
 {
@@ -93,7 +93,7 @@ SQLRETURN SQLColAttribute(SQLHSTMT hstmt,
 		iCol,
 		iField,
 		pCharAttr,
-		cbCharAttrMax,	
+		cbCharAttrMax,
 		pcbCharAttr,
 		pNumAttr);
 }
@@ -133,8 +133,8 @@ SQLRETURN SQLConnect(SQLHDBC hdbc,
 
 	std::string sqlPWD;
 	makeUTF16(szAuthStr, cbAuthStr, sqlPWD);
-	
-	return SQLConnectW(hdbc, 
+
+	return SQLConnectW(hdbc,
 		(SQLWCHAR*) sqlDSN.c_str(), cbDSN,
 		(SQLWCHAR*) sqlUID.c_str(), cbUID,
 		(SQLWCHAR*) sqlPWD.c_str(), cbAuthStr);
@@ -211,7 +211,7 @@ SQLRETURN SQLGetConnectAttr(SQLHDBC hdbc,
 		makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax);
 		return rc;
 	}
-	
+
 
 	return SQLGetConnectAttrW(hdbc,
 		fAttribute,
@@ -231,9 +231,9 @@ SQLRETURN SQLGetCursorName(SQLHSTMT hstmt,
 
 
 SQLRETURN SQLSetDescField(SQLHDESC hdesc,
-	SQLSMALLINT iRecord, 
+	SQLSMALLINT iRecord,
 	SQLSMALLINT iField,
-	SQLPOINTER  rgbValue, 
+	SQLPOINTER  rgbValue,
 	SQLINTEGER  cbValueMax)
 {
 	if (isString(rgbValue, cbValueMax))
@@ -242,16 +242,16 @@ SQLRETURN SQLSetDescField(SQLHDESC hdesc,
 		makeUTF16((SQLCHAR*) rgbValue, cbValueMax, str);
 
 		return SQLSetDescFieldW(hdesc,
-			iRecord, 
+			iRecord,
 			iField,
-			(SQLPOINTER) str.c_str(), 
+			(SQLPOINTER) str.c_str(),
 			(SQLINTEGER) str.size() * sizeof(SQLWCHAR));
 	}
 
 	return SQLSetDescFieldW(hdesc,
-		iRecord, 
+		iRecord,
 		iField,
-		rgbValue, 
+		rgbValue,
 		cbValueMax);
 }
 
@@ -296,7 +296,7 @@ SQLRETURN SQLGetDescRec(SQLHDESC hdesc,
 	SQLSMALLINT* pfType,
 	SQLSMALLINT* pfSubType,
 	SQLLEN*      pLength,
-	SQLSMALLINT* pPrecision, 
+	SQLSMALLINT* pPrecision,
 	SQLSMALLINT* pScale,
 	SQLSMALLINT* pNullable)
 {
@@ -391,7 +391,7 @@ SQLRETURN SQLSetConnectAttr(SQLHDBC hdbc,
 
 		return SQLSetConnectAttrW(hdbc,
 			fAttribute,
-			(SQLWCHAR*) str.c_str(), 
+			(SQLWCHAR*) str.c_str(),
 			(SQLINTEGER) str.size() * sizeof(SQLWCHAR));
 	}
 
@@ -487,7 +487,7 @@ SQLRETURN SQLGetInfo(SQLHDBC hdbc,
 			pcbInfoValue);
 
 		makeUTF8(buffer, *pcbInfoValue, rgbInfoValue, cbInfoValueMax);
-		
+
 		return rc;
 	}
 
@@ -590,12 +590,12 @@ SQLRETURN SQLDriverConnect(SQLHDBC hdbc,
 	SQLUSMALLINT fDriverCompletion)
 {
 	SQLSMALLINT len = cbConnStrIn;
-	if (SQL_NTS == len) 
+	if (SQL_NTS == len)
 		len = (SQLSMALLINT) std::strlen((const char*) szConnStrIn) + 1;
 
 	std::string connStrIn;
 	makeUTF16(szConnStrIn, len, connStrIn);
-	
+
 	Buffer out(cbConnStrOutMax);
 	SQLRETURN rc = SQLDriverConnectW(hdbc,
 		hwnd,
diff --git a/Data/ODBC/src/Unicode_WIN32.cpp b/Data/ODBC/src/Unicode_WIN32.cpp
index fe637e49b..ed472115a 100644
--- a/Data/ODBC/src/Unicode_WIN32.cpp
+++ b/Data/ODBC/src/Unicode_WIN32.cpp
@@ -97,7 +97,7 @@ SQLRETURN SQLConnect(SQLHDBC hdbc,
 
 	std::wstring sqlPWD;
 	makeUTF16(szAuthStr, cbAuthStr, sqlPWD);
-	
+
 	return SQLConnectW(hdbc,
 		(SQLWCHAR*) sqlDSN.c_str(),
 		(SQLSMALLINT) sqlDSN.size(),
@@ -155,8 +155,8 @@ SQLRETURN SQLExecDirect(SQLHSTMT hstmt,
 	std::wstring sqlStr;
 	makeUTF16(szSqlStr, cbSqlStr, sqlStr);
 
-	return SQLExecDirectW(hstmt, 
-		(SQLWCHAR*) sqlStr.c_str(), 
+	return SQLExecDirectW(hstmt,
+		(SQLWCHAR*) sqlStr.c_str(),
 		(SQLINTEGER) sqlStr.size());
 }
 
@@ -180,7 +180,7 @@ SQLRETURN SQLGetConnectAttr(SQLHDBC hdbc,
 		makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax);
 		return rc;
 	}
-	
+
 
 	return SQLGetConnectAttrW(hdbc,
 		fAttribute,
@@ -200,9 +200,9 @@ SQLRETURN SQLGetCursorName(SQLHSTMT hstmt,
 
 
 SQLRETURN SQLSetDescField(SQLHDESC hdesc,
-	SQLSMALLINT iRecord, 
+	SQLSMALLINT iRecord,
 	SQLSMALLINT iField,
-	SQLPOINTER  rgbValue, 
+	SQLPOINTER  rgbValue,
 	SQLINTEGER  cbValueMax)
 {
 	if (isString(rgbValue, cbValueMax))
@@ -211,18 +211,18 @@ SQLRETURN SQLSetDescField(SQLHDESC hdesc,
 		makeUTF16((SQLCHAR*) rgbValue, cbValueMax, str);
 
 		SQLRETURN rc = SQLSetDescFieldW(hdesc,
-			iRecord, 
+			iRecord,
 			iField,
-			(SQLPOINTER) str.c_str(), 
+			(SQLPOINTER) str.c_str(),
 			(SQLINTEGER) str.size() * sizeof(std::wstring::value_type));
 
 		return rc;
 	}
 
 	return SQLSetDescFieldW(hdesc,
-		iRecord, 
+		iRecord,
 		iField,
-		rgbValue, 
+		rgbValue,
 		cbValueMax);
 }
 
@@ -266,7 +266,7 @@ SQLRETURN SQLGetDescRec(SQLHDESC hdesc,
 	SQLSMALLINT* pfType,
 	SQLSMALLINT* pfSubType,
 	SQLLEN*      pLength,
-	SQLSMALLINT* pPrecision, 
+	SQLSMALLINT* pPrecision,
 	SQLSMALLINT* pScale,
 	SQLSMALLINT* pNullable)
 {
@@ -344,8 +344,8 @@ SQLRETURN SQLPrepare(SQLHSTMT hstmt,
 	std::wstring sqlStr;
 	makeUTF16(szSqlStr, cbSqlStr, sqlStr);
 
-	return SQLPrepareW(hstmt, 
-		(SQLWCHAR*) sqlStr.c_str(), 
+	return SQLPrepareW(hstmt,
+		(SQLWCHAR*) sqlStr.c_str(),
 		(SQLINTEGER) sqlStr.size());
 }
 
@@ -362,13 +362,13 @@ SQLRETURN SQLSetConnectAttr(SQLHDBC hdbc,
 
 		return SQLSetConnectAttrW(hdbc,
 			fAttribute,
-			(SQLWCHAR*) str.c_str(), 
+			(SQLWCHAR*) str.c_str(),
 			(SQLINTEGER) str.size() * sizeof(std::wstring::value_type));
 	}
 
 	return SQLSetConnectAttrW(hdbc,
 		fAttribute,
-		rgbValue, 
+		rgbValue,
 		cbValue);
 }
 
@@ -576,7 +576,7 @@ SQLRETURN SQLDriverConnect(SQLHDBC hdbc,
 {
 	std::wstring connStrIn;
 	int len = cbConnStrIn;
-	if (SQL_NTS == len) 
+	if (SQL_NTS == len)
 		len = (int) std::strlen((const char*) szConnStrIn);
 
 	Poco::UnicodeConverter::toUTF16((const char *) szConnStrIn, len, connStrIn);
diff --git a/Data/ODBC/src/Utility.cpp b/Data/ODBC/src/Utility.cpp
index 62a22a40b..8d3b4a5e5 100644
--- a/Data/ODBC/src/Utility.cpp
+++ b/Data/ODBC/src/Utility.cpp
@@ -41,7 +41,7 @@ Utility::DriverMap& Utility::drivers(Utility::DriverMap& driverMap)
 	SQLSMALLINT len2 = length;
 	RETCODE rc = 0;
 
-	if (!Utility::isError(rc = SQLDrivers(henv, 
+	if (!Utility::isError(rc = SQLDrivers(henv,
 		SQL_FETCH_FIRST,
 		desc,
 		length,
@@ -52,12 +52,12 @@ Utility::DriverMap& Utility::drivers(Utility::DriverMap& driverMap)
 	{
 		do
 		{
-			driverMap.insert(DSNMap::value_type(std::string((char *) desc), 
+			driverMap.insert(DSNMap::value_type(std::string((char *) desc),
 				std::string((char *) attr)));
 			std::memset(desc, 0, length);
 			std::memset(attr, 0, length);
 			len2 = length;
-		}while (!Utility::isError(rc = SQLDrivers(henv, 
+		}while (!Utility::isError(rc = SQLDrivers(henv,
 			SQL_FETCH_NEXT,
 			desc,
 			length,
@@ -67,7 +67,7 @@ Utility::DriverMap& Utility::drivers(Utility::DriverMap& driverMap)
 			&len2)));
 	}
 
-	if (SQL_NO_DATA != rc) 
+	if (SQL_NO_DATA != rc)
 		throw EnvironmentException(henv);
 
 	return driverMap;
@@ -88,7 +88,7 @@ Utility::DSNMap& Utility::dataSources(Utility::DSNMap& dsnMap)
 	SQLSMALLINT len2 = length;
 	RETCODE rc = 0;
 
-	while (!Utility::isError(rc = Poco::Data::ODBC::SQLDataSources(henv, 
+	while (!Utility::isError(rc = Poco::Data::ODBC::SQLDataSources(henv,
 		SQL_FETCH_NEXT,
 		dsn,
 		SQL_MAX_DSN_LENGTH,
@@ -103,7 +103,7 @@ Utility::DSNMap& Utility::dataSources(Utility::DSNMap& dsnMap)
 		len2 = length;
 	}
 
-	if (SQL_NO_DATA != rc) 
+	if (SQL_NO_DATA != rc)
 		throw EnvironmentException(henv);
 
 	return dsnMap;
diff --git a/Data/ODBC/testsuite/src/ODBCAccessTest.cpp b/Data/ODBC/testsuite/src/ODBCAccessTest.cpp
index 12bea3710..55aec9ba7 100644
--- a/Data/ODBC/testsuite/src/ODBCAccessTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCAccessTest.cpp
@@ -40,7 +40,7 @@ std::string ODBCAccessTest::_dbConnString;
 Poco::Data::ODBC::Utility::DriverMap ODBCAccessTest::_drivers;
 
 
-ODBCAccessTest::ODBCAccessTest(const std::string& name): 
+ODBCAccessTest::ODBCAccessTest(const std::string& name):
 	CppUnit::TestCase(name)
 {
 }
@@ -123,13 +123,13 @@ bool ODBCAccessTest::canConnect(const std::string& driver, const std::string& ds
 	{
 		if (((itDrv->first).find(driver) != std::string::npos))
 		{
-			std::cout << "Driver found: " << itDrv->first 
+			std::cout << "Driver found: " << itDrv->first
 				<< " (" << itDrv->second << ')' << std::endl;
 			break;
 		}
 	}
 
-	if (_drivers.end() == itDrv) 
+	if (_drivers.end() == itDrv)
 	{
 		std::cout << driver << " driver NOT found, tests not available." << std::endl;
 		return false;
@@ -142,7 +142,7 @@ bool ODBCAccessTest::canConnect(const std::string& driver, const std::string& ds
 	{
 		if (itDSN->first == dsn && itDSN->second == driver)
 		{
-			std::cout << "DSN found: " << itDSN->first 
+			std::cout << "DSN found: " << itDSN->first
 				<< " (" << itDSN->second << ')' << std::endl;
 			format(_dbConnString, "DSN=%s", dsn);
 			return true;
diff --git a/Data/ODBC/testsuite/src/ODBCAccessTest.h b/Data/ODBC/testsuite/src/ODBCAccessTest.h
index 498b23f27..18bd6ce11 100644
--- a/Data/ODBC/testsuite/src/ODBCAccessTest.h
+++ b/Data/ODBC/testsuite/src/ODBCAccessTest.h
@@ -25,7 +25,7 @@
 class ODBCAccessTest: public CppUnit::TestCase
 	/// MS Access ODBC test class
 	/// Tested:
-	/// 
+	///
 	/// Driver		|	DB		| OS
 	/// ------------+-----------+------------------------------------------
 	///	4.00.6305.00| Jet 4.0	| MS Windows XP Professional x64 v.2003/SP1
diff --git a/Data/ODBC/testsuite/src/ODBCDB2Test.cpp b/Data/ODBC/testsuite/src/ODBCDB2Test.cpp
index f5c2ff79f..c880ad6fb 100644
--- a/Data/ODBC/testsuite/src/ODBCDB2Test.cpp
+++ b/Data/ODBC/testsuite/src/ODBCDB2Test.cpp
@@ -66,7 +66,7 @@ std::string          ODBCDB2Test::_connectString = "Driver=" DB2_ODBC_DRIVER ";"
 	"Pwd=" DB2_PWD ";";
 
 
-ODBCDB2Test::ODBCDB2Test(const std::string& name): 
+ODBCDB2Test::ODBCDB2Test(const std::string& name):
 	ODBCTest(name, _pSession, _pExecutor, _dsn, _uid, _pwd, _connectString)
 {
 }
@@ -110,7 +110,7 @@ void ODBCDB2Test::testBareboneODBC()
 void ODBCDB2Test::testBLOB()
 {
 	if (!_pSession) fail ("Test not available.");
-	
+
 	const std::size_t maxFldSize = 1000000;
 	_pSession->setProperty("maxFieldSize", Poco::Any(maxFldSize-1));
 	recreatePersonBLOBTable();
@@ -120,7 +120,7 @@ void ODBCDB2Test::testBLOB()
 		_pExecutor->blob(maxFldSize);
 		fail ("must fail");
 	}
-	catch (DataException&) 
+	catch (DataException&)
 	{
 		_pSession->setProperty("maxFieldSize", Poco::Any(maxFldSize));
 	}
@@ -183,14 +183,14 @@ void ODBCDB2Test::testStoredProcedure()
 			"BEGIN "
 			" SET outParam = inParam*inParam; "
 			"END" , now;
-		
+
 
 		i = 2;
 		int j = 0;
 		*_pSession << "{call storedProcedure(?, ?)}", in(i), out(j), now;
 		assertTrue (4 == j);
 		dropObject("PROCEDURE", "storedProcedure");
-	
+
 		*_pSession << "CREATE PROCEDURE storedProcedure(INOUT ioParam INTEGER) "
 			"BEGIN "
 			" SET ioParam = ioParam*ioParam; "
@@ -209,7 +209,7 @@ void ODBCDB2Test::testStoredProcedure()
 			" SET outParam = inParam; "
 			"END" , now;
 
-		std::string inParam = 
+		std::string inParam =
 			"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
 			"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
 			"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
@@ -272,7 +272,7 @@ void ODBCDB2Test::testStoredProcedureDynamicAny()
 	for (int k = 0; k < 8;)
 	{
 		_pSession->setFeature("autoBind", bindValue(k));
-		
+
 		DynamicAny i = 2;
 		DynamicAny j = 0;
 
@@ -319,12 +319,12 @@ void ODBCDB2Test::testStoredFunction()
 		*_pSession << "{? = call storedFunction()}", out(i), now;
 		assertTrue (-1 == i);
 		dropObject("PROCEDURE", "storedFunction");
-		
+
 		*_pSession << "CREATE PROCEDURE storedFunction(inParam INTEGER) "
 			"BEGIN "
 			" RETURN inParam*inParam; "
 			"END" , now;
-		
+
 		i = 2;
 		int result = 0;
 		*_pSession << "{? = call storedFunction(?)}", out(result), in(i), now;
@@ -342,7 +342,7 @@ void ODBCDB2Test::testStoredFunction()
 		result = 0;
 		*_pSession << "{? = call storedFunction(?, ?)}", out(result), in(i), out(j), now;
 		assertTrue (4 == j);
-		assertTrue (j == result); 
+		assertTrue (j == result);
 		dropObject("PROCEDURE", "storedFunction");
 
 		*_pSession << "CREATE PROCEDURE storedFunction(INOUT param1 INTEGER, INOUT param2 INTEGER) "
@@ -360,7 +360,7 @@ void ODBCDB2Test::testStoredFunction()
 		*_pSession << "{? = call storedFunction(?, ?)}", out(result), io(i), io(j), now;
 		assertTrue (1 == j);
 		assertTrue (2 == i);
-		assertTrue (3 == result); 
+		assertTrue (3 == result);
 
 		Tuple params(1, 2);
 		assertTrue (1 == params.get<0>());
@@ -369,7 +369,7 @@ void ODBCDB2Test::testStoredFunction()
 		*_pSession << "{? = call storedFunction(?, ?)}", out(result), io(params), now;
 		assertTrue (1 == params.get<1>());
 		assertTrue (2 == params.get<0>());
-		assertTrue (3 == result); 
+		assertTrue (3 == result);
 
 		dropObject("PROCEDURE", "storedFunction");
 
@@ -545,14 +545,14 @@ void ODBCDB2Test::recreateNullsTable(const std::string& notNull)
 void ODBCDB2Test::recreateMiscTable()
 {
 	dropObject("TABLE", "MiscTest");
-	try 
-	{ 
+	try
+	{
 		session() << "CREATE TABLE MiscTest "
 			"(First VARCHAR(30),"
 			"Second BLOB,"
 			"Third INTEGER,"
 			"Fourth FLOAT,"
-			"Fifth TIMESTAMP)", now; 
+			"Fifth TIMESTAMP)", now;
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateMiscTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateMiscTable()"); }
 }
@@ -563,19 +563,19 @@ void ODBCDB2Test::recreateLogTable()
 	dropObject("TABLE", "T_POCO_LOG");
 	dropObject("TABLE", "T_POCO_LOG_ARCHIVE");
 
-	try 
-	{ 
+	try
+	{
 		std::string sql = "CREATE TABLE %s "
 			"(Source VARCHAR(100),"
 			"Name VARCHAR(100),"
 			"ProcessId INTEGER,"
 			"Thread VARCHAR(100), "
-			"ThreadId INTEGER," 
+			"ThreadId INTEGER,"
 			"Priority INTEGER,"
 			"Text VARCHAR(100),"
-			"DateTime TIMESTAMP)"; 
+			"DateTime TIMESTAMP)";
 
-		session() << sql, "T_POCO_LOG", now; 
+		session() << sql, "T_POCO_LOG", now;
 		session() << sql, "T_POCO_LOG_ARCHIVE", now;
 
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()"); }
diff --git a/Data/ODBC/testsuite/src/ODBCDB2Test.h b/Data/ODBC/testsuite/src/ODBCDB2Test.h
index e0e18da75..57263707f 100644
--- a/Data/ODBC/testsuite/src/ODBCDB2Test.h
+++ b/Data/ODBC/testsuite/src/ODBCDB2Test.h
@@ -21,7 +21,7 @@
 class ODBCDB2Test: public ODBCTest
 	/// IBM DB2 UDB ODBC test class
 	/// Tested:
-	/// 
+	///
 	/// Driver		|	DB				| OS
 	/// ------------+-------------------+------------------------------------------
 	///	9.01.00.356 | DB2 Express-C 9.1	| MS Windows XP Professional x64 v.2003/SP1
diff --git a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp
index ed539e13e..bd90d438a 100644
--- a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp
@@ -61,7 +61,7 @@ std::string          ODBCMySQLTest::_connectString = "DRIVER={" MYSQL_ODBC_DRIVE
 	"PWD=" MYSQL_PWD ";";
 
 
-ODBCMySQLTest::ODBCMySQLTest(const std::string& name): 
+ODBCMySQLTest::ODBCMySQLTest(const std::string& name):
 	ODBCTest(name, _pSession, _pExecutor, _dsn, _uid, _pwd, _connectString)
 {
 	_pExecutor->execute("SET @@global.sql_mode= '';"); // disable strict mode
@@ -120,7 +120,7 @@ So, we skip this test.
 void ODBCMySQLTest::testBLOB()
 {
 	if (!_pSession) fail ("Test not available.");
-	
+
 	const std::size_t maxFldSize = 65534;
 	_pSession->setProperty("maxFieldSize", Poco::Any(maxFldSize-1));
 	recreatePersonBLOBTable();
@@ -130,7 +130,7 @@ void ODBCMySQLTest::testBLOB()
 		_pExecutor->blob(maxFldSize);
 		fail ("must fail");
 	}
-	catch (DataException&) 
+	catch (DataException&)
 	{
 		_pSession->setProperty("maxFieldSize", Poco::Any(maxFldSize));
 	}
@@ -182,10 +182,10 @@ void ODBCMySQLTest::testNull()
 
 void ODBCMySQLTest::testStoredProcedure()
 {
-	//MySQL is currently buggy in this area: 
+	//MySQL is currently buggy in this area:
 	// http://bugs.mysql.com/bug.php?id=17898
 	// http://bugs.mysql.com/bug.php?id=27632
-	// Additionally, the standard ODBC stored procedure call syntax 
+	// Additionally, the standard ODBC stored procedure call syntax
 	// {call storedProcedure(?)} is currently (3.51.12.00) not supported.
 	// See http://bugs.mysql.com/bug.php?id=26535
 	// Poco::Data support for MySQL ODBC is postponed until the above
@@ -195,10 +195,10 @@ void ODBCMySQLTest::testStoredProcedure()
 
 void ODBCMySQLTest::testStoredFunction()
 {
-	//MySQL is currently buggy in this area: 
+	//MySQL is currently buggy in this area:
 	// http://bugs.mysql.com/bug.php?id=17898
 	// http://bugs.mysql.com/bug.php?id=27632
-	// Additionally, the standard ODBC stored procedure call syntax 
+	// Additionally, the standard ODBC stored procedure call syntax
 	// {call storedProcedure(?)} is currently (3.51.12.00) not supported.
 	// See http://bugs.mysql.com/bug.php?id=26535
 	// Poco::Data support for MySQL ODBC is postponed until the above
@@ -390,19 +390,19 @@ void ODBCMySQLTest::recreateLogTable()
 	dropObject("TABLE", "T_POCO_LOG");
 	dropObject("TABLE", "T_POCO_LOG_ARCHIVE");
 
-	try 
-	{ 
+	try
+	{
 		std::string sql = "CREATE TABLE %s "
 			"(Source VARCHAR(100),"
 			"Name VARCHAR(100),"
 			"ProcessId INTEGER,"
 			"Thread VARCHAR(100), "
-			"ThreadId INTEGER," 
+			"ThreadId INTEGER,"
 			"Priority INTEGER,"
 			"Text VARCHAR(100),"
-			"DateTime DATETIME)"; 
+			"DateTime DATETIME)";
 
-		session() << sql, "T_POCO_LOG", now; 
+		session() << sql, "T_POCO_LOG", now;
 		session() << sql, "T_POCO_LOG_ARCHIVE", now;
 
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()"); }
diff --git a/Data/ODBC/testsuite/src/ODBCMySQLTest.h b/Data/ODBC/testsuite/src/ODBCMySQLTest.h
index c1ea5dc5d..ce1104109 100644
--- a/Data/ODBC/testsuite/src/ODBCMySQLTest.h
+++ b/Data/ODBC/testsuite/src/ODBCMySQLTest.h
@@ -21,8 +21,8 @@
 class ODBCMySQLTest: public ODBCTest
 	/// MySQL ODBC test class
 	/// Tested:
-	/// 
-	/// Driver          | DB                        | OS                                        | Driver Manager 
+	///
+	/// Driver          | DB                        | OS                                        | Driver Manager
 	/// ----------------+---------------------------+-------------------------------------------+---------------------
 	/// 03.51.12.00     | MySQL 5.0.27-community-nt | MS Windows XP Professional x64 v.2003/SP1 | 3.526.3959.0
 	///  3.51.11.-6     | MySQL 5.0.27-community-nt | Ubuntu 7.04 (2.6.20-15-generic #2 SMP)    | unixODBC 2.2.11.-13
@@ -41,7 +41,7 @@ public:
 	void testStoredFunction();
 
 	void testNull();
-	
+
 	void testMultipleResults();
 	void testFilter();
 
diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
index fc90a070e..29091efe3 100644
--- a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
@@ -81,7 +81,7 @@ std::string          ODBCOracleTest::_connectString = "DRIVER={" ORACLE_ODBC_DRI
 	"APA=T;" // thread safety (T/F), default T
 	"DBA=W;"; // write access (R/W)
 
-const std::string ODBCOracleTest::MULTI_INSERT = 
+const std::string ODBCOracleTest::MULTI_INSERT =
 	"BEGIN "
 	"INSERT INTO Test VALUES ('1', 2, 3.5);"
 	"INSERT INTO Test VALUES ('2', 3, 4.5);"
@@ -94,7 +94,7 @@ const std::string ODBCOracleTest::MULTI_SELECT =
 	"{CALL multiResultsProcedure()}";
 
 
-ODBCOracleTest::ODBCOracleTest(const std::string& name): 
+ODBCOracleTest::ODBCOracleTest(const std::string& name):
 	ODBCTest(name, _pSession, _pExecutor, _dsn, _uid, _pwd, _connectString)
 {
 }
@@ -139,27 +139,27 @@ void ODBCOracleTest::testBarebone()
 			"OPEN ret5 FOR SELECT * FROM Test WHERE First = '5';"
 			"END multiResultsProcedure;" , now;
 
-	_pExecutor->bareboneODBCMultiResultTest(_connectString, 
-		tableCreateString, 
-		SQLExecutor::PB_IMMEDIATE, 
+	_pExecutor->bareboneODBCMultiResultTest(_connectString,
+		tableCreateString,
+		SQLExecutor::PB_IMMEDIATE,
 		SQLExecutor::DE_MANUAL,
 		MULTI_INSERT,
 		MULTI_SELECT);
-	_pExecutor->bareboneODBCMultiResultTest(_connectString, 
-		tableCreateString, 
-		SQLExecutor::PB_IMMEDIATE, 
+	_pExecutor->bareboneODBCMultiResultTest(_connectString,
+		tableCreateString,
+		SQLExecutor::PB_IMMEDIATE,
 		SQLExecutor::DE_BOUND,
 		MULTI_INSERT,
 		MULTI_SELECT);
-	_pExecutor->bareboneODBCMultiResultTest(_connectString, 
-		tableCreateString, 
-		SQLExecutor::PB_AT_EXEC, 
+	_pExecutor->bareboneODBCMultiResultTest(_connectString,
+		tableCreateString,
+		SQLExecutor::PB_AT_EXEC,
 		SQLExecutor::DE_MANUAL,
 		MULTI_INSERT,
 		MULTI_SELECT);
-	_pExecutor->bareboneODBCMultiResultTest(_connectString, 
-		tableCreateString, 
-		SQLExecutor::PB_AT_EXEC, 
+	_pExecutor->bareboneODBCMultiResultTest(_connectString,
+		tableCreateString,
+		SQLExecutor::PB_AT_EXEC,
 		SQLExecutor::DE_BOUND,
 		MULTI_INSERT,
 		MULTI_SELECT);
@@ -178,7 +178,7 @@ void ODBCOracleTest::testBLOB()
 		executor().blob(maxFldSize);
 		fail ("must fail");
 	}
-	catch (DataException&) 
+	catch (DataException&)
 	{
 		session().setProperty("maxFieldSize", Poco::Any(maxFldSize));
 	}
@@ -277,7 +277,7 @@ void ODBCOracleTest::testStoredProcedure()
 		k += 2;
 	}
 
-	
+
 	//strings only work with auto-binding
 	session().setFeature("autoBind", true);
 
@@ -286,7 +286,7 @@ void ODBCOracleTest::testStoredProcedure()
 		" BEGIN outParam := inParam; "
 		"END storedProcedure;" , now;
 
-	std::string inParam = 
+	std::string inParam =
 		"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
 		"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
 		"1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
@@ -342,7 +342,7 @@ void ODBCOracleTest::testStoredProcedureDynamicAny()
 	for (int k = 0; k < 8;)
 	{
 		session().setFeature("autoBind", bindValue(k));
-		
+
 		DynamicAny i = 2;
 		DynamicAny j = 0;
 
@@ -391,15 +391,15 @@ void ODBCOracleTest::testCursorStoredProcedure()
 			" OPEN ret FOR "
 			" SELECT * "
 			" FROM Person "
-			" WHERE Age < ageLimit " 
+			" WHERE Age < ageLimit "
 			" ORDER BY Age DESC; "
 			" END storedCursorProcedure;" , now;
 
 		people.clear();
 		int age = 13;
-		
+
 		*_pSession << "{call storedCursorProcedure(?)}", in(age), into(people), now;
-		
+
 		assertTrue (2 == people.size());
 		assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]);
 		assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]);
@@ -460,7 +460,7 @@ void ODBCOracleTest::testStoredFunction()
 		result = 0;
 		*_pSession << "{? = call storedFunction(?, ?)}", out(result), in(i), out(j), now;
 		assertTrue (4 == j);
-		assertTrue (j == result); 
+		assertTrue (j == result);
 		dropObject("FUNCTION", "storedFunction");
 
 		*_pSession << "CREATE OR REPLACE "
@@ -475,8 +475,8 @@ void ODBCOracleTest::testStoredFunction()
 		*_pSession << "{? = call storedFunction(?, ?)}", out(result), io(i), io(j), now;
 		assertTrue (1 == j);
 		assertTrue (2 == i);
-		assertTrue (3 == result); 
-		
+		assertTrue (3 == result);
+
 		Tuple params(1, 2);
 		assertTrue (1 == params.get<0>());
 		assertTrue (2 == params.get<1>());
@@ -484,9 +484,9 @@ void ODBCOracleTest::testStoredFunction()
 		*_pSession << "{? = call storedFunction(?, ?)}", out(result), io(params), now;
 		assertTrue (1 == params.get<1>());
 		assertTrue (2 == params.get<0>());
-		assertTrue (3 == result); 
+		assertTrue (3 == result);
 		dropObject("FUNCTION", "storedFunction");
-		
+
 		k += 2;
 	}
 
@@ -530,16 +530,16 @@ void ODBCOracleTest::testCursorStoredFunction()
 			" OPEN ret FOR "
 			" SELECT * "
 			" FROM Person "
-			" WHERE Age < ageLimit " 
+			" WHERE Age < ageLimit "
 			" ORDER BY Age DESC; "
 			" RETURN ret; "
 			" END storedCursorFunction;" , now;
 
 		people.clear();
 		int age = 13;
-		
+
 		*_pSession << "{call storedCursorFunction(?)}", in(age), into(people), now;
-		
+
 		assertTrue (2 == people.size());
 		assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]);
 		assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]);
@@ -553,7 +553,7 @@ void ODBCOracleTest::testCursorStoredFunction()
 
 		dropObject("TABLE", "Person");
 		dropObject("FUNCTION", "storedCursorFunction");
-		
+
 		k += 2;
 	}
 }
@@ -611,7 +611,7 @@ void ODBCOracleTest::testAutoTransaction()
 	assertTrue (0 == count);
 
 	session().setFeature("autoCommit", false);
-	
+
 	try
 	{
 		AutoTransaction at(session());
@@ -794,14 +794,14 @@ void ODBCOracleTest::recreateNullsTable(const std::string& notNull)
 void ODBCOracleTest::recreateMiscTable()
 {
 	dropObject("TABLE", "MiscTest");
-	try 
-	{ 
+	try
+	{
 		session() << "CREATE TABLE MiscTest "
 			"(First VARCHAR(30),"
 			"Second BLOB,"
 			"Third INTEGER,"
 			"Fourth NUMBER,"
-			"Fifth TIMESTAMP)", now; 
+			"Fifth TIMESTAMP)", now;
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateMiscTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateMiscTable()"); }
 }
@@ -812,20 +812,20 @@ void ODBCOracleTest::recreateLogTable()
 	dropObject("TABLE", "T_POCO_LOG");
 	dropObject("TABLE", "T_POCO_LOG_ARCHIVE");
 
-	try 
-	{ 
+	try
+	{
 		std::string sql = "CREATE TABLE %s "
 			"(Source VARCHAR(100),"
 			"Name VARCHAR(100),"
 			"ProcessId INTEGER,"
 			"Thread VARCHAR(100), "
-			"ThreadId INTEGER," 
+			"ThreadId INTEGER,"
 			"Priority INTEGER,"
 			"Text VARCHAR(100),"
-			"DateTime TIMESTAMP)"; 
+			"DateTime TIMESTAMP)";
 
-		session() << sql, "T_POCO_LOG", now; 
-		session() << sql, "T_POCO_LOG_ARCHIVE", now; 
+		session() << sql, "T_POCO_LOG", now;
+		session() << sql, "T_POCO_LOG_ARCHIVE", now;
 
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateLogTable()"); }
diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.h b/Data/ODBC/testsuite/src/ODBCOracleTest.h
index 92a1bbcaf..168710be2 100644
--- a/Data/ODBC/testsuite/src/ODBCOracleTest.h
+++ b/Data/ODBC/testsuite/src/ODBCOracleTest.h
@@ -21,7 +21,7 @@
 class ODBCOracleTest: public ODBCTest
 	/// Oracle ODBC test class
 	/// Tested:
-	/// 
+	///
 	/// Driver		|	DB							| OS
 	/// ------------+-------------------------------+------------------------------------------
 	///	10.02.00.01	| Oracle9i Release 9.2.0.4.0	| MS Windows XP Professional x64 v.2003/SP1
@@ -51,7 +51,7 @@ public:
 
 private:
 	static void testBarebone();
-	
+
 	void dropObject(const std::string& type, const std::string& name);
 	void recreateNullableTable();
 	void recreatePersonTable();
@@ -72,7 +72,7 @@ private:
 
 	static ODBCTest::SessionPtr _pSession;
 	static ODBCTest::ExecPtr    _pExecutor;
-	
+
 	static std::string _driver;
 	static std::string _dsn;
 	static std::string _uid;
diff --git a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp
index 2c2f1cf34..81d467b59 100644
--- a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp
@@ -75,7 +75,7 @@ std::string          ODBCPostgreSQLTest::_driver = POSTGRESQL_ODBC_DRIVER;
 std::string          ODBCPostgreSQLTest::_dsn = POSTGRESQL_DSN;
 std::string          ODBCPostgreSQLTest::_uid = POSTGRESQL_UID;
 std::string          ODBCPostgreSQLTest::_pwd = POSTGRESQL_PWD;
-std::string ODBCPostgreSQLTest::_connectString = 
+std::string ODBCPostgreSQLTest::_connectString =
 	"DRIVER=" POSTGRESQL_ODBC_DRIVER ";"
 	"DATABASE=" POSTGRESQL_DB ";"
 	"SERVER=" POSTGRESQL_SERVER ";"
@@ -114,7 +114,7 @@ std::string ODBCPostgreSQLTest::_connectString =
 	"ReadOnly=0;";
 
 
-ODBCPostgreSQLTest::ODBCPostgreSQLTest(const std::string& name): 
+ODBCPostgreSQLTest::ODBCPostgreSQLTest(const std::string& name):
 	ODBCTest(name, _pSession, _pExecutor, _dsn, _uid, _pwd, _connectString)
 {
 }
@@ -179,7 +179,7 @@ void ODBCPostgreSQLTest::testBLOB()
 		executor().blob(maxFldSize);
 		fail ("must fail");
 	}
-	catch (DataException&) 
+	catch (DataException&)
 	{
 		session().setProperty("maxFieldSize", Poco::Any(maxFldSize));
 	}
@@ -207,7 +207,7 @@ void ODBCPostgreSQLTest::testStoredFunction()
 		session().setFeature("autoExtract", bindValue(k+1));
 
 		dropObject("FUNCTION", "storedFunction()");
-		try 
+		try
 		{
 			session() << "CREATE FUNCTION storedFunction() RETURNS INTEGER AS '"
 				"BEGIN "
@@ -223,7 +223,7 @@ void ODBCPostgreSQLTest::testStoredFunction()
 		assertTrue (-1 == i);
 		dropObject("FUNCTION", "storedFunction()");
 
-		try 
+		try
 		{
 			session() << "CREATE FUNCTION storedFunction(INTEGER) RETURNS INTEGER AS '"
 				"BEGIN "
@@ -241,7 +241,7 @@ void ODBCPostgreSQLTest::testStoredFunction()
 		dropObject("FUNCTION", "storedFunction(INTEGER)");
 
 		dropObject("FUNCTION", "storedFunction(TIMESTAMP)");
-		try 
+		try
 		{
 			session() << "CREATE FUNCTION storedFunction(TIMESTAMP) RETURNS TIMESTAMP AS '"
 				"BEGIN "
@@ -259,23 +259,23 @@ void ODBCPostgreSQLTest::testStoredFunction()
 		dropObject("FUNCTION", "storedFunction(TIMESTAMP)");
 
 		dropObject("FUNCTION", "storedFunction(TEXT, TEXT)");
-		try 
+		try
 		{
 			session() << "CREATE FUNCTION storedFunction(TEXT,TEXT) RETURNS TEXT AS '"
 				"BEGIN "
 				" RETURN $1 || '', '' || $2 || ''!'';"
 				"END;'"
-				"LANGUAGE 'plpgsql'" , now; 
+				"LANGUAGE 'plpgsql'" , now;
 		}
 		catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (func); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (func); }
-		
+
 		std::string param1 = "Hello";
 		std::string param2 = "world";
 		std::string ret;
-		try 
+		try
 		{
-			session() << "{? = call storedFunction(?,?)}", out(ret), in(param1), in(param2), now; 
+			session() << "{? = call storedFunction(?,?)}", out(ret), in(param1), in(param2), now;
 		}
 		catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (func); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (func); }
@@ -346,13 +346,13 @@ void ODBCPostgreSQLTest::configurePLPgSQL()
 			"RETURNS OPAQUE "
 			"AS '%splpgsql.dll' "
 			"LANGUAGE 'C';", _libDir), now;
-		
+
 		session() << "CREATE LANGUAGE 'plpgsql' "
 			"HANDLER plpgsql_call_handler "
 			"LANCOMPILER 'PL/pgSQL'", now;
 
-	}catch(StatementException& ex) 
-	{  
+	}catch(StatementException& ex)
+	{
 		if (1 != ex.diagnostics().nativeError(0))
 			throw;
 	}
@@ -522,15 +522,15 @@ void ODBCPostgreSQLTest::recreateBoolTable()
 void ODBCPostgreSQLTest::recreateMiscTable()
 {
 	dropObject("TABLE", "MiscTest");
-	try 
-	{ 
+	try
+	{
 		// Mammoth does not bind columns properly
 		session() << "CREATE TABLE MiscTest "
 			"(First VARCHAR(30),"
 			"Second BYTEA,"
 			"Third INTEGER,"
 			"Fourth FLOAT,"
-			"Fifth TIMESTAMP)", now; 
+			"Fifth TIMESTAMP)", now;
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateMiscTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateMiscTable()"); }
 }
@@ -541,20 +541,20 @@ void ODBCPostgreSQLTest::recreateLogTable()
 	dropObject("TABLE", "T_POCO_LOG");
 	dropObject("TABLE", "T_POCO_LOG_ARCHIVE");
 
-	try 
-	{ 
+	try
+	{
 		std::string sql = "CREATE TABLE %s "
 			"(Source VARCHAR,"
 			"Name VARCHAR,"
 			"ProcessId INTEGER,"
 			"Thread VARCHAR, "
-			"ThreadId INTEGER," 
+			"ThreadId INTEGER,"
 			"Priority INTEGER,"
 			"Text VARCHAR,"
-			"DateTime TIMESTAMP)"; 
+			"DateTime TIMESTAMP)";
 
-		session() << sql, "T_POCO_LOG", now; 
-		session() << sql, "T_POCO_LOG_ARCHIVE", now; 
+		session() << sql, "T_POCO_LOG", now;
+		session() << sql, "T_POCO_LOG_ARCHIVE", now;
 
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateLogTable()"); }
diff --git a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.h b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.h
index 072d670b7..37b47a7b9 100644
--- a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.h
+++ b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.h
@@ -25,15 +25,15 @@
 class ODBCPostgreSQLTest: public ODBCTest
 	/// PostgreSQL ODBC test class
 	/// Tested:
-	/// 
+	///
 	/// Driver		   |	DB                | OS                                        | Driver Manager     |Notes
 	/// ---------------+----------------------+-------------------------------------------+--------------------+--------------------------
 	///	07.03.02.60	   | PostgreSQL 7.4.6     | MS Windows XP Professional x64 v.2003/SP1 | 3.526.3959.0       | BLOB fails (missing 'lo')
 	/// 08.01.02.00    | PostgreSQL 8.1.5-1   | MS Windows XP Professional x64 v.2003/SP1 | 3.526.3959.0       |
 	/// 1:08.01.0200-2 | PostgreSQL 8.1.5-1   | Ubuntu 7.04 (2.6.20-15-generic #2 SMP)    | unixODBC 2.2.11.-13|
-	/// Mammoth ODBCng |                      |                                           |                    | 
+	/// Mammoth ODBCng |                      |                                           |                    |
 	/// (0.99.00.122)  | PostgreSQL 8.1.5-1   | MS Windows XP Professional x64 v.2003/SP1 | 3.526.3959.0       |
-	/// 
+	///
 {
 public:
 	ODBCPostgreSQLTest(const std::string& name);
@@ -71,8 +71,8 @@ private:
 
 	void configurePLPgSQL();
 		/// Configures PL/pgSQL in the database. A reasonable defaults
-		/// for the interpreter location on WIN32 and POSIX platforms are 
-		/// supplied (see installDir member variable). 
+		/// for the interpreter location on WIN32 and POSIX platforms are
+		/// supplied (see installDir member variable).
 		/// If these do not work, user must determine the proper location,
 		/// modify the function and recompile.
 		/// Alternative is direct database configuration for PL/pgSQL usage.
diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp
index 3e09f01d7..97a6c919f 100644
--- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp
@@ -107,7 +107,7 @@ std::string ODBCSQLServerTest::_connectString = "DRIVER=" MS_SQL_SERVER_ODBC_DRI
 	;
 
 
-ODBCSQLServerTest::ODBCSQLServerTest(const std::string& name): 
+ODBCSQLServerTest::ODBCSQLServerTest(const std::string& name):
 	ODBCTest(name, _pSession, _pExecutor, _dsn, _uid, _pwd, _connectString)
 {
 }
@@ -128,13 +128,13 @@ void ODBCSQLServerTest::testBareboneODBC()
 		"Fifth FLOAT,"
 		"Sixth DATETIME)";
 
-	executor().bareboneODBCTest(dbConnString(), tableCreateString, 
+	executor().bareboneODBCTest(dbConnString(), tableCreateString,
 		SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_MANUAL, true, "CONVERT(VARBINARY(30),?)");
-	executor().bareboneODBCTest(dbConnString(), tableCreateString, 
+	executor().bareboneODBCTest(dbConnString(), tableCreateString,
 		SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_BOUND, true, "CONVERT(VARBINARY(30),?)");
-	executor().bareboneODBCTest(dbConnString(), tableCreateString, 
+	executor().bareboneODBCTest(dbConnString(), tableCreateString,
 		SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_MANUAL, true, "CONVERT(VARBINARY(30),?)");
-	executor().bareboneODBCTest(dbConnString(), tableCreateString, 
+	executor().bareboneODBCTest(dbConnString(), tableCreateString,
 		SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_BOUND, true, "CONVERT(VARBINARY(30),?)");
 
 	tableCreateString = "CREATE TABLE Test "
@@ -255,7 +255,7 @@ void ODBCSQLServerTest::testStoredProcedure()
 			"SET @outParam = -1; "
 			"END;"
 		, now;
-		
+
 		int i = 0;
 		session() << "{call storedProcedure(?)}", out(i), now;
 		assertTrue (-1 == i);
@@ -298,8 +298,8 @@ void ODBCSQLServerTest::testStoredProcedure()
 	}
 /*TODO - currently fails with following error:
 
-[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid parameter 
-2 (''):  Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter.  
+[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid parameter
+2 (''):  Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter.
 Deprecated types are not supported as output parameters.  Use current large object types instead.
 
 	session().setFeature("autoBind", true);
@@ -340,16 +340,16 @@ void ODBCSQLServerTest::testCursorStoredProcedure()
 			"BEGIN "
 			" SELECT * "
 			" FROM Person "
-			" WHERE Age < @ageLimit " 
+			" WHERE Age < @ageLimit "
 			" ORDER BY Age DESC; "
 			"END;"
 		, now;
 
 		people.clear();
 		int age = 13;
-		
+
 		session() << "{call storedCursorProcedure(?)}", in(age), into(people), now;
-		
+
 		assertTrue (2 == people.size());
 		assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]);
 		assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]);
@@ -410,7 +410,7 @@ void ODBCSQLServerTest::testStoredProcedureDynamicAny()
 	for (int k = 0; k < 8;)
 	{
 		session().setFeature("autoBind", bindValue(k));
-		
+
 		DynamicAny i = 2;
 		DynamicAny j = 0;
 
@@ -507,7 +507,7 @@ void ODBCSQLServerTest::testStoredFunction()
 		session() << "{? = call storedFunction(?, ?)}", out(result), io(i), io(j), now;
 		assertTrue (1 == j);
 		assertTrue (2 == i);
-		assertTrue (3 == result); 
+		assertTrue (3 == result);
 
 		Tuple params(1, 2);
 		assertTrue (1 == params.get<0>());
@@ -516,7 +516,7 @@ void ODBCSQLServerTest::testStoredFunction()
 		session() << "{? = call storedFunction(?, ?)}", out(result), io(params), now;
 		assertTrue (1 == params.get<1>());
 		assertTrue (2 == params.get<0>());
-		assertTrue (3 == result); 
+		assertTrue (3 == result);
 
 		dropObject("PROCEDURE", "storedFunction");
 
@@ -684,15 +684,15 @@ void ODBCSQLServerTest::recreateBoolTable()
 void ODBCSQLServerTest::recreateMiscTable()
 {
 	dropObject("TABLE", "MiscTest");
-	try 
-	{ 
+	try
+	{
 		session() << "CREATE TABLE MiscTest "
 			"(First VARCHAR(30),"
 			"Second VARBINARY(30),"
 			"Third INTEGER,"
 			"Fourth FLOAT,"
 			"Fifth DATETIME,"
-			"Sixth BIT)", now; 
+			"Sixth BIT)", now;
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateMiscTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateMiscTable()"); }
 }
@@ -703,20 +703,20 @@ void ODBCSQLServerTest::recreateLogTable()
 	dropObject("TABLE", "T_POCO_LOG");
 	dropObject("TABLE", "T_POCO_LOG_ARCHIVE");
 
-	try 
-	{ 
+	try
+	{
 		std::string sql = "CREATE TABLE %s "
 			"(Source VARCHAR(max),"
 			"Name VARCHAR(max),"
 			"ProcessId INTEGER,"
 			"Thread VARCHAR(max), "
-			"ThreadId INTEGER," 
+			"ThreadId INTEGER,"
 			"Priority INTEGER,"
 			"Text VARCHAR(max),"
 			"DateTime DATETIME)";
 
-		session() << sql, "T_POCO_LOG", now; 
-		session() << sql, "T_POCO_LOG_ARCHIVE", now; 
+		session() << sql, "T_POCO_LOG", now;
+		session() << sql, "T_POCO_LOG_ARCHIVE", now;
 
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateLogTable()"); }
diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h
index d0c8b425b..40de51413 100644
--- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h
+++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h
@@ -25,7 +25,7 @@
 class ODBCSQLServerTest: public ODBCTest
 	/// SQLServer ODBC test class
 	/// Tested:
-	/// 
+	///
 	/// Driver				|	DB								| OS
 	/// --------------------+-----------------------------------+------------------------------------------
 	/// 2000.86.1830.00		| SQL Server Express 9.0.2047		| MS Windows XP Professional x64 v.2003/SP1
@@ -48,7 +48,7 @@ public:
 	void testCursorStoredProcedure();
 	void testStoredProcedureAny();
 	void testStoredProcedureDynamicAny();
-	
+
 	void testStoredFunction();
 
 	static CppUnit::Test* suite();
diff --git a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp
index 645a9a8b9..61b4bcf60 100644
--- a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp
@@ -45,11 +45,11 @@ std::string          ODBCSQLiteTest::_driver = SQLITE_ODBC_DRIVER;
 std::string          ODBCSQLiteTest::_dsn = SQLITE_DSN;
 std::string          ODBCSQLiteTest::_uid = "";
 std::string          ODBCSQLiteTest::_pwd = "";
-std::string          ODBCSQLiteTest::_connectString = "Driver=" SQLITE_ODBC_DRIVER 
+std::string          ODBCSQLiteTest::_connectString = "Driver=" SQLITE_ODBC_DRIVER
 	";Database=" SQLITE_DB ";";
 
 
-ODBCSQLiteTest::ODBCSQLiteTest(const std::string& name): 
+ODBCSQLiteTest::ODBCSQLiteTest(const std::string& name):
 	ODBCTest(name, _pSession, _pExecutor, _dsn, _uid, _pwd, _connectString)
 {
 }
@@ -116,7 +116,7 @@ void ODBCSQLiteTest::testAffectedRows()
 		// why "WHERE 1" is necessary here
 		_pExecutor->affectedRows("WHERE 1");
 		i += 2;
-	}	
+	}
 }
 
 
@@ -156,7 +156,7 @@ void ODBCSQLiteTest::dropObject(const std::string& type, const std::string& name
 			}
 		}
 
-		if (!ignoreError) 
+		if (!ignoreError)
 		{
 			std::cout << ex.toString() << std::endl;
 			throw;
@@ -273,15 +273,15 @@ void ODBCSQLiteTest::recreateNullsTable(const std::string& notNull)
 void ODBCSQLiteTest::recreateMiscTable()
 {
 	dropObject("TABLE", "MiscTest");
-	try 
-	{ 
+	try
+	{
 		// SQLite fails with BLOB bulk operations
 		session() << "CREATE TABLE MiscTest "
 			"(First VARCHAR(30),"
 			//"Second BLOB,"
 			"Third INTEGER,"
 			"Fourth REAL,"
-			"Fifth DATETIME)", now; 
+			"Fifth DATETIME)", now;
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateMiscTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateMiscTable()"); }
 }
@@ -292,20 +292,20 @@ void ODBCSQLiteTest::recreateLogTable()
 	dropObject("TABLE", "T_POCO_LOG");
 	dropObject("TABLE", "T_POCO_LOG_ARCHIVE");
 
-	try 
-	{ 
+	try
+	{
 		std::string sql = "CREATE TABLE %s "
 			"(Source VARCHAR,"
 			"Name VARCHAR,"
 			"ProcessId INTEGER,"
 			"Thread VARCHAR, "
-			"ThreadId INTEGER," 
+			"ThreadId INTEGER,"
 			"Priority INTEGER,"
 			"Text VARCHAR,"
 			"DateTime DATETIME)";
 
-		session() << sql, "T_POCO_LOG", now; 
-		session() << sql, "T_POCO_LOG_ARCHIVE", now; 
+		session() << sql, "T_POCO_LOG", now;
+		session() << sql, "T_POCO_LOG_ARCHIVE", now;
 
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("recreateLogTable()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("recreateLogTable()"); }
diff --git a/Data/ODBC/testsuite/src/ODBCSQLiteTest.h b/Data/ODBC/testsuite/src/ODBCSQLiteTest.h
index 83a6d1ed6..b878c1574 100644
--- a/Data/ODBC/testsuite/src/ODBCSQLiteTest.h
+++ b/Data/ODBC/testsuite/src/ODBCSQLiteTest.h
@@ -21,7 +21,7 @@
 class ODBCSQLiteTest: public ODBCTest
 	/// SQLite3 ODBC test class
 	/// Tested:
-	/// 
+	///
 	/// Driver		|	DB			| OS
 	/// ------------+---------------+------------------------------------------
 	///	00.70.00.00	| SQLite 3.*	| MS Windows XP Professional x64 v.2003/SP1
diff --git a/Data/ODBC/testsuite/src/ODBCTest.cpp b/Data/ODBC/testsuite/src/ODBCTest.cpp
index 555e7a126..6d5e98b7b 100644
--- a/Data/ODBC/testsuite/src/ODBCTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCTest.cpp
@@ -49,7 +49,7 @@ using Poco::NotFoundException;
 
 
 ODBCTest::Drivers ODBCTest::_drivers;
-const bool        ODBCTest::_bindValues[8] = 
+const bool        ODBCTest::_bindValues[8] =
 	{true, true, true, false, false, true, false, false};
 
 
@@ -59,7 +59,7 @@ ODBCTest::ODBCTest(const std::string& name,
 	std::string& rDSN,
 	std::string& rUID,
 	std::string& rPwd,
-	std::string& rConnectString): 
+	std::string& rConnectString):
 	CppUnit::TestCase(name),
 	_pSession(pSession),
 	_pExecutor(pExecutor),
@@ -212,7 +212,7 @@ void ODBCTest::testInsertVector()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertVector();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -227,7 +227,7 @@ void ODBCTest::testInsertEmptyVector()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertEmptyVector();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -257,7 +257,7 @@ void ODBCTest::testComplexTypeList()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->complexTypeList();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -272,7 +272,7 @@ void ODBCTest::testInsertList()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertList();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -287,7 +287,7 @@ void ODBCTest::testInsertEmptyList()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertEmptyList();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -317,7 +317,7 @@ void ODBCTest::testComplexTypeDeque()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->complexTypeDeque();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -332,7 +332,7 @@ void ODBCTest::testInsertDeque()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertDeque();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -347,7 +347,7 @@ void ODBCTest::testInsertEmptyDeque()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertEmptyDeque();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -362,7 +362,7 @@ void ODBCTest::testAffectedRows()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->affectedRows();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -377,7 +377,7 @@ void ODBCTest::testInsertSingleBulk()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertSingleBulk();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -392,7 +392,7 @@ void ODBCTest::testInsertSingleBulkVec()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->insertSingleBulkVec();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -422,7 +422,7 @@ void ODBCTest::testLimitZero()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->limitZero();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -432,7 +432,7 @@ void ODBCTest::testLimitOnce()
 
 	recreateIntsTable();
 	_pExecutor->limitOnce();
-	
+
 }
 
 
@@ -579,7 +579,7 @@ void ODBCTest::testMultiSetComplex()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->multiSetComplex();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -654,7 +654,7 @@ void ODBCTest::testSelectIntoSingleStep()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->selectIntoSingleStep();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -669,7 +669,7 @@ void ODBCTest::testSelectIntoSingleFail()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->selectIntoSingleFail();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -684,7 +684,7 @@ void ODBCTest::testLowerLimitOk()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->lowerLimitOk();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -699,7 +699,7 @@ void ODBCTest::testSingleSelect()
 		_pSession->setFeature("autoExtract", bindValue(i+1));
 		_pExecutor->singleSelect();
 		i += 2;
-	}	
+	}
 }
 
 
@@ -1300,13 +1300,13 @@ bool ODBCTest::canConnect(const std::string& driver,
 	{
 		if (((itDrv->first).find(driver) != std::string::npos))
 		{
-			std::cout << "Driver found: " << itDrv->first 
+			std::cout << "Driver found: " << itDrv->first
 				<< " (" << itDrv->second << ')' << std::endl;
 			break;
 		}
 	}
 
-	if (_drivers.end() == itDrv) 
+	if (_drivers.end() == itDrv)
 	{
 		dsn = "";
 		uid = "";
@@ -1365,7 +1365,7 @@ ODBCTest::SessionPtr ODBCTest::init(const std::string& driver,
 {
 	Utility::drivers(_drivers);
 	if (!canConnect(driver, dsn, uid, pwd, dbConnString, db)) return 0;
-	
+
 	try
 	{
 		std::cout << "Conecting to [" << dbConnString << ']' << std::endl;
diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h
index 456031e0f..1971e6db9 100644
--- a/Data/ODBC/testsuite/src/ODBCTest.h
+++ b/Data/ODBC/testsuite/src/ODBCTest.h
@@ -221,38 +221,38 @@ private:
 // inlines
 //
 
-inline void ODBCTest::testStoredProcedure() 
-{ 
+inline void ODBCTest::testStoredProcedure()
+{
 	throw Poco::NotImplementedException("ODBCTest::testStoredProcedure()");
 }
 
 
-inline void ODBCTest::testStoredProcedureAny() 
-{ 
+inline void ODBCTest::testStoredProcedureAny()
+{
 	throw Poco::NotImplementedException("ODBCTest::testStoredProcedureAny()");
 }
 
 
-inline void ODBCTest::testStoredProcedureDynamicAny() 
-{ 
+inline void ODBCTest::testStoredProcedureDynamicAny()
+{
 	throw Poco::NotImplementedException("ODBCTest::testStoredProcedureDynamicAny()");
 }
 
 
-inline void ODBCTest::testStoredFunction() 
-{ 
+inline void ODBCTest::testStoredFunction()
+{
 	throw Poco::NotImplementedException("ODBCTest::testStoredFunction()");
 }
 
 
-inline void ODBCTest::testStoredFunctionAny() 
-{ 
+inline void ODBCTest::testStoredFunctionAny()
+{
 	throw Poco::NotImplementedException("ODBCTest::testStoredFunctionAny()");
 }
 
 
-inline void ODBCTest::testStoredFunctionDynamicAny() 
-{ 
+inline void ODBCTest::testStoredFunctionDynamicAny()
+{
 	throw Poco::NotImplementedException("ODBCTest::testStoredFunctionDynamicAny()");
 }
 
@@ -264,109 +264,109 @@ inline void ODBCTest::dropObject(const std::string& type, const std::string& nam
 
 
 inline void ODBCTest::recreateNullableTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateNullableTable()");
 }
 
 
 inline void ODBCTest::recreatePersonTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreatePersonTable()");
 }
 
 
 inline void ODBCTest::recreatePersonTupleTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreatePersonTupleTable()");
 }
 
 
 inline void ODBCTest::recreatePersonBLOBTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreatePersonBLOBTable()");
 }
 
 
 inline void ODBCTest::recreatePersonDateTimeTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreatePersonDateTimeTable()");
 }
 
 
 inline void ODBCTest::recreatePersonDateTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreatePersonDateTable()");
 }
 
 
 inline void ODBCTest::recreatePersonTimeTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreatePersonTimeTable()");
 }
 
 
 inline void ODBCTest::recreateStringsTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateStringsTable()");
 }
 
 
 inline void ODBCTest::recreateIntsTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateIntsTable()");
 }
 
 
 inline void ODBCTest::recreateFloatsTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateFloatsTable()");
 }
 
 
 inline void ODBCTest::recreateUUIDsTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateUUIDsTable()");
 }
 
 
 inline void ODBCTest::recreateTuplesTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateTuplesTable()");
 }
 
 
 inline void ODBCTest::recreateVectorsTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateVectorsTable()");
 }
 
 
 inline void ODBCTest::recreateAnysTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateAnysTable()");
 }
 
 
 inline void ODBCTest::recreateNullsTable(const std::string&)
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateNullsTable()");
 }
 
 
 inline void ODBCTest::recreateBoolTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateBoolTable()");
 }
 
 
 inline void ODBCTest::recreateMiscTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateMiscTable()");
 }
 
 
 inline void ODBCTest::recreateLogTable()
-{ 
+{
 	throw Poco::NotImplementedException("ODBCTest::recreateLogTable()");
 }
 
@@ -383,48 +383,48 @@ inline void ODBCTest::recreateEncodingTables()
 }
 
 
-inline bool ODBCTest::bindValue(int i) 
-{ 
+inline bool ODBCTest::bindValue(int i)
+{
 	poco_assert (i < 8);
-	return _bindValues[i]; 
+	return _bindValues[i];
 }
 
 
-inline Poco::Data::Session& ODBCTest::session() 
-{ 
+inline Poco::Data::Session& ODBCTest::session()
+{
 	poco_check_ptr (_pSession);
-	return *_pSession; 
+	return *_pSession;
 }
 
 
-inline SQLExecutor& ODBCTest::executor() 
-{ 
+inline SQLExecutor& ODBCTest::executor()
+{
 	poco_check_ptr (_pExecutor);
-	return *_pExecutor; 
+	return *_pExecutor;
 }
 
 
-inline const std::string& ODBCTest::dsn() 
-{ 
-	return _rDSN; 
+inline const std::string& ODBCTest::dsn()
+{
+	return _rDSN;
 }
 
 
-inline const std::string& ODBCTest::uid() 
-{ 
-	return _rUID; 
+inline const std::string& ODBCTest::uid()
+{
+	return _rUID;
 }
 
 
-inline const std::string& ODBCTest::pwd() 
-{ 
-	return _rPwd; 
+inline const std::string& ODBCTest::pwd()
+{
+	return _rPwd;
 }
 
 
-inline const std::string& ODBCTest::dbConnString() 
-{ 
-	return _rConnectString; 
+inline const std::string& ODBCTest::dbConnString()
+{
+	return _rConnectString;
 }
 
 
diff --git a/Data/ODBC/testsuite/src/ODBCTestSuite.cpp b/Data/ODBC/testsuite/src/ODBCTestSuite.cpp
index 64e508e62..d9d418a6b 100644
--- a/Data/ODBC/testsuite/src/ODBCTestSuite.cpp
+++ b/Data/ODBC/testsuite/src/ODBCTestSuite.cpp
@@ -26,15 +26,15 @@ CppUnit::Test* ODBCTestSuite::suite()
 
 	// WARNING!
 	// On Win XP Pro, the PostgreSQL connection fails if attempted after DB2 w/ following error:
-	// 
-	// sqlState="IM003" 
-	// message="Specified driver could not be loaded due to system error  127 (PostgreSQL ANSI)." 
-	// nativeError=160 
+	//
+	// sqlState="IM003"
+	// message="Specified driver could not be loaded due to system error  127 (PostgreSQL ANSI)."
+	// nativeError=160
 	// System error 127 is "The specified procedure could not be found."
 	// This problem does not manifest with Mammoth ODBCng PostgreSQL driver.
 	//
 	// Oracle tests do not exit cleanly if Oracle driver is loaded after DB2.
-	// 
+	//
 	// For the time being, the workaround is to connect to DB2 after connecting to PostgreSQL and Oracle.
 
 	addTest(pSuite, ODBCMySQLTest::suite());
diff --git a/Data/ODBC/testsuite/src/SQLExecutor.cpp b/Data/ODBC/testsuite/src/SQLExecutor.cpp
index 9fb26cb6b..84f44c7aa 100644
--- a/Data/ODBC/testsuite/src/SQLExecutor.cpp
+++ b/Data/ODBC/testsuite/src/SQLExecutor.cpp
@@ -180,9 +180,9 @@ template <>
 class TypeHandler
 {
 public:
-	static void bind(std::size_t pos, 
-		const Person& obj, 
-		AbstractBinder::Ptr pBinder, 
+	static void bind(std::size_t pos,
+		const Person& obj,
+		AbstractBinder::Ptr pBinder,
 		AbstractBinder::Direction dir = AbstractBinder::PD_IN)
 	{
 		// the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3))
@@ -231,9 +231,9 @@ template <>
 class TypeHandler
 {
 public:
-	static void bind(std::size_t pos, 
-		const RefCountedPerson& obj, 
-		AbstractBinder::Ptr pBinder, 
+	static void bind(std::size_t pos,
+		const RefCountedPerson& obj,
+		AbstractBinder::Ptr pBinder,
 		AbstractBinder::Direction dir = AbstractBinder::PD_IN)
 	{
 		// the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3))
@@ -281,7 +281,7 @@ private:
 } } // namespace Poco::Data
 
 
-const std::string SQLExecutor::MULTI_INSERT = 
+const std::string SQLExecutor::MULTI_INSERT =
 	"INSERT INTO Test VALUES ('1', 2, 3.5);"
 	"INSERT INTO Test VALUES ('2', 3, 4.5);"
 	"INSERT INTO Test VALUES ('3', 4, 5.5);"
@@ -309,9 +309,9 @@ SQLExecutor::~SQLExecutor()
 }
 
 
-void SQLExecutor::bareboneODBCTest(const std::string& dbConnString, 
-	const std::string& tableCreateString, 
-	SQLExecutor::DataBinding bindMode, 
+void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
+	const std::string& tableCreateString,
+	SQLExecutor::DataBinding bindMode,
 	SQLExecutor::DataExtraction extractMode,
 	bool doTime,
 	const std::string& blobPlaceholder)
@@ -349,7 +349,7 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 
 		rc = SQLGetTypeInfo(hstmt, SQL_TYPE_TIMESTAMP);
 		poco_odbc_check_stmt (rc, hstmt);
-		
+
 		rc = SQLFetch(hstmt);
 		assertTrue (SQL_SUCCEEDED(rc) || SQL_NO_DATA == rc);
 
@@ -414,15 +414,15 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 			if (SQLExecutor::PB_AT_EXEC == bindMode)
 				li[0] = SQL_LEN_DATA_AT_EXEC(size);
 
-			rc = SQLBindParameter(hstmt, 
-				(SQLUSMALLINT) 1, 
-				SQL_PARAM_INPUT, 
-				SQL_C_CHAR, 
-				SQL_LONGVARCHAR, 
+			rc = SQLBindParameter(hstmt,
+				(SQLUSMALLINT) 1,
+				SQL_PARAM_INPUT,
+				SQL_C_CHAR,
+				SQL_LONGVARCHAR,
 				(SQLUINTEGER) size,
 				0,
-				(SQLPOINTER) str[0].c_str(), 
-				size, 
+				(SQLPOINTER) str[0].c_str(),
+				size,
 				&li[0]);
 			poco_odbc_check_stmt (rc, hstmt);
 
@@ -431,15 +431,15 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 				li[1] = SQL_LEN_DATA_AT_EXEC(size);
 			else li[1] = SQL_NTS;
 
-			rc = SQLBindParameter(hstmt, 
-				(SQLUSMALLINT) 2, 
-				SQL_PARAM_INPUT, 
-				SQL_C_CHAR, 
-				SQL_LONGVARCHAR, 
+			rc = SQLBindParameter(hstmt,
+				(SQLUSMALLINT) 2,
+				SQL_PARAM_INPUT,
+				SQL_C_CHAR,
+				SQL_LONGVARCHAR,
 				(SQLUINTEGER) size,
 				0,
-				(SQLPOINTER) str[1].c_str(), 
-				size, 
+				(SQLPOINTER) str[1].c_str(),
+				size,
 				&li[1]);
 			poco_odbc_check_stmt (rc, hstmt);
 
@@ -448,39 +448,39 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 				li[2] = SQL_LEN_DATA_AT_EXEC(size);
 			else li[2] = size;
 
-			rc = SQLBindParameter(hstmt, 
-				(SQLUSMALLINT) 3, 
-				SQL_PARAM_INPUT, 
-				SQL_C_BINARY, 
-				SQL_LONGVARBINARY, 
+			rc = SQLBindParameter(hstmt,
+				(SQLUSMALLINT) 3,
+				SQL_PARAM_INPUT,
+				SQL_C_BINARY,
+				SQL_LONGVARBINARY,
 				(SQLUINTEGER) size,
 				0,
-				(SQLPOINTER) str[2].data(), 
-				size, 
+				(SQLPOINTER) str[2].data(),
+				size,
 				&li[2]);
 			poco_odbc_check_stmt (rc, hstmt);
 
-			rc = SQLBindParameter(hstmt, 
-				(SQLUSMALLINT) 4, 
-				SQL_PARAM_INPUT, 
-				SQL_C_SLONG, 
-				SQL_INTEGER, 
+			rc = SQLBindParameter(hstmt,
+				(SQLUSMALLINT) 4,
+				SQL_PARAM_INPUT,
+				SQL_C_SLONG,
+				SQL_INTEGER,
 				0,
 				0,
-				(SQLPOINTER) &fourth, 
-				0, 
+				(SQLPOINTER) &fourth,
+				0,
 				0);
 			poco_odbc_check_stmt (rc, hstmt);
 
-			rc = SQLBindParameter(hstmt, 
-				(SQLUSMALLINT) 5, 
-				SQL_PARAM_INPUT, 
-				SQL_C_FLOAT, 
-				SQL_REAL, 
+			rc = SQLBindParameter(hstmt,
+				(SQLUSMALLINT) 5,
+				SQL_PARAM_INPUT,
+				SQL_C_FLOAT,
+				SQL_REAL,
 				0,
 				1,
-				(SQLPOINTER) &fifth, 
-				0, 
+				(SQLPOINTER) &fifth,
+				0,
 				0);
 			poco_odbc_check_stmt (rc, hstmt);
 
@@ -499,14 +499,14 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 			else
 				std::cerr << '[' << name() << ']' << " Warning: could not get SQL_TYPE_TIMESTAMP parameter description." << std::endl;
 
-			rc = SQLBindParameter(hstmt, 
-				(SQLUSMALLINT) 6, 
-				SQL_PARAM_INPUT, 
-				SQL_C_TYPE_TIMESTAMP, 
-				SQL_TYPE_TIMESTAMP, 
+			rc = SQLBindParameter(hstmt,
+				(SQLUSMALLINT) 6,
+				SQL_PARAM_INPUT,
+				SQL_C_TYPE_TIMESTAMP,
+				SQL_TYPE_TIMESTAMP,
 				dateTimeColSize,
 				dateTimeDecDigits,
-				(SQLPOINTER) &sixth, 
+				(SQLPOINTER) &sixth,
 				0,
 				0);
 			poco_odbc_check_stmt (rc, hstmt);
@@ -520,9 +520,9 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 				while (SQL_NEED_DATA == (rc = SQLParamData(hstmt, &pParam)))
 				{
 					SQLINTEGER dataSize = 0;
-					// Data size should be ignored for non-null, 
-					// non-variable length fields, but SQLite ODBC 
-					// driver insists on it always being the actual 
+					// Data size should be ignored for non-null,
+					// non-variable length fields, but SQLite ODBC
+					// driver insists on it always being the actual
 					// data length
 
 					if (pParam == (SQLPOINTER) str[0].c_str())
@@ -558,55 +558,55 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 
 			if (SQLExecutor::DE_BOUND == extractMode)
 			{
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 1, 
-					SQL_C_CHAR, 
-					(SQLPOINTER) chr[0], 
-					(SQLINTEGER) sizeof(chr[0]), 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 1,
+					SQL_C_CHAR,
+					(SQLPOINTER) chr[0],
+					(SQLINTEGER) sizeof(chr[0]),
 					&lengths[0]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 2, 
-					SQL_C_CHAR, 
-					(SQLPOINTER) chr[1], 
-					(SQLINTEGER) sizeof(chr[1]), 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 2,
+					SQL_C_CHAR,
+					(SQLPOINTER) chr[1],
+					(SQLINTEGER) sizeof(chr[1]),
 					&lengths[1]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 3, 
-					SQL_C_BINARY, 
-					(SQLPOINTER) chr[2], 
-					(SQLINTEGER) sizeof(chr[2]), 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 3,
+					SQL_C_BINARY,
+					(SQLPOINTER) chr[2],
+					(SQLINTEGER) sizeof(chr[2]),
 					&lengths[2]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 4, 
-					SQL_C_SLONG, 
-					(SQLPOINTER) &fourth, 
-					(SQLINTEGER) 0, 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 4,
+					SQL_C_SLONG,
+					(SQLPOINTER) &fourth,
+					(SQLINTEGER) 0,
 					&lengths[3]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 5, 
-					SQL_C_FLOAT, 
-					(SQLPOINTER) &fifth, 
-					(SQLINTEGER) 0, 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 5,
+					SQL_C_FLOAT,
+					(SQLPOINTER) &fifth,
+					(SQLINTEGER) 0,
 					&lengths[4]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 6, 
-					SQL_C_TYPE_TIMESTAMP, 
-					(SQLPOINTER) &sixth, 
-					(SQLINTEGER) 0, 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 6,
+					SQL_C_TYPE_TIMESTAMP,
+					(SQLPOINTER) &sixth,
+					(SQLINTEGER) 0,
 					&lengths[5]);
 				poco_odbc_check_stmt (rc, hstmt);
 			}
-			
+
 			rc = SQLExecute(hstmt);
 			poco_odbc_check_stmt (rc, hstmt);
 			rc = SQLFetch(hstmt);
@@ -615,67 +615,67 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 			if (SQLExecutor::DE_MANUAL == extractMode)
 			{
 				SQLLEN len = lengths[0] = 0;
-				while (SQL_SUCCESS_WITH_INFO == (rc = SQLGetData(hstmt, 
-					(SQLUSMALLINT) 1, 
-					SQL_C_CHAR, 
-					chr[0] + len, 
+				while (SQL_SUCCESS_WITH_INFO == (rc = SQLGetData(hstmt,
+					(SQLUSMALLINT) 1,
+					SQL_C_CHAR,
+					chr[0] + len,
 					sizeof(chr[0]) - len,
 					&lengths[0])))
 				{
 					len += lengths[0];
-					if (!lengths[0] || len >= sizeof(chr[1])) 
+					if (!lengths[0] || len >= sizeof(chr[1]))
 						break;
 				}
 				poco_odbc_check_stmt (rc, hstmt);
 
 				len = lengths[1] = 0;
-				while (SQL_SUCCESS_WITH_INFO == (rc = SQLGetData(hstmt, 
-					(SQLUSMALLINT) 2, 
-					SQL_C_CHAR, 
-					chr[1] + len, 
+				while (SQL_SUCCESS_WITH_INFO == (rc = SQLGetData(hstmt,
+					(SQLUSMALLINT) 2,
+					SQL_C_CHAR,
+					chr[1] + len,
 					sizeof(chr[1]) - len,
 					&lengths[1])))
 				{
 					len += lengths[1];
-					if (!lengths[1] || len >= sizeof(chr[1])) 
+					if (!lengths[1] || len >= sizeof(chr[1]))
 						break;
 				}
 				poco_odbc_check_stmt (rc, hstmt);
 
 				len = lengths[2] = 0;
-				while (SQL_SUCCESS_WITH_INFO == (rc = SQLGetData(hstmt, 
-					(SQLUSMALLINT) 3, 
-					SQL_C_BINARY, 
-					chr[2] + len, 
+				while (SQL_SUCCESS_WITH_INFO == (rc = SQLGetData(hstmt,
+					(SQLUSMALLINT) 3,
+					SQL_C_BINARY,
+					chr[2] + len,
 					sizeof(chr[2]) - len,
 					&lengths[2])))
 				{
 					len += lengths[1];
-					if (!lengths[2] || len >= sizeof(chr[2])) 
+					if (!lengths[2] || len >= sizeof(chr[2]))
 						break;
 				}
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLGetData(hstmt, 
-					(SQLUSMALLINT) 4, 
-					SQL_C_SLONG, 
-					&fourth, 
+				rc = SQLGetData(hstmt,
+					(SQLUSMALLINT) 4,
+					SQL_C_SLONG,
+					&fourth,
 					0,
 					&lengths[3]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLGetData(hstmt, 
-					(SQLUSMALLINT) 5, 
-					SQL_C_FLOAT, 
-					&fifth, 
+				rc = SQLGetData(hstmt,
+					(SQLUSMALLINT) 5,
+					SQL_C_FLOAT,
+					&fifth,
 					0,
 					&lengths[4]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLGetData(hstmt, 
-					(SQLUSMALLINT) 6, 
-					SQL_C_TYPE_TIMESTAMP, 
-					&sixth, 
+				rc = SQLGetData(hstmt,
+					(SQLUSMALLINT) 6,
+					SQL_C_TYPE_TIMESTAMP,
+					&sixth,
 					0,
 					&lengths[5]);
 				poco_odbc_check_stmt (rc, hstmt);
@@ -728,9 +728,9 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString,
 }
 
 
-void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString, 
-	const std::string& tableCreateString, 
-	SQLExecutor::DataBinding bindMode, 
+void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString,
+	const std::string& tableCreateString,
+	SQLExecutor::DataBinding bindMode,
 	SQLExecutor::DataExtraction extractMode,
 	const std::string& insert,
 	const std::string& select)
@@ -802,11 +802,11 @@ void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString,
 			poco_odbc_check_stmt (rc, hstmt);
 			if (SQLExecutor::DE_BOUND == extractMode)
 			{
-				rc = SQLBindCol(hstmt, 
-						(SQLUSMALLINT) 1, 
-						SQL_C_SLONG, 
-						(SQLPOINTER) &count, 
-						(SQLINTEGER) 0, 
+				rc = SQLBindCol(hstmt,
+						(SQLUSMALLINT) 1,
+						SQL_C_SLONG,
+						(SQLPOINTER) &count,
+						(SQLINTEGER) 0,
 						&length);
 				poco_odbc_check_stmt (rc, hstmt);
 			}
@@ -819,10 +819,10 @@ void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString,
 
 			if (SQLExecutor::DE_MANUAL == extractMode)
 			{
-				rc = SQLGetData(hstmt, 
-					(SQLUSMALLINT) 1, 
-					SQL_C_SLONG, 
-					&count, 
+				rc = SQLGetData(hstmt,
+					(SQLUSMALLINT) 1,
+					SQL_C_SLONG,
+					&count,
 					0,
 					&length);
 				poco_odbc_check_stmt (rc, hstmt);
@@ -841,34 +841,34 @@ void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString,
 			SQLLEN lengths[3] = { 0 };
 			int second = 0;
 			float third = 0.0f;
-			
+
 			if (SQLExecutor::DE_BOUND == extractMode)
 			{
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 1, 
-					SQL_C_CHAR, 
-					(SQLPOINTER) chr, 
-					(SQLINTEGER) 4, 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 1,
+					SQL_C_CHAR,
+					(SQLPOINTER) chr,
+					(SQLINTEGER) 4,
 					&lengths[0]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 2, 
-					SQL_C_SLONG, 
-					(SQLPOINTER) &second, 
-					(SQLINTEGER) 0, 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 2,
+					SQL_C_SLONG,
+					(SQLPOINTER) &second,
+					(SQLINTEGER) 0,
 					&lengths[1]);
 				poco_odbc_check_stmt (rc, hstmt);
 
-				rc = SQLBindCol(hstmt, 
-					(SQLUSMALLINT) 3, 
-					SQL_C_FLOAT, 
-					(SQLPOINTER) &third, 
-					(SQLINTEGER) 0, 
+				rc = SQLBindCol(hstmt,
+					(SQLUSMALLINT) 3,
+					SQL_C_FLOAT,
+					(SQLPOINTER) &third,
+					(SQLINTEGER) 0,
 					&lengths[2]);
 				poco_odbc_check_stmt (rc, hstmt);
 			}
-			
+
 			rc = SQLExecute(hstmt);
 			poco_odbc_check_stmt (rc, hstmt);
 
@@ -884,26 +884,26 @@ void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString,
 
 				if (SQLExecutor::DE_MANUAL == extractMode)
 				{
-					rc = SQLGetData(hstmt, 
-						(SQLUSMALLINT) 1, 
-						SQL_C_CHAR, 
-						chr, 
+					rc = SQLGetData(hstmt,
+						(SQLUSMALLINT) 1,
+						SQL_C_CHAR,
+						chr,
 						4,
 						&lengths[0]);
 					poco_odbc_check_stmt (rc, hstmt);
 
-					rc = SQLGetData(hstmt, 
-						(SQLUSMALLINT) 2, 
-						SQL_C_SLONG, 
-						&second, 
+					rc = SQLGetData(hstmt,
+						(SQLUSMALLINT) 2,
+						SQL_C_SLONG,
+						&second,
 						0,
 						&lengths[1]);
 					poco_odbc_check_stmt (rc, hstmt);
 
-					rc = SQLGetData(hstmt, 
-						(SQLUSMALLINT) 3, 
-						SQL_C_FLOAT, 
-						&third, 
+					rc = SQLGetData(hstmt,
+						(SQLUSMALLINT) 3,
+						SQL_C_FLOAT,
+						&third,
 						0,
 						&lengths[2]);
 					poco_odbc_check_stmt (rc, hstmt);
@@ -1568,7 +1568,7 @@ void SQLExecutor::insertSingleBulkVec()
 {
 	std::string funct = "insertSingleBulkVec()";
 	std::vector data;
-	
+
 	for (int x = 0; x < 100; ++x)
 		data.push_back(x);
 
@@ -1674,9 +1674,9 @@ void SQLExecutor::limitPrepare()
 		data.push_back(x);
 	}
 
-	try 
-	{ 
-		Statement stmt = (session() << "INSERT INTO Strings VALUES (?)", use(data)); 
+	try
+	{
+		Statement stmt = (session() << "INSERT INTO Strings VALUES (?)", use(data));
 		assertTrue (100 == stmt.execute());
 	}
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
@@ -1738,13 +1738,13 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size)
 	std::vector strings(size, "abc");
 	std::vector floats(size, .5);
 	std::vector dateTimes(size);
-	
+
 	Stopwatch sw;
-	try 
+	try
 	{
 		sw.start();
-		session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", 
-			use(strings), 
+		session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)",
+			use(strings),
 			use(ints),
 			use(floats),
 			use(dateTimes), now;
@@ -1758,18 +1758,18 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size)
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-	try 
+	try
 	{
 		sw.restart();
-		session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", 
-			use(strings, bulk), 
+		session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)",
+			use(strings, bulk),
 			use(ints, bulk),
 			use(floats, bulk),
 			use(dateTimes, bulk), now;
 		sw.stop();
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-	
+
 	double bulkTime = sw.elapsed() / 1000.0;
 
 	double speedup;
@@ -1781,10 +1781,10 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size)
 	else
 		speedup = time / bulkTime;
 
-	std::cout << "INSERT => Size:" << size 
-		<< ", Time: " << time 
-		<< ", Bulk Time: " << bulkTime 
-		<< " [ms], Speedup: " << speedup 
+	std::cout << "INSERT => Size:" << size
+		<< ", Time: " << time
+		<< ", Bulk Time: " << bulkTime
+		<< " [ms], Speedup: " << speedup
 		<< 'x' << std::endl;
 
 	ints.clear();
@@ -1792,19 +1792,19 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size)
 	floats.clear();
 	dateTimes.clear();
 
-	try 
-	{ 
+	try
+	{
 		sw.restart();
-		session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest", 
-			into(strings), 
-			into(ints), 
+		session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest",
+			into(strings),
+			into(ints),
 			into(floats),
 			into(dateTimes),
-			now; 
+			now;
 		sw.stop();
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-	
+
 	time = sw.elapsed() / 1000.0;
 
 	assertTrue (ints.size() == size);
@@ -1813,20 +1813,20 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size)
 	strings.clear();
 	floats.clear();
 	dateTimes.clear();
-	
-	try 
-	{ 
+
+	try
+	{
 		sw.restart();
-		session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest", 
+		session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest",
 			into(strings, bulk(size)),
 			into(ints, bulk(size)),
 			into(floats, bulk(size)),
 			into(dateTimes, bulk(size)),
-			now; 
+			now;
 		sw.stop();
 	} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-	
+
 	bulkTime = sw.elapsed() / 1000.0;
 
 	assertTrue (ints.size() == size);
@@ -1839,10 +1839,10 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size)
 	else
 		speedup = time / bulkTime;
 
-	std::cout << "SELECT => Size:" << size 
-		<< ", Time: " << time 
-		<< ", Bulk Time: " << bulkTime 
-		<< " [ms], Speedup: " << speedup 
+	std::cout << "SELECT => Size:" << size
+		<< ", Time: " << time
+		<< ", Bulk Time: " << bulkTime
+		<< " [ms], Speedup: " << speedup
 		<< 'x' << std::endl;
 }
 
@@ -2078,7 +2078,7 @@ void SQLExecutor::multiMapComplex()
 	people.insert(std::make_pair("LN1", p1));
 	people.insert(std::make_pair("LN1", p1));
 	people.insert(std::make_pair("LN2", p2));
-	
+
 	try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; }
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
@@ -2140,7 +2140,7 @@ void SQLExecutor::selectIntoSingleStep()
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 	assertTrue (count == 2);
 	Person result;
-	Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1)); 
+	Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1));
 	stmt.execute();
 	assertTrue (result == p1);
 	assertTrue (!stmt.done());
@@ -2406,7 +2406,7 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder)
 
 	CLOB img("0123456789", 10);
 	int count = 0;
-	try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), 
+	try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder),
 		use(lastName), use(firstName), use(address), use(img), now; }
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
@@ -2432,7 +2432,7 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder)
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-	try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), 
+	try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder),
 		use(lastName), use(firstName), use(address), use(big), now; }
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
@@ -2510,11 +2510,11 @@ void SQLExecutor::date()
 
 	Date bornDate(1965, 6, 18);
 	int count = 0;
-	try { session() << "INSERT INTO Person VALUES (?,?,?,?)", 
-		use(lastName), 
-		use(firstName), 
-		use(address), 
-		use(bornDate), 
+	try { session() << "INSERT INTO Person VALUES (?,?,?,?)",
+		use(lastName),
+		use(firstName),
+		use(address),
+		use(bornDate),
 		now; }
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
@@ -2549,11 +2549,11 @@ void SQLExecutor::time()
 
 	Time bornTime (5, 35, 1);
 	int count = 0;
-	try { session() << "INSERT INTO Person VALUES (?,?,?,?)", 
-		use(lastName), 
-		use(firstName), 
-		use(address), 
-		use(bornTime), 
+	try { session() << "INSERT INTO Person VALUES (?,?,?,?)",
+		use(lastName),
+		use(firstName),
+		use(address),
+		use(bornTime),
 		now; }
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
@@ -2601,7 +2601,7 @@ void SQLExecutor::tupleVector()
 	typedef Tuple TupleType;
 	std::string funct = "tupleVector()";
 	TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
-	Tuple 
+	Tuple
 		t10(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29);
 	TupleType t100(100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119);
 	std::vector v;
@@ -2640,8 +2640,8 @@ void SQLExecutor::internalExtraction()
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-	try 
-	{ 
+	try
+	{
 		Statement stmt = (session() << "SELECT * FROM Vectors", now);
 		RecordSet rset(stmt);
 
@@ -2697,7 +2697,7 @@ void SQLExecutor::internalExtraction()
 
 		i = rset.value("str0", 2);
 		assertTrue (5 == i);
-		
+
 		const Column >& col = rset.column >(0);
 		Column >::Iterator it = col.begin();
 		Column >::Iterator end = col.end();
@@ -2737,7 +2737,7 @@ void SQLExecutor::internalExtraction()
 
 		try	{ rset.value(0,0); fail ("must fail"); }
 		catch (BadCastException&) {	}
-		
+
 		stmt = (session() << "DELETE FROM Vectors", now);
 		rset = stmt;
 
@@ -2762,8 +2762,8 @@ void SQLExecutor::filter(const std::string& query, const std::string& intFldName
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-	try 
-	{ 
+	try
+	{
 		Statement stmt = (session() << query, now);
 		RecordSet rset(stmt);
 		assertTrue (rset.totalRowCount() == 4);
@@ -2773,11 +2773,11 @@ void SQLExecutor::filter(const std::string& query, const std::string& intFldName
 		assertTrue (!pRF->isEmpty());
 
 		Var da;
-		try 
+		try
 		{
 			da = rset.value(0, 1);
 			fail ("must fail");
-		} catch (InvalidAccessException&) 
+		} catch (InvalidAccessException&)
 		{
 			da = rset.value(0, 1, false);
 			assertTrue (2 == da);
@@ -2846,22 +2846,22 @@ void SQLExecutor::internalBulkExtraction()
 		age[i] = i;
 	}
 
-	try 
-	{ 
-		session() << "INSERT INTO Person VALUES (?,?,?,?)", 
-			use(lastName, bulk), 
-			use(firstName, bulk), 
-			use(address, bulk), 
-			use(age, bulk), 
-			now; 
+	try
+	{
+		session() << "INSERT INTO Person VALUES (?,?,?,?)",
+			use(lastName, bulk),
+			use(firstName, bulk),
+			use(address, bulk),
+			use(age, bulk),
+			now;
 	}
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-	try 
-	{ 
+	try
+	{
 		Statement stmt = (session() << "SELECT * FROM Person", bulk(size), now);
-		RecordSet rset(stmt); 
+		RecordSet rset(stmt);
 		assertTrue (size == rset.rowCount());
 		assertTrue ("LN0" == rset["LastName"]);
 		assertTrue (0 == rset["Age"]);
@@ -2875,10 +2875,10 @@ void SQLExecutor::internalBulkExtraction()
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-	try 
-	{ 
+	try
+	{
 		Statement stmt = (session() << "SELECT * FROM Person", limit(size), bulk, now);
-		RecordSet rset(stmt); 
+		RecordSet rset(stmt);
 		assertTrue (size == rset.rowCount());
 		assertTrue ("LN0" == rset["LastName"]);
 		assertTrue (0 == rset["Age"]);
@@ -2971,8 +2971,8 @@ void SQLExecutor::internalStorageType()
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-	try 
-	{ 
+	try
+	{
 		std::vector::iterator it = manips.begin();
 		std::vector::iterator end = manips.end();
 
@@ -3029,15 +3029,15 @@ void SQLExecutor::notNulls(const std::string& sqlState)
 	{
 		session() << "INSERT INTO NullTest (i,r,v) VALUES (?,?,?)", use(null), use(null), use(null), now;
 		fail ("must fail");
-	}catch (StatementException& se) 
-	{ 
+	}catch (StatementException& se)
+	{
 		//double check if we're failing for the right reason
 		//default sqlState value is "23502"; some drivers report "HY???" codes
 		if (se.diagnostics().fields().size())
 		{
 			std::string st = se.diagnostics().sqlState(0);
 			if (sqlState != st)
-				std::cerr << '[' << name() << ']' << " Warning: expected SQL state [" << sqlState << 
+				std::cerr << '[' << name() << ']' << " Warning: expected SQL state [" << sqlState <<
 					"], received [" << se.diagnostics().sqlState(0) << "] instead." << std::endl;
 		}
 	}
@@ -3185,7 +3185,7 @@ void SQLExecutor::rowIterator()
 	std::ostringstream osLoop;
 	RecordSet::Iterator it = rset.begin();
 	RecordSet::Iterator end = rset.end();
-	for (int i = 1; it != end; ++it, ++i) 
+	for (int i = 1; it != end; ++it, ++i)
 	{
 		assertTrue (it->get(0) == i);
 		osLoop << *it;
@@ -3202,7 +3202,7 @@ void SQLExecutor::rowIterator()
 	assertTrue (!pRF->isEmpty());
 	it = rset.begin();
 	end = rset.end();
-	for (int i = 1; it != end; ++it, ++i) 
+	for (int i = 1; it != end; ++it, ++i)
 	{
 		assertTrue (it->get(0) == i);
 		assertTrue (1 == i);
@@ -3279,7 +3279,7 @@ void SQLExecutor::asynchronous(int rowCount)
 	Statement::Result result = stmt.executeAsync();
 	assertTrue (!stmt.isAsync());
 	result.wait();
-	
+
 	Statement stmt1 = (tmp << "SELECT * FROM Strings", into(data), async, now);
 	assertTrue (stmt1.isAsync());
 	assertTrue (stmt1.wait() == rowCount);
@@ -3302,7 +3302,7 @@ void SQLExecutor::asynchronous(int rowCount)
 	assertTrue (stmt.isAsync());
 	stmt.wait();
 	assertTrue (stmt.execute() == 0);
-	
+
 	// +++ if this part of the test case fails, increase the rowCount until achieved
 	//  that first execute is still executing when the second one is called
 	try {
@@ -3338,7 +3338,7 @@ void SQLExecutor::asynchronous(int rowCount)
 	assertTrue (data.size() == 0);
 	assertTrue (!stmt2.done());
 	std::size_t rows = 0;
-	
+
 	for (int i = 0; !stmt2.done(); i += step)
 	{
 		stmt2.execute();
@@ -3504,8 +3504,8 @@ void SQLExecutor::sqlChannel(const std::string& connect)
 		rs2.moveNext();
 		assertTrue ("WarningSource" == rs2["Source"]);
 		assertTrue ("f Warning sync message" == rs2["Text"]);
-		
-	} 
+
+	}
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("sqlChannel()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("sqlChannel()"); }
 }
@@ -3518,7 +3518,7 @@ void SQLExecutor::sqlLogger(const std::string& connect)
 		Logger& root = Logger::root();
 		root.setChannel(new SQLChannel(Poco::Data::ODBC::Connector::KEY, connect, "TestSQLChannel"));
 		root.setLevel(Message::PRIO_INFORMATION);
-		
+
 		root.information("a Informational message");
 		root.warning("b Warning message");
 		root.debug("Debug message");
@@ -3532,26 +3532,26 @@ void SQLExecutor::sqlLogger(const std::string& connect)
 		assertTrue ("TestSQLChannel" == rs["Source"]);
 		assertTrue ("b Warning message" == rs["Text"]);
 		root.setChannel(nullptr);
-	} 
+	}
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("sqlLogger()"); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("sqlLogger()"); }
 }
 
 
 void SQLExecutor::setTransactionIsolation(Session& session, Poco::UInt32 ti)
-{ 
+{
 	if (session.hasTransactionIsolation(ti))
 	{
 		std::string funct = "setTransactionIsolation()";
 
-		try 
+		try
 		{
 			Transaction t(session, false);
 			t.setIsolation(ti);
-			
+
 			assertTrue (ti == t.getIsolation());
 			assertTrue (t.isIsolation(ti));
-			
+
 			assertTrue (ti == session.getTransactionIsolation());
 			assertTrue (session.isTransactionIsolation(ti));
 		}
@@ -3714,11 +3714,11 @@ void SQLExecutor::transaction(const std::string& connect)
 		Transaction trans(session());
 		assertTrue (trans.isActive());
 		assertTrue (session().isTransaction());
-		
+
 		try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; }
 		catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-		
+
 		assertTrue (session().isTransaction());
 		assertTrue (trans.isActive());
 
@@ -3770,7 +3770,7 @@ void SQLExecutor::transaction(const std::string& connect)
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 	assertTrue (0 == count);
-	try 
+	try
 	{
 		stmt1.wait(5000);
 		if (local.getTransactionIsolation() == Session::TRANSACTION_READ_UNCOMMITTED)
@@ -3818,7 +3818,7 @@ void SQLExecutor::transaction(const std::string& connect)
 	assertTrue (0 == count);
 
 	trans.execute(sql);
-	
+
 	Statement stmt3 = (local << "SELECT COUNT(*) FROM Person", into(locCount), now);
 	assertTrue (2 == locCount);
 
@@ -3870,7 +3870,7 @@ void SQLExecutor::transactor()
 	try { session() << "DELETE FROM Person", now; session().commit();}
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-	
+
 	try { session() << "SELECT count(*) FROM Person", into(count), now; }
 	catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 	catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
@@ -3961,7 +3961,7 @@ void SQLExecutor::nullable()
 	assertTrue (rs.isNull("EmptyInteger"));
 	assertTrue (rs.isNull("EmptyFloat"));
 	assertTrue (rs.isNull("EmptyDateTime"));
-	
+
 	Var di = 1;
 	Var df = 1.5;
 	Var ds = "abc";
@@ -3971,7 +3971,7 @@ void SQLExecutor::nullable()
 	assertTrue (!df.isEmpty());
 	assertTrue (!ds.isEmpty());
 	assertTrue (!dd.isEmpty());
-	
+
 	Statement stmt = (session() << "SELECT EmptyString, EmptyInteger, EmptyFloat, EmptyDateTime FROM NullableTest", into(ds), into(di), into(df), into(dd), now);
 
 	assertTrue (di.isEmpty());
@@ -4004,9 +4004,9 @@ void SQLExecutor::reconnect()
 	assertTrue (session().isConnected());
 	session().close();
 	assertTrue (!session().isConnected());
-	try 
+	try
 	{
-		session() << "SELECT LastName FROM Person", into(result), now;  
+		session() << "SELECT LastName FROM Person", into(result), now;
 		fail ("must fail");
 	}
 	catch(NotConnectedException&){ }
diff --git a/Data/ODBC/testsuite/src/SQLExecutor.h b/Data/ODBC/testsuite/src/SQLExecutor.h
index ac8e4b69a..5f21805d7 100644
--- a/Data/ODBC/testsuite/src/SQLExecutor.h
+++ b/Data/ODBC/testsuite/src/SQLExecutor.h
@@ -80,7 +80,7 @@ public:
 		PB_IMMEDIATE,
 		PB_AT_EXEC
 	};
-	
+
 	enum DataExtraction
 	{
 		DE_MANUAL,
@@ -95,22 +95,22 @@ public:
 
 	void bareboneODBCTest(const std::string& dbConnString,
 		const std::string& tableCreateString,
-		DataBinding bindMode, 
+		DataBinding bindMode,
 		DataExtraction extractMode,
 		bool doTime=true,
 		const std::string& blobPlaceholder="?");
 
-	void bareboneODBCMultiResultTest(const std::string& dbConnString, 
-		const std::string& tableCreateString, 
-		SQLExecutor::DataBinding bindMode, 
+	void bareboneODBCMultiResultTest(const std::string& dbConnString,
+		const std::string& tableCreateString,
+		SQLExecutor::DataBinding bindMode,
 		SQLExecutor::DataExtraction extractMode,
 		const std::string& insert = MULTI_INSERT,
 		const std::string& select = MULTI_SELECT);
-		/// The above two functions use "bare bone" ODBC API calls  
+		/// The above two functions use "bare bone" ODBC API calls
 		/// (i.e. calls are not "wrapped" in PocoData framework structures).
 		/// The purpose of the functions is to verify that a driver behaves
-		/// correctly as well as to determine its capabilities 
-		/// (e.g. SQLGetData() restrictions relaxation policy, if any). 
+		/// correctly as well as to determine its capabilities
+		/// (e.g. SQLGetData() restrictions relaxation policy, if any).
 		/// If these test pass, subsequent tests failures are likely ours.
 
 	void zeroRows();
@@ -158,7 +158,7 @@ public:
 		C4 floats;
 		C5 dateTimes(size);
 		C6 bools;
-		
+
 		for (int i = 0; i < size; ++i)
 		{
 			ints.push_back(i);
@@ -168,12 +168,12 @@ public:
 			bools.push_back(0 == i % 2);
 		}
 
-		try 
+		try
 		{
-			session() << 
-				Poco::format("INSERT INTO MiscTest VALUES (?,%s,?,?,?,?)", blobPlaceholder), 
-				use(strings), 
-				use(blobs), 
+			session() <<
+				Poco::format("INSERT INTO MiscTest VALUES (?,%s,?,?,?,?)", blobPlaceholder),
+				use(strings),
+				use(blobs),
 				use(ints),
 				use(floats),
 				use(dateTimes),
@@ -185,12 +185,12 @@ public:
 		catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-		try 
+		try
 		{
-			session() <<  
+			session() <<
 				Poco::format("INSERT INTO MiscTest VALUES (?,%s,?,?,?,?)", blobPlaceholder),
-				use(strings, bulk), 
-				use(blobs, bulk), 
+				use(strings, bulk),
+				use(blobs, bulk),
 				use(ints, bulk),
 				use(floats, bulk),
 				use(dateTimes, bulk),
@@ -204,20 +204,20 @@ public:
 		floats.clear();
 		dateTimes.clear();
 		bools.clear();
-		
-		try 
-		{ 
-			session() << "SELECT * FROM MiscTest ORDER BY Third", 
-				into(strings), 
-				into(blobs), 
-				into(ints), 
+
+		try
+		{
+			session() << "SELECT * FROM MiscTest ORDER BY Third",
+				into(strings),
+				into(blobs),
+				into(ints),
 				into(floats),
 				into(dateTimes),
 				into(bools),
-				now; 
+				now;
 		} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-		
+
 		std::string number = Poco::NumberFormatter::format(size - 1);
 		assert (size == ints.size());
 		assert (0 == ints.front());
@@ -235,16 +235,16 @@ public:
 
 		ints.clear();
 
-		try 
-		{ 
-			session() << "SELECT First FROM MiscTest", into(ints, bulk(size)), limit(size+1), now; 
+		try
+		{
+			session() << "SELECT First FROM MiscTest", into(ints, bulk(size)), limit(size+1), now;
 			fail ("must fail");
 		}
 		catch(Poco::InvalidArgumentException&){ }
 
-		try 
-		{ 
-			session() << "SELECT First FROM MiscTest", into(ints), bulk(size), now; 
+		try
+		{
+			session() << "SELECT First FROM MiscTest", into(ints), bulk(size), now;
 			fail ("must fail");
 		}
 		catch(Poco::InvalidAccessException&){ }
@@ -258,17 +258,17 @@ public:
 		dateTimes.clear();
 		bools.clear();
 		bools.resize(size);
-		
-		try 
-		{ 
-			session() << "SELECT First, Second, Third, Fourth, Fifth, Sixth FROM MiscTest ORDER BY Third", 
+
+		try
+		{
+			session() << "SELECT First, Second, Third, Fourth, Fifth, Sixth FROM MiscTest ORDER BY Third",
 				into(strings, bulk),
 				into(blobs, bulk(size)),
 				into(ints, bulk(size)),
 				into(floats, bulk),
 				into(dateTimes, bulk(size)),
 				into(bools, bulk),
-				now; 
+				now;
 		} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
@@ -300,7 +300,7 @@ public:
 		C3 blobs;
 		C4 floats;
 		C5 dateTimes(size);
-	
+
 		for (int i = 0; i < size; ++i)
 		{
 			ints.push_back(i);
@@ -309,11 +309,11 @@ public:
 			floats.push_back(i + .5);
 		}
 
-		try 
+		try
 		{
-			session() << "INSERT INTO MiscTest VALUES (?,?,?,?,?)", 
-				use(strings), 
-				use(blobs), 
+			session() << "INSERT INTO MiscTest VALUES (?,?,?,?,?)",
+				use(strings),
+				use(blobs),
 				use(ints),
 				use(floats),
 				use(dateTimes), now;
@@ -324,35 +324,35 @@ public:
 		catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
 
-		try 
+		try
 		{
-			session() << "INSERT INTO MiscTest VALUES (?,?,?,?,?)", 
-				use(strings, bulk), 
-				use(blobs, bulk), 
+			session() << "INSERT INTO MiscTest VALUES (?,?,?,?,?)",
+				use(strings, bulk),
+				use(blobs, bulk),
 				use(ints, bulk),
 				use(floats, bulk),
 				use(dateTimes, bulk), now;
 		} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-		
+
 		ints.clear();
 		strings.clear();
 		blobs.clear();
 		floats.clear();
 		dateTimes.clear();
 
-		try 
-		{ 
-			session() << "SELECT * FROM MiscTest ORDER BY First", 
-				into(strings), 
-				into(blobs), 
-				into(ints), 
+		try
+		{
+			session() << "SELECT * FROM MiscTest ORDER BY First",
+				into(strings),
+				into(blobs),
+				into(ints),
 				into(floats),
 				into(dateTimes),
-				now; 
+				now;
 		} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-		
+
 		std::string number = Poco::NumberFormatter::format(size - 1);
 		assert (size == ints.size());
 		assert (0 == ints.front());
@@ -368,16 +368,16 @@ public:
 
 		ints.clear();
 
-		try 
-		{ 
-			session() << "SELECT First FROM MiscTest", into(ints, bulk(size)), limit(size+1), now; 
+		try
+		{
+			session() << "SELECT First FROM MiscTest", into(ints, bulk(size)), limit(size+1), now;
 			fail ("must fail");
 		}
 		catch(Poco::InvalidArgumentException&){ }
 
-		try 
-		{ 
-			session() << "SELECT First FROM MiscTest", into(ints), bulk(size), now; 
+		try
+		{
+			session() << "SELECT First FROM MiscTest", into(ints), bulk(size), now;
 			fail ("must fail");
 		}
 		catch(Poco::InvalidAccessException&){ }
@@ -387,19 +387,19 @@ public:
 		blobs.clear();
 		floats.clear();
 		dateTimes.clear();
-		
-		try 
-		{ 
-			session() << "SELECT * FROM MiscTest ORDER BY First", 
+
+		try
+		{
+			session() << "SELECT * FROM MiscTest ORDER BY First",
 				into(strings, bulk(size)),
 				into(blobs, bulk(size)),
 				into(ints, bulk(size)),
 				into(floats, bulk(size)),
 				into(dateTimes, bulk(size)),
-				now; 
+				now;
 		} catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); }
 		catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); }
-		
+
 		assert (size == ints.size());
 		assert (0 == ints.front());
 		assert (size - 1 == ints.back());
@@ -474,7 +474,7 @@ public:
 	void tupleVector();
 
 	void internalExtraction();
-	void filter(const std::string& query = 
+	void filter(const std::string& query =
 		"SELECT * FROM Vectors ORDER BY int0 ASC",
 		const std::string& intFldName = "int0");
 
@@ -487,11 +487,11 @@ public:
 	void stdVectorBool();
 
 	void asynchronous(int rowCount = 500);
-	
+
 	void any();
 	void dynamicAny();
 
-	void multipleResults(const std::string& sql = 
+	void multipleResults(const std::string& sql =
 		"SELECT * FROM Person WHERE Age = ?; "
 		"SELECT Age FROM Person WHERE FirstName = 'Bart'; "
 		"SELECT * FROM Person WHERE Age = ? OR Age = ? ORDER BY Age;");
diff --git a/Data/SQLite/include/Poco/Data/SQLite/Notifier.h b/Data/SQLite/include/Poco/Data/SQLite/Notifier.h
index 10a165007..ceabe7efa 100644
--- a/Data/SQLite/include/Poco/Data/SQLite/Notifier.h
+++ b/Data/SQLite/include/Poco/Data/SQLite/Notifier.h
@@ -35,15 +35,15 @@ namespace SQLite {
 
 class SQLite_API Notifier
 	/// Notifier is a wrapper for SQLite callback calls. It supports event callbacks
-	/// for insert, update, delete, commit and rollback events. While (un)registering 
-	/// callbacks is thread-safe, execution of the callbacks themselves are not; 
-	/// it is the user's responsibility to ensure the thread-safey of the functions 
+	/// for insert, update, delete, commit and rollback events. While (un)registering
+	/// callbacks is thread-safe, execution of the callbacks themselves are not;
+	/// it is the user's responsibility to ensure the thread-safey of the functions
 	/// they provide as callback target. Additionally, commit callbacks may prevent
 	/// database transactions from succeeding (see sqliteCommitCallbackFn documentation
-	/// for details). 
-	/// 
+	/// for details).
+	///
 	/// There can be only one set of callbacks per session (i.e. registering a new
-	/// callback automatically unregisters the previous one). All callbacks are 
+	/// callback automatically unregisters the previous one). All callbacks are
 	/// registered and enabled at Notifier contruction time and can be disabled
 	/// at a later point time.
 {
@@ -53,9 +53,9 @@ public:
 
 	typedef Poco::BasicEvent Event;
 
-	// 
+	//
 	// Events
-	// 
+	//
 	Event update;
 	Event insert;
 	Event erase;
@@ -113,7 +113,7 @@ public:
 		/// Disables all callbacks.
 
 	static void sqliteUpdateCallbackFn(void* pVal, int opCode, const char* pDB, const char* pTable, Poco::Int64 row);
-		/// Update callback event dispatcher. Determines the type of the event, updates the row number 
+		/// Update callback event dispatcher. Determines the type of the event, updates the row number
 		/// and triggers the event.
 
 	static int sqliteCommitCallbackFn(void* pVal);
@@ -165,9 +165,9 @@ private:
 };
 
 
-// 
+//
 // inlines
-// 
+//
 
 inline bool Notifier::operator == (const Notifier& other) const
 {
diff --git a/Data/SQLite/include/Poco/Data/SQLite/SQLiteStatementImpl.h b/Data/SQLite/include/Poco/Data/SQLite/SQLiteStatementImpl.h
index 1044beb7e..75a5afdb8 100644
--- a/Data/SQLite/include/Poco/Data/SQLite/SQLiteStatementImpl.h
+++ b/Data/SQLite/include/Poco/Data/SQLite/SQLiteStatementImpl.h
@@ -55,7 +55,7 @@ protected:
 	int affectedRowCount() const;
 		/// Returns the number of affected rows.
 		/// Used to find out the number of rows affected by insert, delete or update.
-		/// All changes are counted, even if they are later undone by a ROLLBACK or ABORT. 
+		/// All changes are counted, even if they are later undone by a ROLLBACK or ABORT.
 		/// Changes associated with creating and dropping tables are not counted.
 
 	const MetaColumn& metaColumn(std::size_t pos) const;
diff --git a/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h b/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h
index adf6eeaaf..9d6d292cb 100644
--- a/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h
+++ b/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h
@@ -54,16 +54,16 @@ public:
 
 	void open(const std::string& connect = "");
 		/// Opens a connection to the Database.
-		/// 
-		/// An in-memory system database (sys), with a single table (dual) 
+		///
+		/// An in-memory system database (sys), with a single table (dual)
 		/// containing single field (dummy) is attached to the database.
 		/// The in-memory system database is used to force change count
-		/// to be reset to zero on every new query (or batch of queries) 
+		/// to be reset to zero on every new query (or batch of queries)
 		/// execution. Without this functionality, select statements
 		/// executions that do not return any rows return the count of
 		/// changes effected by the most recent insert, update or delete.
 		/// In-memory system database can be queried and updated but can not
-		/// be dropped. It may be used for other purposes 
+		/// be dropped. It may be used for other purposes
 		/// in the future.
 
 	void close();
diff --git a/Data/SQLite/include/Poco/Data/SQLite/Utility.h b/Data/SQLite/include/Poco/Data/SQLite/Utility.h
index 52a7a85d2..c4d6e050b 100644
--- a/Data/SQLite/include/Poco/Data/SQLite/Utility.h
+++ b/Data/SQLite/include/Poco/Data/SQLite/Utility.h
@@ -84,37 +84,37 @@ public:
 	static bool fileToMemory(sqlite3* pInMemory, const std::string& fileName);
 		/// Loads the contents of a database file on disk into an opened
 		/// database in memory.
-		/// 
+		///
 		/// Returns true if succesful.
 
 	static bool fileToMemory(const Session& session, const std::string& fileName);
 		/// Loads the contents of a database file on disk into an opened
 		/// database in memory.
-		/// 
+		///
 		/// Returns true if succesful.
 
 	static bool memoryToFile(const std::string& fileName, sqlite3* pInMemory);
 		/// Saves the contents of an opened database in memory to the
 		/// database on disk.
-		/// 
+		///
 		/// Returns true if succesful.
 
 	static bool memoryToFile(const std::string& fileName, const Session& session);
 		/// Saves the contents of an opened database in memory to the
 		/// database on disk.
-		/// 
+		///
 		/// Returns true if succesful.
 
 	static bool isThreadSafe();
 		/// Returns true if SQLite was compiled in multi-thread or serialized mode.
 		/// See http://www.sqlite.org/c3ref/threadsafe.html for details.
-		/// 
+		///
 		/// Returns true if succesful
 
 	static bool setThreadMode(int mode);
 		/// Sets the threading mode to single, multi or serialized.
 		/// See http://www.sqlite.org/threadsafe.html for details.
-		/// 
+		///
 		/// Returns true if succesful
 
 	static int getThreadMode();
@@ -122,7 +122,7 @@ public:
 
 	typedef void(*UpdateCallbackType)(void*, int, const char*, const char*, Poco::Int64);
 		/// Update callback function type.
- 
+
 	typedef int(*CommitCallbackType)(void*);
 		/// Commit callback function type.
 
@@ -131,13 +131,13 @@ public:
 
 	template 
 	static bool registerUpdateHandler(sqlite3* pDB, CBT callbackFn, T* pParam)
-		/// Registers the callback for (1)(insert, delete, update), (2)(commit) or 
+		/// Registers the callback for (1)(insert, delete, update), (2)(commit) or
 		/// or (3)(rollback) events. Only one function per group can be registered
 		/// at a time. Registration is not thread-safe. Storage pointed to by pParam
 		/// must remain valid as long as registration is active. Registering with
 		/// callbackFn set to zero disables notifications.
-		/// 
-		/// See http://www.sqlite.org/c3ref/update_hook.html and 
+		///
+		/// See http://www.sqlite.org/c3ref/update_hook.html and
 		/// http://www.sqlite.org/c3ref/commit_hook.html for details.
 	{
 		typedef std::pair CBPair;
@@ -201,11 +201,11 @@ private:
 	Utility();
 		/// Maps SQLite column declared types to Poco::Data types through
 		/// static TypeMap member.
-		/// 
+		///
 		/// Note: SQLite is type-agnostic and it is the end-user responsibility
-		/// to ensure that column declared data type corresponds to the type of 
+		/// to ensure that column declared data type corresponds to the type of
 		/// data actually held in the database.
-		/// 
+		///
 		/// Column types are case-insensitive.
 
 	Utility(const Utility&);
diff --git a/Data/SQLite/src/Notifier.cpp b/Data/SQLite/src/Notifier.cpp
index 9beb75663..163cfc4a2 100644
--- a/Data/SQLite/src/Notifier.cpp
+++ b/Data/SQLite/src/Notifier.cpp
@@ -57,10 +57,10 @@ Notifier::~Notifier()
 bool Notifier::enableUpdate()
 {
 	Poco::Mutex::ScopedLock l(_mutex);
-	
+
 	if (Utility::registerUpdateHandler(Utility::dbHandle(_session), &sqliteUpdateCallbackFn, this))
 		_enabledEvents |= SQLITE_NOTIFY_UPDATE;
-	
+
 	return updateEnabled();
 }
 
@@ -68,10 +68,10 @@ bool Notifier::enableUpdate()
 bool Notifier::disableUpdate()
 {
 	Poco::Mutex::ScopedLock l(_mutex);
-	
+
 	if (Utility::registerUpdateHandler(Utility::dbHandle(_session), (Utility::UpdateCallbackType) 0, this))
 		_enabledEvents &= ~SQLITE_NOTIFY_UPDATE;
-	
+
 	return !updateEnabled();
 }
 
@@ -85,10 +85,10 @@ bool Notifier::updateEnabled() const
 bool Notifier::enableCommit()
 {
 	Poco::Mutex::ScopedLock l(_mutex);
-	
+
 	if (Utility::registerUpdateHandler(Utility::dbHandle(_session), &sqliteCommitCallbackFn, this))
 		_enabledEvents |= SQLITE_NOTIFY_COMMIT;
-	
+
 	return commitEnabled();
 }
 
@@ -96,10 +96,10 @@ bool Notifier::enableCommit()
 bool Notifier::disableCommit()
 {
 	Poco::Mutex::ScopedLock l(_mutex);
-	
+
 	if (Utility::registerUpdateHandler(Utility::dbHandle(_session), (Utility::CommitCallbackType) 0, this))
 		_enabledEvents &= ~SQLITE_NOTIFY_COMMIT;
-	
+
 	return !commitEnabled();
 }
 
@@ -113,10 +113,10 @@ bool Notifier::commitEnabled() const
 bool Notifier::enableRollback()
 {
 	Poco::Mutex::ScopedLock l(_mutex);
-	
+
 	if (Utility::registerUpdateHandler(Utility::dbHandle(_session), &sqliteRollbackCallbackFn, this))
 		_enabledEvents |= SQLITE_NOTIFY_ROLLBACK;
-	
+
 	return rollbackEnabled();
 }
 
@@ -127,7 +127,7 @@ bool Notifier::disableRollback()
 
 	if (Utility::registerUpdateHandler(Utility::dbHandle(_session), (Utility::RollbackCallbackType) 0, this))
 		_enabledEvents &= ~SQLITE_NOTIFY_ROLLBACK;
-	
+
 	return !rollbackEnabled();
 }
 
@@ -154,7 +154,7 @@ void Notifier::sqliteUpdateCallbackFn(void* pVal, int opCode, const char* pDB, c
 {
 	poco_check_ptr(pVal);
 	Notifier* pV = reinterpret_cast(pVal);
-	
+
 	if (opCode == Utility::OPERATION_INSERT)
 	{
 		pV->_table = pTable;
diff --git a/Data/SQLite/src/SQLiteStatementImpl.cpp b/Data/SQLite/src/SQLiteStatementImpl.cpp
index 746b50c01..ec3e469d9 100644
--- a/Data/SQLite/src/SQLiteStatementImpl.cpp
+++ b/Data/SQLite/src/SQLiteStatementImpl.cpp
@@ -46,7 +46,7 @@ SQLiteStatementImpl::SQLiteStatementImpl(Poco::Data::SessionImpl& rSession, sqli
 {
 	_columns.resize(1);
 }
-	
+
 
 SQLiteStatementImpl::~SQLiteStatementImpl()
 {
@@ -287,7 +287,7 @@ std::size_t SQLiteStatementImpl::next()
 	{
 		Utility::throwException(_pDB, _nextResponse, std::string("Iterator Error: trying to access the next value"));
 	}
-	
+
 	return 1u;
 }
 
diff --git a/Data/SQLite/testsuite/src/WinCEDriver.cpp b/Data/SQLite/testsuite/src/WinCEDriver.cpp
index b05045b15..8fd5bc023 100644
--- a/Data/SQLite/testsuite/src/WinCEDriver.cpp
+++ b/Data/SQLite/testsuite/src/WinCEDriver.cpp
@@ -24,7 +24,7 @@ int wmain(int argc, wchar_t* argv[])
 		std::wcstombs(buffer, argv[i], sizeof(buffer));
 		args.push_back(std::string(buffer));
 	}
-	CppUnit::TestRunner runner;	
+	CppUnit::TestRunner runner;
 	runner.addTest("SQLiteTestSuite", SQLiteTestSuite::suite());
 	return runner.run(args) ? 0 : 1;
 }
diff --git a/Data/doc/00300-DataDeveloperManual.page b/Data/doc/00300-DataDeveloperManual.page
index 5fdb7251e..abbbab862 100644
--- a/Data/doc/00300-DataDeveloperManual.page
+++ b/Data/doc/00300-DataDeveloperManual.page
@@ -11,25 +11,25 @@ Just implement the following interfaces:
   * Poco::Data::Connector
   * optional: Poco::Data::AbstractPreparation
 
-It is recommended to implement the classes from top to down (ie. start with Binder and Extractor) and to use a 
+It is recommended to implement the classes from top to down (ie. start with Binder and Extractor) and to use a
 namespace that has <[ Poco::Data ]> as parent, e.g.<[ Poco::Data::SQLite ]>.
 
 !!!AbstractBinder
-An <[AbstractBinder]> is a class that maps values to placeholders. It is also responsible to bind primitive C++ data types to database 
-data types. The constructor of the subclass should receive everything needed to bind variables to 
+An <[AbstractBinder]> is a class that maps values to placeholders. It is also responsible to bind primitive C++ data types to database
+data types. The constructor of the subclass should receive everything needed to bind variables to
 placeholders by position. An example taken from the SQLite implementation would be:
 
     Binder::Binder(sqlite3_stmt* pStmt):
         _pStmt(pStmt)
     {
     }
-    
+
     void Binder::bind(std::size_t pos, const Poco::Int32& val)
     {
         int rc = sqlite3_bind_int(_pStmt, (int)pos, val);
         checkReturn(rc);
     }
-    
+
     void Binder::bind(std::size_t pos, const Poco::Int16& val)
     {
         Poco::Int32 tmp = val;
@@ -43,55 +43,55 @@ All methods are public.
 
     AbstractBinder();
         /// Creates the AbstractBinder.
-    
+
     virtual ~AbstractBinder();
         /// Destroys the AbstractBinder.
-    
+
     virtual void bind(std::size_t pos, const Poco::Int8 &val) = 0;
         /// Binds an Int8.
-    
+
     virtual void bind(std::size_t pos, const Poco::UInt8 &val) = 0;
         /// Binds an UInt8.
-    
+
     virtual void bind(std::size_t pos, const Poco::Int16 &val) = 0;
         /// Binds an Int16.
-    
+
     virtual void bind(std::size_t pos, const Poco::UInt16 &val) = 0;
         /// Binds an UInt16.
-    
+
     virtual void bind(std::size_t pos, const Poco::Int32 &val) = 0;
         /// Binds an Int32.
-    
+
     virtual void bind(std::size_t pos, const Poco::UInt32 &val) = 0;
         /// Binds an UInt32.
-    
+
     virtual void bind(std::size_t pos, const Poco::Int64 &val) = 0;
         /// Binds an Int64.
-    
+
     virtual void bind(std::size_t pos, const Poco::UInt64 &val) = 0;
         /// Binds an UInt64.
-    
+
     virtual void bind(std::size_t pos, const bool &val) = 0;
         /// Binds a boolean.
-    
+
     virtual void bind(std::size_t pos, const float &val) = 0;
         /// Binds a float.
-    
+
     virtual void bind(std::size_t pos, const double &val) = 0;
         /// Binds a double.
-    
+
     virtual void bind(std::size_t pos, const char &val) = 0;
         /// Binds a single character.
-    
+
     virtual void bind(std::size_t pos, const char* const &pVal) = 0;
         /// Binds a const char ptr.
-    
+
     virtual void bind(std::size_t pos, const std::string& val) = 0;
         /// Binds a string.
-    
+
     virtual void bind(std::size_t pos, const BLOB& val) = 0;
         /// Binds a BLOB.
-    
+
     virtual void reset() = 0;
         /// Resets the internal state, called before a rebind
 ----
@@ -105,7 +105,7 @@ the incoming value but will simply return false. An example taken from the SQLit
         _pStmt(pStmt)
     {
     }
-    
+
     bool Extractor::extract(std::size_t pos, Poco::Int32& val)
     {
         if (isNull(pos<[
@@ -113,7 +113,7 @@ the incoming value but will simply return false. An example taken from the SQLit
         val = sqlite3_column_int(_pStmt, (int)pos);
         return true;
     }
-    
+
     bool Extractor::extract(std::size_t pos, Poco::Int16& val)
     {
         if (isNull(pos<[
@@ -128,49 +128,49 @@ All methods are public.
 
     AbstractExtractor();
         /// Creates the AbstractExtractor.
-    
+
     virtual ~AbstractExtractor();
         /// Destroys the AbstractExtractor.
-    
+
     virtual bool extract(std::size_t pos, Poco::Int8& val) = 0;
         /// Extracts an Int8. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, Poco::UInt8& val) = 0;
         /// Extracts an UInt8. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, Poco::Int16& val) = 0;
         /// Extracts an Int16. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, Poco::UInt16& val) = 0;
         /// Extracts an UInt16. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, Poco::Int32& val) = 0;
         /// Extracts an Int32. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, Poco::UInt32& val) = 0;
         /// Extracts an UInt32. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, Poco::Int64& val) = 0;
         /// Extracts an Int64. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, Poco::UInt64& val) = 0;
         /// Extracts an UInt64. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, bool& val) = 0;
         /// Extracts a boolean. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, float& val) = 0;
         /// Extracts a float. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, double& val) = 0;
         /// Extracts a double. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, char& val) = 0;
         /// Extracts a single character. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, std::string& val) = 0;
         /// Extracts a string. Returns false if null was received.
-    
+
     virtual bool extract(std::size_t pos, BLOB& val) = 0;
         /// Extracts a BLOB. Returns false if null was received.
 ----
@@ -196,7 +196,7 @@ The ODBC implementation is different:
        _myVec[pos] =  Poco::Any a(val);
        int* i = AnyCast(&_myVec[pos]);
        //register int* i for output, Db specific
-    } 
+    }
 ----
 Extract now changes to:
 
@@ -213,49 +213,49 @@ Extract now changes to:
 
     AbstractPreparation();
         /// Creates the AbstractPreparation.
-    
+
     virtual ~AbstractPreparation();
         /// Destroys the AbstractPreparation.
-    
+
     virtual void prepare(std::size_t pos, Poco::Int8) = 0;
         /// Prepares an Int8.
-    
+
     virtual void prepare(std::size_t pos, Poco::UInt8) = 0;
         /// Prepares an UInt8.
-    
+
     virtual void prepare(std::size_t pos, Poco::Int16) = 0;
         /// Prepares an Int16.
-    
+
     virtual void prepare(std::size_t pos, Poco::UInt16) = 0;
         /// Prepares an UInt16.
-    
+
     virtual void prepare(std::size_t pos, Poco::Int32) = 0;
         /// Prepares an Int32.
-    
+
     virtual void prepare(std::size_t pos, Poco::UInt32) = 0;
         /// Prepares an UInt32.
-    
+
     virtual void prepare(std::size_t pos, Poco::Int64) = 0;
         /// Prepares an Int64.
-    
+
     virtual void prepare(std::size_t pos, Poco::UInt64) = 0;
         /// Prepares an UInt64.
-    
+
     virtual void prepare(std::size_t pos, bool) = 0;
         /// Prepares a boolean.
-    
+
     virtual void prepare(std::size_t pos, float) = 0;
         /// Prepares a float.
-    
+
     virtual void prepare(std::size_t pos, double) = 0;
         /// Prepares a double.
-    
+
     virtual void prepare(std::size_t pos, char) = 0;
         /// Prepares a single character.
-    
+
     virtual void prepare(std::size_t pos, const std::string& ) = 0;
         /// Prepares a string.
-    
+
     virtual void prepare(std::size_t pos, const BLOB&) = 0;
 ----
 
@@ -280,38 +280,38 @@ The interface it has to implement is given as:
     public:
         StatementImpl();
             /// Creates the StatementImpl.
-        
+
         virtual ~StatementImpl();
             /// Destroys the StatementImpl.
-    
+
     protected:
         virtual bool hasNext() = 0;
-            /// Returns true if a call to next() will return data. Note that the 
-            /// implementation must support several consecutive calls to hasNext 
-            /// without data getting lost, ie. hasNext(); hasNext(); next() must 
+            /// Returns true if a call to next() will return data. Note that the
+            /// implementation must support several consecutive calls to hasNext
+            /// without data getting lost, ie. hasNext(); hasNext(); next() must
             /// be equal to hasNext(); next();
-    
+
         virtual void next() = 0;
             /// Retrieves the next row from the resultset.
             /// Will throw, if the resultset is empty.
             /// Expects the statement to be compiled and bound
-    
+
         virtual bool canBind() const = 0;
             /// Returns if another bind is possible.
-    
+
         virtual void compileImpl() = 0;
             /// Compiles the statement, doesn't bind yet.
-            /// From now on AbstractBinder and AbstractExtractor 
+            /// From now on AbstractBinder and AbstractExtractor
             /// will be used
-    
+
         virtual void bindImpl() = 0;
             /// Binds parameters.
-    
+
         virtual AbstractExtractor& extractor() = 0;
             /// Returns the concrete extractor used by the statement.
-    
+
         virtual AbstractBinder& binder() = 0;
-            /// Returns the concrete binder used by the statement.  
+            /// Returns the concrete binder used by the statement.
 ----
 
 The Extracting and Binding objects can be accessed via the calls to the super-class methods <*extractings()*> and <*bindings()*>.
@@ -334,7 +334,7 @@ A high-level <*next*> implementation:
     if (!hasNext())
         throw Poco::Data::DataException("No data received");
     int nCol = countColumnsInResult...;
-    poco_assert (columnsHandled() == nCol); 
+    poco_assert (columnsHandled() == nCol);
     Poco::Data::AbstractExtractingVec::iterator it = extractings().begin();
     Poco::Data::AbstractExtractingVec::iterator itEnd = extractings().end();
     std::size_t pos = 0; // sqlite starts with pos 0 for results! your DB maybe with 1
@@ -354,7 +354,7 @@ A high-level <*hasNext*> implementation:
         cacheResult
         disablehasNext()
     }
-    
+
     return cachedResult;
 ----
 
@@ -362,13 +362,13 @@ A high-level <*compileImpl*>:
 
     if (compiled)
         return;
-    
+
     std::string sqlStmt(toString());
 
    if database expects placeholders in different format than ":name", parse and replace them
 
     compile statement;
-    
+
     create Binder;
     create Extractor;
 ----
@@ -378,7 +378,7 @@ A high-level <*canBind*>:
     bool ret = false;
     if (!bindings().empty() && validCompiledStatement)
         ret = (*bindings().begin())->canBind();
-    
+
     return ret;
 ----
 
@@ -388,13 +388,13 @@ The connection is opened in the constructor, and closed in the destructor.
 
     Poco::Data::StatementImpl* createStatementImpl();
         /// Returns an SQLite StatementImpl
-    
+
     void begin();
         /// Starts a transaction
-    
+
     void commit();
         /// Commits and ends a transaction
-    
+
     void rollback();
         /// Aborts a transaction
 ----
@@ -410,19 +410,19 @@ It should also have a static <*addToFactory()*> and a static <*removeFromFactory
     public:
         static const std::string KEY;
             /// Keyword for creating sessions
-    
+
         Connector();
             /// Creates the Connector.
-    
+
         ~Connector();
         /// Destroys the Connector.
-    
+
         Poco::AutoPtr < Poco::Data::SessionImpl > createSession(const std::string& connectionString);
             /// Creates a SessionImpl object and initializes it with the given connectionString.
-    
+
         static void registerConnector();
             /// Registers the Connector under the Keyword Connector::KEY at the Poco::Data::SessionFactory
-    
+
         static void unregisterConnector();
             /// Unregisters the Connector under the Keyword Connector::KEY at the Poco::Data::SessionFactory
     };
diff --git a/Data/include/Poco/Data/AbstractBinding.h b/Data/include/Poco/Data/AbstractBinding.h
index aaed3e6f8..4791d4b5e 100644
--- a/Data/include/Poco/Data/AbstractBinding.h
+++ b/Data/include/Poco/Data/AbstractBinding.h
@@ -68,7 +68,7 @@ public:
 	virtual std::size_t numOfRowsHandled() const = 0;
 		/// Returns the number of rows that the binding handles.
 		///
-		/// The trivial case will be one single row but 
+		/// The trivial case will be one single row but
 		/// for collection data types it can be larger.
 
 	virtual bool canBind() const = 0;
diff --git a/Data/include/Poco/Data/AbstractSessionImpl.h b/Data/include/Poco/Data/AbstractSessionImpl.h
index d01f73d47..43a45fe72 100644
--- a/Data/include/Poco/Data/AbstractSessionImpl.h
+++ b/Data/include/Poco/Data/AbstractSessionImpl.h
@@ -40,13 +40,13 @@ class AbstractSessionImpl: public SessionImpl
 public:
 	typedef void (C::*FeatureSetter)(const std::string&, bool);
 		/// The setter method for a feature.
-		
+
 	typedef bool (C::*FeatureGetter)(const std::string&) const;
 		/// The getter method for a feature.
-		
+
 	typedef void (C::*PropertySetter)(const std::string&, const Poco::Any&);
 		/// The setter method for a property.
-		
+
 	typedef Poco::Any (C::*PropertyGetter)(const std::string&) const;
 		/// The getter method for a property.
 
@@ -57,28 +57,28 @@ public:
 			_emptyStringIsNull(false),
 			_forceEmptyString(false)
 		/// Creates the AbstractSessionImpl.
-		/// 
-		/// Adds "storage" property and sets the default internal storage container 
+		///
+		/// Adds "storage" property and sets the default internal storage container
 		/// type to std::deque.
-		/// The storage is created by statements automatically whenever a query 
+		/// The storage is created by statements automatically whenever a query
 		/// returning results is executed but external storage is provided by the user.
 		/// Storage type can be reconfigured at runtime both globally (for the
-		/// duration of the session) and locally (for a single statement execution only). 
+		/// duration of the session) and locally (for a single statement execution only).
 		/// See StatementImpl for details on how this property is used at runtime.
-		/// 
+		///
 		/// Adds "handle" property which, if set by the back end, returns native handle
 		/// for the back end DB.
-		/// 
+		///
 		/// Adds "bulk" feature and sets it to false.
 		/// Bulk feature determines whether the session is capable of bulk operations.
-		/// Connectors that are capable of it must set this feature prior to attempting 
+		/// Connectors that are capable of it must set this feature prior to attempting
 		/// bulk operations.
 		///
 		/// Adds "emptyStringIsNull" feature and sets it to false. This feature should be
 		/// set to true in order to modify the behavior of the databases that distinguish
-		/// between zero-length character strings as nulls. Setting this feature to true 
+		/// between zero-length character strings as nulls. Setting this feature to true
 		/// shall disregard any difference between empty character strings and nulls,
-		/// causing the framework to treat them the same (i.e. behave like Oracle).		
+		/// causing the framework to treat them the same (i.e. behave like Oracle).
 		///
 		/// Adds "forceEmptyString" feature and sets it to false. This feature should be set
 		/// to true in order to force the databases that do not distinguish empty strings from
@@ -89,23 +89,23 @@ public:
 		/// resulting in default underlying database behavior.
 		///
 	{
-		addProperty("storage", 
-			&AbstractSessionImpl::setStorage, 
+		addProperty("storage",
+			&AbstractSessionImpl::setStorage,
 			&AbstractSessionImpl::getStorage);
 
-		addProperty("handle", 
+		addProperty("handle",
 			&AbstractSessionImpl::setHandle,
 			&AbstractSessionImpl::getHandle);
 
-		addFeature("bulk", 
-			&AbstractSessionImpl::setBulk, 
+		addFeature("bulk",
+			&AbstractSessionImpl::setBulk,
 			&AbstractSessionImpl::getBulk);
 
-		addFeature("emptyStringIsNull", 
+		addFeature("emptyStringIsNull",
 			&AbstractSessionImpl::setEmptyStringIsNull,
 			&AbstractSessionImpl::getEmptyStringIsNull);
 
-		addFeature("forceEmptyString", 
+		addFeature("forceEmptyString",
 			&AbstractSessionImpl::setForceEmptyString,
 			&AbstractSessionImpl::getForceEmptyString);
 	}
@@ -129,7 +129,7 @@ public:
 		}
 		else throw NotSupportedException(name);
 	}
-	
+
 	bool getFeature(const std::string& name)
 		/// Looks a feature up in the features map
 		/// and calls the feature's getter, if there is one.
@@ -144,7 +144,7 @@ public:
 		}
 		else throw NotSupportedException(name);
 	}
-	
+
 	void setProperty(const std::string& name, const Poco::Any& value)
 		/// Looks a property up in the properties map
 		/// and calls the property's setter, if there is one.
@@ -174,7 +174,7 @@ public:
 		}
 		else throw NotSupportedException(name);
 	}
-	
+
 	void setStorage(const std::string& value)
 		/// Sets the storage type.
 	{
@@ -186,7 +186,7 @@ public:
 	{
 		_storage = Poco::RefAnyCast(value);
 	}
-		
+
 	Poco::Any getStorage(const std::string& name="") const
 		/// Returns the storage type
 	{
@@ -194,13 +194,13 @@ public:
 	}
 
 	void setHandle(const std::string& name, const Poco::Any& handle)
-		/// Sets the native session handle. 
+		/// Sets the native session handle.
 	{
 		_handle = handle;
 	}
-		
+
 	Poco::Any getHandle(const std::string& name="") const
-		/// Returns the native session handle. 
+		/// Returns the native session handle.
 	{
 		return _handle;
 	}
@@ -210,7 +210,7 @@ public:
 	{
 		_bulk = bulk;
 	}
-		
+
 	bool getBulk(const std::string& name="") const
 		/// Returns the execution type
 	{
@@ -228,7 +228,7 @@ public:
 
 		_emptyStringIsNull = emptyStringIsNull;
 	}
-		
+
 	bool getEmptyStringIsNull(const std::string& name="") const
 		/// Returns the setting for the behavior regarding empty variable
 		/// length strings. See setEmptyStringIsNull(const std::string&, bool)
@@ -249,7 +249,7 @@ public:
 
 		_forceEmptyString = forceEmptyString;
 	}
-		
+
 	bool getForceEmptyString(const std::string& name="") const
 		/// Returns the setting for the behavior regarding empty variable
 		/// length strings. See setForceEmptyString(const std::string&, bool)
@@ -270,7 +270,7 @@ protected:
 		feature.getter = getter;
 		_features[name] = feature;
 	}
-		
+
 	void addProperty(const std::string& name, PropertySetter setter, PropertyGetter getter)
 		/// Adds a property to the map of supported properties.
 		///
@@ -289,16 +289,16 @@ private:
 		FeatureSetter setter;
 		FeatureGetter getter;
 	};
-	
+
 	struct Property
 	{
 		PropertySetter setter;
 		PropertyGetter getter;
 	};
-	
+
 	using FeatureMap = std::map;
 	using PropertyMap = std::map;
-	
+
 	FeatureMap  _features;
 	PropertyMap _properties;
 	std::string _storage;
diff --git a/Data/include/Poco/Data/ArchiveStrategy.h b/Data/include/Poco/Data/ArchiveStrategy.h
index 2f4befac9..24116efec 100644
--- a/Data/include/Poco/Data/ArchiveStrategy.h
+++ b/Data/include/Poco/Data/ArchiveStrategy.h
@@ -36,9 +36,9 @@ class Data_API ArchiveStrategy
 public:
 	static const std::string DEFAULT_ARCHIVE_DESTINATION;
 
-	ArchiveStrategy(const std::string& connector, 
-		const std::string& connect, 
-		const std::string& source, 
+	ArchiveStrategy(const std::string& connector,
+		const std::string& connect,
+		const std::string& source,
 		const std::string& destination = DEFAULT_ARCHIVE_DESTINATION);
 		/// Creates archive strategy.
 
@@ -83,7 +83,7 @@ protected:
 	Statement& getDeleteStatement();
 	Statement& getCountStatement();
 private:
-	
+
 	ArchiveStrategy();
 	ArchiveStrategy(const ArchiveStrategy&);
 	ArchiveStrategy& operator = (const ArchiveStrategy&);
@@ -177,11 +177,11 @@ class Data_API ArchiveByAgeStrategy: public ArchiveStrategy
 	/// Archives rows scheduled for archiving.
 {
 public:
-	ArchiveByAgeStrategy(const std::string& connector, 
-		const std::string& connect, 
-		const std::string& sourceTable, 
+	ArchiveByAgeStrategy(const std::string& connector,
+		const std::string& connect,
+		const std::string& sourceTable,
 		const std::string& destinationTable = DEFAULT_ARCHIVE_DESTINATION);
-	
+
 	~ArchiveByAgeStrategy();
 
 	void archive();
diff --git a/Data/include/Poco/Data/Binding.h b/Data/include/Poco/Data/Binding.h
index d8cdc7564..9585f85e4 100644
--- a/Data/include/Poco/Data/Binding.h
+++ b/Data/include/Poco/Data/Binding.h
@@ -40,10 +40,10 @@ namespace Data {
 template 
 class Binding: public AbstractBinding
 	/// Binding maps a value or multiple values (see Binding specializations for STL containers as
-	/// well as type handlers) to database column(s). Values to be bound can be either mapped 
+	/// well as type handlers) to database column(s). Values to be bound can be either mapped
 	/// directly (by reference) or a copy can be created, depending on the value of the copy argument.
 	/// To pass a reference to a variable, it is recommended to pass it to the intermediate
-	/// utility function use(), which will create the proper binding. In cases when a reference 
+	/// utility function use(), which will create the proper binding. In cases when a reference
 	/// is passed to binding, the storage it refers to must be valid at the statement execution time.
 	/// To pass a copy of a variable, constant or string literal, use utility function bind().
 	/// Variables can be passed as either copies or references (i.e. using either use() or bind()).
@@ -57,10 +57,10 @@ public:
 	using Ptr = SharedPtr;
 
 	explicit Binding(T& val,
-		const std::string& name = "", 
-		Direction direction = PD_IN): 
+		const std::string& name = "",
+		Direction direction = PD_IN):
 		AbstractBinding(name, direction),
-		_val(val), 
+		_val(val),
 		_bound(false)
 		/// Creates the Binding using the passed reference as bound value.
 		/// If copy is true, a copy of the value referred to is created.
@@ -112,10 +112,10 @@ private:
 template 
 class CopyBinding: public AbstractBinding
 	/// Binding maps a value or multiple values (see Binding specializations for STL containers as
-	/// well as type handlers) to database column(s). Values to be bound can be either mapped 
+	/// well as type handlers) to database column(s). Values to be bound can be either mapped
 	/// directly (by reference) or a copy can be created, depending on the value of the copy argument.
 	/// To pass a reference to a variable, it is recommended to pass it to the intermediate
-	/// utility function use(), which will create the proper binding. In cases when a reference 
+	/// utility function use(), which will create the proper binding. In cases when a reference
 	/// is passed to binding, the storage it refers to must be valid at the statement execution time.
 	/// To pass a copy of a variable, constant or string literal, use utility function bind().
 	/// Variables can be passed as either copies or references (i.e. using either use() or bind()).
@@ -127,8 +127,8 @@ public:
 	using Ptr = SharedPtr;
 
 	explicit CopyBinding(T& val,
-		const std::string& name = "", 
-		Direction direction = PD_IN): 
+		const std::string& name = "",
+		Direction direction = PD_IN):
 		AbstractBinding(name, direction),
 		_pVal(new T(val)),
 		_bound(false)
@@ -189,10 +189,10 @@ public:
 	using Type = Binding;
 	using Ptr = SharedPtr;
 
-	explicit Binding(const char* pVal, 
+	explicit Binding(const char* pVal,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_val(pVal ? pVal : throw NullPointerException() ),
 		_bound(false)
 		/// Creates the Binding by copying the passed string.
@@ -251,10 +251,10 @@ public:
 	using Type = CopyBinding;
 	using Ptr = SharedPtr;
 
-	explicit CopyBinding(const char* pVal, 
+	explicit CopyBinding(const char* pVal,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_val(pVal ? pVal : throw NullPointerException() ),
 		_bound(false)
 		/// Creates the Binding by copying the passed string.
@@ -312,12 +312,12 @@ public:
 	using Ptr = SharedPtr>;
 	using Iterator = typename ValType::const_iterator;
 
-	explicit Binding(std::vector& val, 
-		const std::string& name = "", 
-		Direction direction = PD_IN): 
+	explicit Binding(std::vector& val,
+		const std::string& name = "",
+		Direction direction = PD_IN):
 		AbstractBinding(name, direction),
-		_val(val), 
-		_begin(), 
+		_val(val),
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -350,7 +350,7 @@ public:
 	{
 		poco_assert_dbg(!getBinder().isNull());
 		poco_assert_dbg(canBind());
-		
+
 		TypeHandler::bind(pos, *_begin, getBinder(), getDirection());
 		++_begin;
 	}
@@ -373,18 +373,18 @@ class CopyBinding>: public AbstractBinding
 	/// Specialization for std::vector.
 {
 public:
-	
+
 	using ValType = std::vector;
 	using ValPtr = SharedPtr;
 	using Ptr = SharedPtr>;
 	using Iterator = typename ValType::const_iterator;
 
-	explicit CopyBinding(std::vector& val, 
-		const std::string& name = "", 
-		Direction direction = PD_IN): 
+	explicit CopyBinding(std::vector& val,
+		const std::string& name = "",
+		Direction direction = PD_IN):
 		AbstractBinding(name, direction),
 		_pVal(new std::vector(val)),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -417,7 +417,7 @@ public:
 	{
 		poco_assert_dbg(!getBinder().isNull());
 		poco_assert_dbg(canBind());
-		
+
 		TypeHandler::bind(pos, *_begin, getBinder(), getDirection());
 		++_begin;
 	}
@@ -439,14 +439,14 @@ template <>
 class Binding>: public AbstractBinding
 	/// Specialization for std::vector.
 	/// This specialization is necessary due to the nature of std::vector.
-	/// For details, see the standard library implementation of std::vector 
+	/// For details, see the standard library implementation of std::vector
 	/// or
 	/// S. Meyers: "Effective STL" (Copyright Addison-Wesley 2001),
 	/// Item 18: "Avoid using vector."
-	/// 
+	///
 	/// The workaround employed here is using std::deque as an
-	/// internal replacement container. 
-	/// 
+	/// internal replacement container.
+	///
 	/// IMPORTANT:
 	/// Only IN binding is supported.
 {
@@ -456,13 +456,13 @@ public:
 	using Ptr = SharedPtr>;
 	using Iterator = ValType::const_iterator;
 
-	explicit Binding(const std::vector& val, 
-		const std::string& name = "", 
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
-		_val(val), 
+	explicit Binding(const std::vector& val,
+		const std::string& name = "",
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
+		_val(val),
 		_deq(_val.begin(), _val.end()),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -520,14 +520,14 @@ template <>
 class CopyBinding>: public AbstractBinding
 	/// Specialization for std::vector.
 	/// This specialization is necessary due to the nature of std::vector.
-	/// For details, see the standard library implementation of std::vector 
+	/// For details, see the standard library implementation of std::vector
 	/// or
 	/// S. Meyers: "Effective STL" (Copyright Addison-Wesley 2001),
 	/// Item 18: "Avoid using vector."
-	/// 
+	///
 	/// The workaround employed here is using std::deque as an
-	/// internal replacement container. 
-	/// 
+	/// internal replacement container.
+	///
 	/// IMPORTANT:
 	/// Only IN binding is supported.
 {
@@ -537,12 +537,12 @@ public:
 	using Ptr = SharedPtr>;
 	using Iterator = ValType::const_iterator;
 
-	explicit CopyBinding(const std::vector& val, 
-		const std::string& name = "", 
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+	explicit CopyBinding(const std::vector& val,
+		const std::string& name = "",
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_deq(val.begin(), val.end()),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -608,10 +608,10 @@ public:
 
 	explicit Binding(std::list& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
-		_val(val), 
-		_begin(), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
+		_val(val),
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -673,10 +673,10 @@ public:
 
 	explicit CopyBinding(ValType& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_pVal(new std::list(val)),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -738,10 +738,10 @@ public:
 
 	explicit Binding(std::deque& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
-		_val(val), 
-		_begin(), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
+		_val(val),
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -803,10 +803,10 @@ public:
 
 	explicit CopyBinding(std::deque& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_pVal(new std::deque(val)),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -868,10 +868,10 @@ public:
 
 	explicit Binding(std::set& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
-		_val(val), 
-		_begin(), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
+		_val(val),
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -933,10 +933,10 @@ public:
 
 	explicit CopyBinding(std::set& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_pVal(new std::set(val)),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -998,10 +998,10 @@ public:
 
 	explicit Binding(std::multiset& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
-		_val(val), 
-		_begin(), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
+		_val(val),
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -1063,10 +1063,10 @@ public:
 
 	explicit CopyBinding(std::multiset& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_pVal(new std::multiset(val)),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -1128,10 +1128,10 @@ public:
 
 	explicit Binding(std::map& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
-		_val(val), 
-		_begin(), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
+		_val(val),
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -1193,10 +1193,10 @@ public:
 
 	explicit CopyBinding(std::map& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_pVal(new std::map(val)),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -1258,10 +1258,10 @@ public:
 
 	explicit Binding(std::multimap& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
-		_val(val), 
-		_begin(), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
+		_val(val),
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -1323,10 +1323,10 @@ public:
 
 	explicit CopyBinding(std::multimap& val,
 		const std::string& name = "",
-		Direction direction = PD_IN): 
-		AbstractBinding(name, direction), 
+		Direction direction = PD_IN):
+		AbstractBinding(name, direction),
 		_pVal(new std::multimap(val)),
-		_begin(), 
+		_begin(),
 		_end()
 		/// Creates the Binding.
 	{
@@ -1379,13 +1379,13 @@ private:
 namespace Keywords {
 
 
-template  
+template 
 inline AbstractBinding::Ptr use(T& t, const std::string& name = "")
 	/// Convenience function for a more compact Binding creation.
 {
 	// If this fails to compile, a const ref was passed to use().
 	// This can be resolved by either (a) using bind (which will copy the value),
-	// or (b) if the const ref is guaranteed to exist when execute is called 
+	// or (b) if the const ref is guaranteed to exist when execute is called
 	// (which can be much later!), by using the "useRef" keyword instead
 	poco_static_assert (!IsConst::VALUE);
 	return new Binding(t, name, AbstractBinding::PD_IN);
@@ -1399,7 +1399,7 @@ inline AbstractBinding::Ptr use(const NullData& t, const std::string& name = "")
 }
 
 
-template  
+template 
 inline AbstractBinding::Ptr useRef(T& t, const std::string& name = "")
 	/// Convenience function for a more compact Binding creation.
 {
@@ -1407,7 +1407,7 @@ inline AbstractBinding::Ptr useRef(T& t, const std::string& name = "")
 }
 
 
-template  
+template 
 inline AbstractBinding::Ptr in(T& t, const std::string& name = "")
 	/// Convenience function for a more compact Binding creation.
 {
@@ -1422,7 +1422,7 @@ inline AbstractBinding::Ptr in(const NullData& t, const std::string& name = "")
 }
 
 
-template  
+template 
 inline AbstractBinding::Ptr out(T& t)
 	/// Convenience function for a more compact Binding creation.
 {
@@ -1431,7 +1431,7 @@ inline AbstractBinding::Ptr out(T& t)
 }
 
 
-template  
+template 
 inline AbstractBinding::Ptr io(T& t)
 	/// Convenience function for a more compact Binding creation.
 {
@@ -1468,7 +1468,7 @@ inline AbstractBindingVec& io(AbstractBindingVec& bv)
 }
 
 
-template  
+template 
 inline AbstractBinding::Ptr bind(T t, const std::string& name)
 	/// Convenience function for a more compact Binding creation.
 	/// This funtion differs from use() in its value copy semantics.
@@ -1477,7 +1477,7 @@ inline AbstractBinding::Ptr bind(T t, const std::string& name)
 }
 
 
-template  
+template 
 inline AbstractBinding::Ptr bind(T t)
 	/// Convenience function for a more compact Binding creation.
 	/// This funtion differs from use() in its value copy semantics.
diff --git a/Data/include/Poco/Data/Bulk.h b/Data/include/Poco/Data/Bulk.h
index 7b30ae633..f55d4008c 100644
--- a/Data/include/Poco/Data/Bulk.h
+++ b/Data/include/Poco/Data/Bulk.h
@@ -42,9 +42,9 @@ public:
 		/// Returns the limit asociated with this bulk object.
 
 	Poco::UInt32 size() const;
-		/// Returns the value of the limit asociated with 
+		/// Returns the value of the limit asociated with
 		/// this bulk object.
-	
+
 private:
 	Bulk();
 
@@ -55,15 +55,15 @@ private:
 ///
 /// inlines
 ///
-inline const Limit& Bulk::limit() const 
-{ 
-	return _limit; 
+inline const Limit& Bulk::limit() const
+{
+	return _limit;
 }
 
 
-inline Poco::UInt32 Bulk::size() const 
-{ 
-	return _limit.value(); 
+inline Poco::UInt32 Bulk::size() const
+{
+	return _limit.value();
 }
 
 
diff --git a/Data/include/Poco/Data/BulkBinding.h b/Data/include/Poco/Data/BulkBinding.h
index a1a4004b2..51637e6b4 100644
--- a/Data/include/Poco/Data/BulkBinding.h
+++ b/Data/include/Poco/Data/BulkBinding.h
@@ -35,13 +35,13 @@ namespace Data {
 
 template 
 class BulkBinding: public AbstractBinding
-	/// A BulkBinding maps a value to a column. 
+	/// A BulkBinding maps a value to a column.
 	/// Bulk binding support is provided only for std::vector.
 {
 public:
-	BulkBinding(const T& val, Poco::UInt32 bulkSize, const std::string& name = "", Direction direction = PD_IN): 
-		AbstractBinding(name, direction, bulkSize), 
-		_val(val), 
+	BulkBinding(const T& val, Poco::UInt32 bulkSize, const std::string& name = "", Direction direction = PD_IN):
+		AbstractBinding(name, direction, bulkSize),
+		_val(val),
 		_bound(false)
 		/// Creates the BulkBinding.
 	{
@@ -91,7 +91,7 @@ private:
 namespace Keywords {
 
 
-template  
+template 
 AbstractBinding::Ptr use(const std::vector& t, BulkFnType, const std::string& name = "")
 	/// Convenience function for a more compact BulkBinding creation for std::vector.
 {
@@ -99,7 +99,7 @@ AbstractBinding::Ptr use(const std::vector& t, BulkFnType, const std::string&
 }
 
 
-template  
+template 
 AbstractBinding::Ptr in(const std::vector& t, BulkFnType, const std::string& name = "")
 	/// Convenience function for a more compact BulkBinding creation for std::vector.
 {
@@ -107,7 +107,7 @@ AbstractBinding::Ptr in(const std::vector& t, BulkFnType, const std::string&
 }
 
 
-template  
+template 
 AbstractBinding::Ptr use(const std::deque& t, BulkFnType, const std::string& name = "")
 	/// Convenience function for a more compact BulkBinding creation for std::deque.
 {
@@ -115,7 +115,7 @@ AbstractBinding::Ptr use(const std::deque& t, BulkFnType, const std::string&
 }
 
 
-template  
+template 
 AbstractBinding::Ptr in(const std::deque& t, BulkFnType, const std::string& name = "")
 	/// Convenience function for a more compact BulkBinding creation for std::deque.
 {
@@ -123,7 +123,7 @@ AbstractBinding::Ptr in(const std::deque& t, BulkFnType, const std::string& n
 }
 
 
-template  
+template 
 AbstractBinding::Ptr use(const std::list& t, BulkFnType, const std::string& name = "")
 	/// Convenience function for a more compact BulkBinding creation for std::list.
 {
@@ -131,7 +131,7 @@ AbstractBinding::Ptr use(const std::list& t, BulkFnType, const std::string& n
 }
 
 
-template  
+template 
 AbstractBinding::Ptr in(const std::list& t, BulkFnType, const std::string& name = "")
 	/// Convenience function for a more compact BulkBinding creation for std::list.
 {
diff --git a/Data/include/Poco/Data/BulkExtraction.h b/Data/include/Poco/Data/BulkExtraction.h
index bb61a1500..0ed297952 100644
--- a/Data/include/Poco/Data/BulkExtraction.h
+++ b/Data/include/Poco/Data/BulkExtraction.h
@@ -44,18 +44,18 @@ public:
 	using Type = BulkExtraction;
 	using Ptr = SharedPtr;
 
-	BulkExtraction(C& result, Poco::UInt32 limit, const Position& pos = Position(0)): 
+	BulkExtraction(C& result, Poco::UInt32 limit, const Position& pos = Position(0)):
 		AbstractExtraction(limit, pos.value(), true),
-		_rResult(result), 
+		_rResult(result),
 		_default()
 	{
 		if (static_cast(result.size()) != limit)
 			result.resize(limit);
 	}
 
-	BulkExtraction(C& result, const CValType& def, Poco::UInt32 limit, const Position& pos = Position(0)): 
+	BulkExtraction(C& result, const CValType& def, Poco::UInt32 limit, const Position& pos = Position(0)):
 		AbstractExtraction(limit, pos.value(), true),
-		_rResult(result), 
+		_rResult(result),
 		_default(def)
 	{
 		if (static_cast(result.size()) != limit)
@@ -88,8 +88,8 @@ public:
 			return _nulls.at(row);
 		}
 		catch (std::out_of_range& ex)
-		{ 
-			throw RangeException(ex.what()); 
+		{
+			throw RangeException(ex.what());
 		}
 	}
 
@@ -137,7 +137,7 @@ template 
 class InternalBulkExtraction: public BulkExtraction
 	/// Container Data Type specialization extension for extraction of values from a query result set.
 	///
-	/// This class is intended for PocoData internal use - it is used by StatementImpl 
+	/// This class is intended for PocoData internal use - it is used by StatementImpl
 	/// to automaticaly create internal BulkExtraction in cases when statement returns data and no external storage
 	/// was supplied. It is later used by RecordSet to retrieve the fetched data after statement execution.
 	/// It takes ownership of the Column pointer supplied as constructor argument. Column object, in turn
@@ -155,8 +155,8 @@ public:
 	InternalBulkExtraction(C& result,
 		Column* pColumn,
 		Poco::UInt32 limit,
-		const Position& pos = Position(0)): 
-		BulkExtraction(result, CValType(), limit, pos), 
+		const Position& pos = Position(0)):
+		BulkExtraction(result, CValType(), limit, pos),
 		_pColumn(pColumn)
 		/// Creates InternalBulkExtraction.
 	{
@@ -171,17 +171,17 @@ public:
 	void reset()
 	{
 		_pColumn->reset();
-	}	
+	}
 
 	const CValType& value(int index) const
 	{
 		try
-		{ 
-			return BulkExtraction::result().at(index); 
+		{
+			return BulkExtraction::result().at(index);
 		}
 		catch (std::out_of_range& ex)
-		{ 
-			throw RangeException(ex.what()); 
+		{
+			throw RangeException(ex.what());
 		}
 	}
 
@@ -207,7 +207,7 @@ private:
 namespace Keywords {
 
 
-template  
+template 
 AbstractExtraction::Ptr into(std::vector& t, const Bulk& bulk, const Position& pos = Position(0))
 	/// Convenience function to allow for a more compact creation of an extraction object
 	/// with std::vector bulk extraction support.
@@ -216,7 +216,7 @@ AbstractExtraction::Ptr into(std::vector& t, const Bulk& bulk, const Position
 }
 
 
-template  
+template 
 AbstractExtraction::Ptr into(std::vector& t, BulkFnType, const Position& pos = Position(0))
 	/// Convenience function to allow for a more compact creation of an extraction object
 	/// with std::vector bulk extraction support.
@@ -227,7 +227,7 @@ AbstractExtraction::Ptr into(std::vector& t, BulkFnType, const Position& pos
 }
 
 
-template  
+template 
 AbstractExtraction::Ptr into(std::deque& t, const Bulk& bulk, const Position& pos = Position(0))
 	/// Convenience function to allow for a more compact creation of an extraction object
 	/// with std::deque bulk extraction support.
@@ -236,7 +236,7 @@ AbstractExtraction::Ptr into(std::deque& t, const Bulk& bulk, const Position&
 }
 
 
-template  
+template 
 AbstractExtraction::Ptr into(std::deque& t, BulkFnType, const Position& pos = Position(0))
 	/// Convenience function to allow for a more compact creation of an extraction object
 	/// with std::deque bulk extraction support.
@@ -247,7 +247,7 @@ AbstractExtraction::Ptr into(std::deque& t, BulkFnType, const Position& pos =
 }
 
 
-template  
+template 
 AbstractExtraction::Ptr into(std::list& t, const Bulk& bulk, const Position& pos = Position(0))
 	/// Convenience function to allow for a more compact creation of an extraction object
 	/// with std::list bulk extraction support.
@@ -256,7 +256,7 @@ AbstractExtraction::Ptr into(std::list& t, const Bulk& bulk, const Position&
 }
 
 
-template  
+template 
 AbstractExtraction::Ptr into(std::list& t, BulkFnType, const Position& pos = Position(0))
 	/// Convenience function to allow for a more compact creation of an extraction object
 	/// with std::list bulk extraction support.
diff --git a/Data/include/Poco/Data/Column.h b/Data/include/Poco/Data/Column.h
index a297d49fc..83469f225 100644
--- a/Data/include/Poco/Data/Column.h
+++ b/Data/include/Poco/Data/Column.h
@@ -34,7 +34,7 @@ namespace Data {
 template 
 class Column
 	/// Column class is column data container.
-	/// Data (a pointer to underlying STL container) is assigned to the class 
+	/// Data (a pointer to underlying STL container) is assigned to the class
 	/// at construction time. Construction with null pointer is not allowed.
 	/// This class owns the data assigned to it and deletes the storage on destruction.
 {
@@ -46,7 +46,7 @@ public:
 	using Size = typename C::size_type;
 	using Type = typename C::value_type;
 
-	Column(const MetaColumn& metaColumn, Container* pData): 
+	Column(const MetaColumn& metaColumn, Container* pData):
 		_metaColumn(metaColumn),
 		_pData(pData)
 		/// Creates the Column.
@@ -55,15 +55,15 @@ public:
 			throw NullPointerException("Container pointer must point to valid storage.");
 	}
 
-	Column(const Column& col): 
-		_metaColumn(col._metaColumn), 
+	Column(const Column& col):
+		_metaColumn(col._metaColumn),
 		_pData(col._pData)
 		/// Creates the Column.
 	{
 	}
 
-	Column(Column&& col) noexcept: 
-		_metaColumn(std::move(col._metaColumn)), 
+	Column(Column&& col) noexcept:
+		_metaColumn(std::move(col._metaColumn)),
 		_pData(std::move(col._pData))
 		/// Creates the Column.
 	{
@@ -112,8 +112,8 @@ public:
 			return _pData->at(row);
 		}
 		catch (std::out_of_range& ex)
-		{ 
-			throw RangeException(ex.what()); 
+		{
+			throw RangeException(ex.what());
 		}
 	}
 
@@ -189,13 +189,13 @@ private:
 template <>
 class Column>
 	/// The std::vector specialization for the Column class.
-	/// 
+	///
 	/// This specialization is necessary due to the nature of std::vector.
-	/// For details, see the standard library implementation of vector 
+	/// For details, see the standard library implementation of vector
 	/// or
 	/// S. Meyers: "Effective STL" (Copyright Addison-Wesley 2001),
 	/// Item 18: "Avoid using vector."
-	/// 
+	///
 	/// The workaround employed here is using deque as an
 	/// internal "companion" container kept in sync with the vector
 	/// column data.
@@ -207,8 +207,8 @@ public:
 	using RIterator = Container::const_reverse_iterator;
 	using Size = Container::size_type;
 
-	Column(const MetaColumn& metaColumn, Container* pData): 
-		_metaColumn(metaColumn), 
+	Column(const MetaColumn& metaColumn, Container* pData):
+		_metaColumn(metaColumn),
 		_pData(pData)
 		/// Creates the Column.
 	{
@@ -216,8 +216,8 @@ public:
 		_deque.assign(_pData->begin(), _pData->end());
 	}
 
-	Column(const Column& col): 
-		_metaColumn(col._metaColumn), 
+	Column(const Column& col):
+		_metaColumn(col._metaColumn),
 		_pData(col._pData)
 		/// Creates the Column.
 	{
@@ -263,8 +263,8 @@ public:
 			return _deque.at(row) = _pData->at(row);
 		}
 		catch (std::out_of_range& ex)
-		{ 
-			throw RangeException(ex.what()); 
+		{
+			throw RangeException(ex.what());
 		}
 	}
 
@@ -350,8 +350,8 @@ public:
 	using RIterator = typename Container::const_reverse_iterator;
 	using Size = typename Container::size_type;
 
-	Column(const MetaColumn& metaColumn, std::list* pData): 
-		_metaColumn(metaColumn), 
+	Column(const MetaColumn& metaColumn, std::list* pData):
+		_metaColumn(metaColumn),
 		_pData(pData)
 		/// Creates the Column.
 	{
@@ -395,7 +395,7 @@ public:
 	const T& value(std::size_t row) const
 		/// Returns the field value in specified row.
 		/// This is the std::list specialization and std::list
-		/// is not the optimal solution for cases where random 
+		/// is not the optimal solution for cases where random
 		/// access is needed.
 		/// However, to allow for compatibility with other
 		/// containers, this functionality is provided here.
@@ -419,7 +419,7 @@ public:
 				if (i == row) return *it;
 		}
 
-		throw RangeException("Invalid row number."); 
+		throw RangeException("Invalid row number.");
 	}
 
 	const T& operator [] (std::size_t row) const
diff --git a/Data/include/Poco/Data/Date.h b/Data/include/Poco/Data/Date.h
index 4ac234bb7..9340ef7cb 100644
--- a/Data/include/Poco/Data/Date.h
+++ b/Data/include/Poco/Data/Date.h
@@ -174,7 +174,7 @@ public:
 	~VarHolderImpl()
 	{
 	}
-	
+
 	const std::type_info& type() const
 	{
 		return typeid(Poco::Data::Date);
@@ -207,7 +207,7 @@ public:
 	{
 		return cloneHolder(pVarHolder, _val);
 	}
-	
+
 	const Poco::Data::Date& value() const
 	{
 		return _val;
diff --git a/Data/include/Poco/Data/LOBStream.h b/Data/include/Poco/Data/LOBStream.h
index b3cbc5c34..a5f9ef701 100644
--- a/Data/include/Poco/Data/LOBStream.h
+++ b/Data/include/Poco/Data/LOBStream.h
@@ -33,7 +33,7 @@ template 
 class LOBStreamBuf: public BasicUnbufferedStreamBuf>
 	/// This is the streambuf class used for reading from and writing to a LOB.
 {
-public:	
+public:
 	LOBStreamBuf(LOB& lob): _lob(lob), _it(_lob.begin())
 		/// Creates LOBStreamBuf.
 	{
diff --git a/Data/include/Poco/Data/Limit.h b/Data/include/Poco/Data/Limit.h
index 73bccf90b..80dcdc27c 100644
--- a/Data/include/Poco/Data/Limit.h
+++ b/Data/include/Poco/Data/Limit.h
@@ -35,9 +35,9 @@ public:
 	{
 		LIMIT_UNLIMITED = ~((SizeT) 0)
 	};
-	
+
 	Limit(SizeT value, bool hardLimit = false, bool isLowerLimit = false);
-		/// Creates the Limit. 
+		/// Creates the Limit.
 		///
 		/// Value contains the upper row hint, if hardLimit is set to true, the limit acts as a hard
 		/// border, ie. every query must return exactly value rows, returning more than value objects will throw an exception!
diff --git a/Data/include/Poco/Data/PooledSessionHolder.h b/Data/include/Poco/Data/PooledSessionHolder.h
index 8924589fb..fbf2b70e3 100644
--- a/Data/include/Poco/Data/PooledSessionHolder.h
+++ b/Data/include/Poco/Data/PooledSessionHolder.h
@@ -80,7 +80,7 @@ inline SessionPool& PooledSessionHolder::owner()
 inline void PooledSessionHolder::access()
 {
 	Poco::FastMutex::ScopedLock lock(_mutex);
-	
+
 	_lastUsed.update();
 }
 
diff --git a/Data/include/Poco/Data/PooledSessionImpl.h b/Data/include/Poco/Data/PooledSessionImpl.h
index 90d234633..0d5edf578 100644
--- a/Data/include/Poco/Data/PooledSessionImpl.h
+++ b/Data/include/Poco/Data/PooledSessionImpl.h
@@ -62,11 +62,11 @@ public:
 	bool hasTransactionIsolation(Poco::UInt32) const;
 	bool isTransactionIsolation(Poco::UInt32) const;
 	const std::string& connectorName() const;
-	void setFeature(const std::string& name, bool state);	
+	void setFeature(const std::string& name, bool state);
 	bool getFeature(const std::string& name);
 	void setProperty(const std::string& name, const Poco::Any& value);
 	Poco::Any getProperty(const std::string& name);
-	
+
 protected:
 	SessionImpl* access() const;
 		/// Updates the last access timestamp,
@@ -75,11 +75,11 @@ protected:
 		///
 		/// Throws an SessionUnavailableException if the
 		/// session is no longer valid.
-		
+
 	SessionImpl* impl() const;
 		/// Returns a pointer to the SessionImpl.
-				
-private:	
+
+private:
 	mutable Poco::AutoPtr _pHolder;
 };
 
diff --git a/Data/include/Poco/Data/Position.h b/Data/include/Poco/Data/Position.h
index 727d27b74..19ba55543 100644
--- a/Data/include/Poco/Data/Position.h
+++ b/Data/include/Poco/Data/Position.h
@@ -38,7 +38,7 @@ public:
 
 	Poco::UInt32 value() const;
 		/// Returns the position value.
-	
+
 private:
 	Position();
 
@@ -49,9 +49,9 @@ private:
 ///
 /// inlines
 ///
-inline Poco::UInt32 Position::value() const 
-{ 
-	return _value; 
+inline Poco::UInt32 Position::value() const
+{
+	return _value;
 }
 
 
diff --git a/Data/include/Poco/Data/Preparation.h b/Data/include/Poco/Data/Preparation.h
index 6515063d9..870dfdcf2 100644
--- a/Data/include/Poco/Data/Preparation.h
+++ b/Data/include/Poco/Data/Preparation.h
@@ -34,9 +34,9 @@ class Preparation: public AbstractPreparation
 	/// Class for calling the appropriate AbstractPreparator method.
 {
 public:
-	Preparation(AbstractPreparator::Ptr& pPreparator, std::size_t pos, T& val): 
-		AbstractPreparation(pPreparator), 
-		_pos(pos), 
+	Preparation(AbstractPreparator::Ptr& pPreparator, std::size_t pos, T& val):
+		AbstractPreparation(pPreparator),
+		_pos(pos),
 		_val(val)
 		/// Creates the Preparation.
 	{
@@ -66,9 +66,9 @@ class Preparation>: public AbstractPreparation
 	/// the whole vector preparation, rather than only individual contained values.
 {
 public:
-	Preparation(AbstractPreparator::Ptr pPreparator, std::size_t pos, std::vector& val = std::vector()): 
-		AbstractPreparation(pPreparator), 
-		_pos(pos), 
+	Preparation(AbstractPreparator::Ptr pPreparator, std::size_t pos, std::vector& val = std::vector()):
+		AbstractPreparation(pPreparator),
+		_pos(pos),
 		_val(val)
 		/// Creates the Preparation.
 	{
@@ -98,9 +98,9 @@ class Preparation>: public AbstractPreparation
 	/// the whole deque preparation, rather than only individual contained values.
 {
 public:
-	Preparation(AbstractPreparator::Ptr pPreparator, std::size_t pos, std::deque& val = std::deque()): 
-		AbstractPreparation(pPreparator), 
-		_pos(pos), 
+	Preparation(AbstractPreparator::Ptr pPreparator, std::size_t pos, std::deque& val = std::deque()):
+		AbstractPreparation(pPreparator),
+		_pos(pos),
 		_val(val)
 		/// Creates the Preparation.
 	{
@@ -130,9 +130,9 @@ class Preparation>: public AbstractPreparation
 	/// the whole list preparation, rather than only individual contained values.
 {
 public:
-	Preparation(AbstractPreparator::Ptr pPreparator, std::size_t pos, std::list& val = std::list()): 
-		AbstractPreparation(pPreparator), 
-		_pos(pos), 
+	Preparation(AbstractPreparator::Ptr pPreparator, std::size_t pos, std::list& val = std::list()):
+		AbstractPreparation(pPreparator),
+		_pos(pos),
 		_val(val)
 		/// Creates the Preparation.
 	{
diff --git a/Data/include/Poco/Data/Range.h b/Data/include/Poco/Data/Range.h
index 8f0ab042e..08222a43c 100644
--- a/Data/include/Poco/Data/Range.h
+++ b/Data/include/Poco/Data/Range.h
@@ -66,7 +66,7 @@ inline const Limit& Range::upper() const
 namespace Keywords {
 
 
-template  
+template 
 Limit limit(T lim, bool hard = false)
 	/// Creates an upperLimit
 {
@@ -74,21 +74,21 @@ Limit limit(T lim, bool hard = false)
 }
 
 
-template  
+template 
 Limit upperLimit(T lim, bool hard = false)
 {
 	return limit(lim, hard);
 }
 
 
-template  
+template 
 Limit lowerLimit(T lim)
 {
 	return Limit(static_cast(lim), true, true);
 }
 
 
-template  
+template 
 Range range(T low, T upp, bool hard = false)
 {
 	return Range(static_cast(low), static_cast(upp), hard);
diff --git a/Data/include/Poco/Data/RecordSet.h b/Data/include/Poco/Data/RecordSet.h
index d3733cfe2..603ed52da 100644
--- a/Data/include/Poco/Data/RecordSet.h
+++ b/Data/include/Poco/Data/RecordSet.h
@@ -44,7 +44,7 @@ class RowFilter;
 class Data_API RecordSet: private Statement
 	/// RecordSet provides access to data returned from a query.
 	/// Data access indices (row and column) are 0-based, as usual in C++.
-	/// 
+	///
 	/// Recordset provides navigation methods to iterate through the
 	/// recordset, retrieval methods to extract data, and methods
 	/// to get metadata (type, etc.) about columns.
@@ -64,7 +64,7 @@ class Data_API RecordSet: private Statement
 	/// The third (optional) argument passed to the Recordset constructor is a RowFormatter
 	/// implementation. The formatter is used in conjunction with << operator for recordset
 	/// data formating.
-	/// 
+	///
 	/// The number of rows in the RecordSet can be limited by specifying
 	/// a limit for the Statement.
 {
@@ -82,18 +82,18 @@ public:
 		RowFormatter::Ptr pRowFormatter = 0);
 		/// Creates the RecordSet.
 
-	RecordSet(Session& rSession, 
+	RecordSet(Session& rSession,
 		const std::string& query,
 		RowFormatter::Ptr pRowFormatter = 0);
 		/// Creates the RecordSet.
 
-	RecordSet(Session& rSession, 
+	RecordSet(Session& rSession,
 		const std::string& query,
 		const RowFormatter& rowFormatter);
 		/// Creates the RecordSet.
 
 	template 
-	RecordSet(Session& rSession, const std::string& query, const RF& rowFormatter): 
+	RecordSet(Session& rSession, const std::string& query, const RF& rowFormatter):
 		Statement((rSession << query, Keywords::now)),
 		_currentRow(0),
 		_pBegin(new RowIterator(this, 0 == rowsExtracted())),
@@ -145,7 +145,7 @@ public:
 	std::size_t getTotalRowCount() const;
 		/// Returns the total number of rows in the RecordSet.
 		/// The number of rows reported is independent of filtering.
-		/// If the total row count has not been set externally 
+		/// If the total row count has not been set externally
 		/// (either explicitly or implicitly through SQL), the value
 		/// returned shall only be accurate if the statement limit
 		/// is less or equal to the total row count.
@@ -274,7 +274,7 @@ public:
 		else
 			return value(name, _currentRow);
 	}
-	
+
 	template 
 	Poco::Dynamic::Var nvl(std::size_t index, const T& deflt = T()) const
 		/// Returns the value in the given column of the current row
@@ -378,11 +378,11 @@ public:
 	void formatNames() const;
 		/// Formats names using the current RowFormatter.
 
-	std::ostream& copyValues(std::ostream& os, 
-		std::size_t offset = 0, 
+	std::ostream& copyValues(std::ostream& os,
+		std::size_t offset = 0,
 		std::size_t length = RowIterator::POSITION_END) const;
 		/// Copies the data values to the supplied output stream.
-		/// The data set to be copied is starting at the specified offset 
+		/// The data set to be copied is starting at the specified offset
 		/// from the recordset beginning. The number of rows to be copied
 		/// is specified by length argument.
 		/// An invalid combination of offset/length arguments shall
@@ -391,7 +391,7 @@ public:
 
 	void formatValues(std::size_t offset, std::size_t length) const;
 		/// Formats values using the current RowFormatter.
-		/// The data set to be formatted is starting at the specified offset 
+		/// The data set to be formatted is starting at the specified offset
 		/// from the recordset beginning. The number of rows to be copied
 		/// is specified by length argument.
 		/// An invalid combination of offset/length arguments shall
@@ -421,7 +421,7 @@ private:
 		const AbstractExtractionVec& rExtractions = extractions();
 		AbstractExtractionVec::const_iterator it = rExtractions.begin();
 		AbstractExtractionVec::const_iterator end = rExtractions.end();
-		
+
 		for (; it != end; ++it)
 		{
 			ExtractionVecPtr pExtraction = dynamic_cast(it->get());
@@ -467,9 +467,9 @@ private:
 		{
 			return pExtraction->column();
 		}
-		else 
+		else
 		{
-			throw Poco::BadCastException(Poco::format("Type cast failed!\nColumn: %z\nTarget type:\t%s",  
+			throw Poco::BadCastException(Poco::format("Type cast failed!\nColumn: %z\nTarget type:\t%s",
 				pos,
 				std::string(typeid(T).name())));
 		}
diff --git a/Data/include/Poco/Data/Row.h b/Data/include/Poco/Data/Row.h
index 110be6f0d..089d9ae87 100644
--- a/Data/include/Poco/Data/Row.h
+++ b/Data/include/Poco/Data/Row.h
@@ -41,12 +41,12 @@ class Data_API Row
 	/// Rows are sortable. The sortability is maintained at all times (i.e. there
 	/// is always at least one column specified as a sorting criteria) .
 	/// The default and minimal sorting criteria is the first field (position 0).
-	/// The default sorting criteria can be replaced with any other field by 
+	/// The default sorting criteria can be replaced with any other field by
 	/// calling replaceSortField() member function.
 	/// Additional fields can be added to sorting criteria, in which case the
 	/// field precedence corresponds to addition order (i.e. later added fields
 	/// have lower sorting precedence).
-	/// These features make Row suitable for use with standard sorted 
+	/// These features make Row suitable for use with standard sorted
 	/// containers and algorithms. The main constraint is that all the rows from
 	/// a set that is being sorted must have the same sorting criteria (i.e., the same
 	/// set of fields must be in sorting criteria in the same order). Since rows don't
@@ -73,7 +73,7 @@ public:
 	using SortMap = std::vector;
 		/// The type for map holding fields used for sorting criteria.
 		/// Fields are added sequentially and have precedence that
-		/// corresponds to field adding sequence order (rather than field's 
+		/// corresponds to field adding sequence order (rather than field's
 		/// position in the row).
 		/// This requirement rules out use of std::map due to its sorted nature.
 	using SortMapPtr = SharedPtr;
@@ -111,7 +111,7 @@ public:
 		_pNames->push_back(name);
 		if (1 == _values.size()) addSortField(0);
 	}
-	
+
 	template 
 	void set(std::size_t pos, const T& val)
 		/// Assigns the value to the row.
diff --git a/Data/include/Poco/Data/RowFilter.h b/Data/include/Poco/Data/RowFilter.h
index 37d2c903d..4bec4c49e 100644
--- a/Data/include/Poco/Data/RowFilter.h
+++ b/Data/include/Poco/Data/RowFilter.h
@@ -167,7 +167,7 @@ private:
 	RecordSet& recordSet() const;
 
 	Comparison getComparison(const std::string& comp) const;
-	
+
 	void rewindRecordSet();
 
 	Comparisons        _comparisons;
diff --git a/Data/include/Poco/Data/RowFormatter.h b/Data/include/Poco/Data/RowFormatter.h
index 7c735a18d..e916d4f92 100644
--- a/Data/include/Poco/Data/RowFormatter.h
+++ b/Data/include/Poco/Data/RowFormatter.h
@@ -50,8 +50,8 @@ class Data_API RowFormatter
 	/// it with rows through RecordSet.
 	///
 	/// To accomodate for various formatting needs, a formatter can operate in two modes:
-	/// 
-	///	  - progressive: formatted individual row strings are gemerated and returned from each 
+	///
+	///	  - progressive: formatted individual row strings are gemerated and returned from each
 	///     call to formatValues;
 	///     std::string& formatNames(const NameVecPtr, std::string&) and
 	///     std::string& formatValues(const ValueVec&, std::string&) member calls should be
@@ -106,7 +106,7 @@ public:
 		/// The default implementation does nothing.
 
 	virtual const std::string& toString();
-		/// Throws NotImplementedException. Formatters operating in bulk mode should 
+		/// Throws NotImplementedException. Formatters operating in bulk mode should
 		/// implement this member function to return valid pointer to the formatted result.
 
 	virtual int rowCount() const;
diff --git a/Data/include/Poco/Data/SessionFactory.h b/Data/include/Poco/Data/SessionFactory.h
index 0185a8a38..3753cf3e1 100644
--- a/Data/include/Poco/Data/SessionFactory.h
+++ b/Data/include/Poco/Data/SessionFactory.h
@@ -32,16 +32,16 @@ namespace Data {
 
 
 class Data_API SessionFactory
-	/// A SessionFactory is a singleton class that stores Connectors and allows to 
+	/// A SessionFactory is a singleton class that stores Connectors and allows to
 	/// create Sessions of the required type:
-	///    
+	///
 	///     Session ses(SessionFactory::instance().create(connector, connectionString));
-	///    
+	///
 	/// where the first param presents the type of session one wants to create (e.g. for SQLite one would choose "SQLite")
 	/// and the second param is the connection string that the connector requires to connect to the database.
 	///
 	/// A concrete example to open an SQLite database stored in the file "dummy.db" would be
-	///    
+	///
 	///     Session ses(SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
 	///
 	/// An even simpler way to create a session is to use the two argument constructor of Session, which
@@ -50,7 +50,7 @@ class Data_API SessionFactory
 	///      Session ses("SQLite", "dummy.db");
 {
 public:
-	
+
 	static SessionFactory& instance();
 		/// returns the static instance of the singleton.
 
@@ -71,7 +71,7 @@ public:
 
 	Session create(const std::string& uri,
 		std::size_t timeout = Session::LOGIN_TIMEOUT_DEFAULT);
-		/// Creates a Session for the given URI (must be in key:///connectionString format). 
+		/// Creates a Session for the given URI (must be in key:///connectionString format).
 		/// Throws a Poco:Data::UnknownDataBaseException if no Connector is registered for the key.
 
 private:
@@ -86,7 +86,7 @@ private:
 		Poco::SharedPtr ptrSI;
 		SessionInfo(Connector* pSI);
 	};
-	
+
 	typedef std::map Connectors;
 	Connectors      _connectors;
 	Poco::FastMutex _mutex;
diff --git a/Data/include/Poco/Data/SessionPool.h b/Data/include/Poco/Data/SessionPool.h
index 17fa87c8f..0c801c44b 100644
--- a/Data/include/Poco/Data/SessionPool.h
+++ b/Data/include/Poco/Data/SessionPool.h
@@ -40,7 +40,7 @@ class Data_API SessionPool: public RefCountedObject
 	/// operation. Therefore it makes sense to reuse a session object
 	/// once it is no longer needed.
 	///
-	/// A SessionPool manages a collection of SessionImpl objects 
+	/// A SessionPool manages a collection of SessionImpl objects
 	/// (decorated with a PooledSessionImpl).
 	///
 	/// When a SessionImpl object is requested, the SessionPool first
@@ -52,7 +52,7 @@ class Data_API SessionPool: public RefCountedObject
 	/// can be set on the maximum number of objects.
 	/// Sessions found not to be connected to the database are purged
 	/// from the pool whenever one of the following events occurs:
-	/// 
+	///
 	///   - JanitorTimer event
 	///   - get() request
 	///   - putBack() request
@@ -67,10 +67,10 @@ class Data_API SessionPool: public RefCountedObject
 	///     ...
 {
 public:
-	SessionPool(const std::string& connector, 
-		const std::string& connectionString, 
-		int minSessions = 1, 
-		int maxSessions = 32, 
+	SessionPool(const std::string& connector,
+		const std::string& connectionString,
+		int minSessions = 1,
+		int maxSessions = 32,
 		int idleTime = 60,
 		int connTimeout = 60);
 		/// Creates the SessionPool for sessions with the given connector
@@ -82,23 +82,23 @@ public:
 
 	~SessionPool();
 		/// Destroys the SessionPool.
-		
+
 	Session get();
 		/// Returns a Session.
 		///
 		/// If there are unused sessions available, one of the
 		/// unused sessions is recycled. Otherwise, a new session
-		/// is created. 
+		/// is created.
 		///
 		/// If the maximum number of sessions for this pool has
 		/// already been created, a SessionPoolExhaustedException
 		/// is thrown.
-	
+
 	template 
 	Session get(const std::string& name, const T& value)
 		/// Returns a Session with requested property set.
 		/// The property can be different from the default pool
-		/// value, in which case it is reset back to the pool 
+		/// value, in which case it is reset back to the pool
 		/// value when the session is reclaimed by the pool.
 	{
 		Session s = get();
@@ -112,18 +112,18 @@ public:
 	Session get(const std::string& name, bool value);
 		/// Returns a Session with requested feature set.
 		/// The feature can be different from the default pool
-		/// value, in which case it is reset back to the pool 
+		/// value, in which case it is reset back to the pool
 		/// value when the session is reclaimed by the pool.
 
 	int capacity() const;
 		/// Returns the maximum number of sessions the SessionPool will manage.
-		
+
 	int used() const;
 		/// Returns the number of sessions currently in use.
-		
+
 	int idle() const;
 		/// Returns the number of idle sessions.
-		
+
 	int connTimeout() const;
 		/// Returns the connection timeout.
 
@@ -132,7 +132,7 @@ public:
 
 	int allocated() const;
 		/// Returns the number of allocated sessions.
-		
+
 	int available() const;
 		/// Returns the number of available (idle + remaining capacity) sessions.
 
@@ -181,14 +181,14 @@ protected:
 	void onJanitorTimer(Poco::Timer&);
 
 private:
-	typedef std::pair PropertyPair; 
-	typedef std::pair FeaturePair; 
+	typedef std::pair PropertyPair;
+	typedef std::pair FeaturePair;
 	typedef std::map AddPropertyMap;
 	typedef std::map AddFeatureMap;
 
 	SessionPool(const SessionPool&);
 	SessionPool& operator = (const SessionPool&);
-		
+
 	void closeAll(SessionList& sessionList);
 
 	std::string    _connector;
@@ -208,7 +208,7 @@ private:
 	AddFeatureMap  _addFeatureMap;
 	mutable
 	Poco::Mutex _mutex;
-	
+
 	friend class PooledSessionImpl;
 };
 
diff --git a/Data/include/Poco/Data/SessionPoolContainer.h b/Data/include/Poco/Data/SessionPoolContainer.h
index 15c3e83b9..a1479b180 100644
--- a/Data/include/Poco/Data/SessionPoolContainer.h
+++ b/Data/include/Poco/Data/SessionPoolContainer.h
@@ -38,15 +38,15 @@ public:
 
 	~SessionPoolContainer();
 		/// Destroys the SessionPoolContainer.
-	
+
 	void add(SessionPool* pPool);
 		/// Adds existing session pool to the container.
 		/// Throws SessionPoolExistsException if pool already exists.
 
-	Session add(const std::string& sessionKey, 
+	Session add(const std::string& sessionKey,
 		const std::string& connectionString,
-		int minSessions = 1, 
-		int maxSessions = 32, 
+		int minSessions = 1,
+		int maxSessions = 32,
 		int idleTime = 60);
 		/// Adds a new session pool to the container and returns a Session from
 		/// newly created pool. If pool already exists, request to add is silently
@@ -58,7 +58,7 @@ public:
 	bool isActive(const std::string& sessionKey,
 		const std::string& connectionString = "") const;
 		/// Returns true if the session is active (i.e. not shut down).
-		/// If connectionString is empty string, sessionKey must be a 
+		/// If connectionString is empty string, sessionKey must be a
 		/// fully qualified session name as registered with the pool
 		/// container.
 
@@ -72,7 +72,7 @@ public:
 
 	void remove(const std::string& name);
 		/// Removes a SessionPool.
-		
+
 	int count() const;
 		/// Returns the number of session pols in the container.
 
@@ -84,7 +84,7 @@ private:
 
 	SessionPoolContainer(const SessionPoolContainer&);
 	SessionPoolContainer& operator = (const SessionPoolContainer&);
-		
+
 	SessionPoolMap  _sessionPools;
 	Poco::FastMutex _mutex;
 };
diff --git a/Data/include/Poco/Data/SimpleRowFormatter.h b/Data/include/Poco/Data/SimpleRowFormatter.h
index e1642256b..0dcb43b0b 100644
--- a/Data/include/Poco/Data/SimpleRowFormatter.h
+++ b/Data/include/Poco/Data/SimpleRowFormatter.h
@@ -66,7 +66,7 @@ public:
 
 	std::streamsize getColumnWidth() const;
 		/// Returns the column width.
-		
+
 	std::streamsize getSpacing() const;
 		/// Returns the spacing.
 
diff --git a/Data/include/Poco/Data/StatementCreator.h b/Data/include/Poco/Data/StatementCreator.h
index 4572e87da..23ca43032 100644
--- a/Data/include/Poco/Data/StatementCreator.h
+++ b/Data/include/Poco/Data/StatementCreator.h
@@ -34,7 +34,7 @@ class Data_API StatementCreator
 public:
 	StatementCreator();
 		/// Creates an unitialized StatementCreator.
-		
+
 	StatementCreator(Poco::AutoPtr ptrImpl);
 		/// Creates a StatementCreator.
 
@@ -52,10 +52,10 @@ public:
 
 	StatementCreator& operator = (StatementCreator&& other) noexcept;
 		/// Assignment operator.
-		
+
 	void swap(StatementCreator& other) noexcept;
-		/// Swaps the StatementCreator with another one.	
-		
+		/// Swaps the StatementCreator with another one.
+
 	template 
 	Statement operator << (const T& t)
 		/// Creates a Statement.
diff --git a/Data/include/Poco/Data/Time.h b/Data/include/Poco/Data/Time.h
index 07116906b..80619a595 100644
--- a/Data/include/Poco/Data/Time.h
+++ b/Data/include/Poco/Data/Time.h
@@ -174,7 +174,7 @@ public:
 	~VarHolderImpl()
 	{
 	}
-	
+
 	const std::type_info& type() const
 	{
 		return typeid(Poco::Data::Time);
@@ -211,7 +211,7 @@ public:
 	{
 		return cloneHolder(pVarHolder, _val);
 	}
-	
+
 	const Poco::Data::Time& value() const
 	{
 		return _val;
diff --git a/Data/include/Poco/Data/Transaction.h b/Data/include/Poco/Data/Transaction.h
index a8fdc4699..caf3e7f85 100644
--- a/Data/include/Poco/Data/Transaction.h
+++ b/Data/include/Poco/Data/Transaction.h
@@ -44,22 +44,22 @@ public:
 		/// Creates the Transaction, using the given database session.
 		/// If start is true, transaction is started, otherwise begin() must be called
 		/// to start the transaction.
-		
+
 	template 
-	Transaction(Poco::Data::Session& rSession, T& t, Poco::Logger* pLogger = 0): 
+	Transaction(Poco::Data::Session& rSession, T& t, Poco::Logger* pLogger = 0):
 		_rSession(rSession),
 		_pLogger(pLogger)
 		/// Creates the Transaction, using the given database session, transactor and logger.
-		/// The transactor type must provide operator () overload taking non-const Session 
+		/// The transactor type must provide operator () overload taking non-const Session
 		/// reference as an argument.
 		///
 		/// When transaction is created using this constructor, it is executed and
 		/// commited automatically. If no error occurs, rollback is disabled and does
 		/// not occur at destruction time. If an error occurs resulting in exception being
 		/// thrown, the transaction is rolled back and exception propagated to calling code.
-		/// 
+		///
 		/// Example usage:
-		/// 
+		///
 		/// struct Transactor
 		/// {
 		///		void operator () (Session& session) const
@@ -67,9 +67,9 @@ public:
 		///			// do something ...
 		///		}
 		/// };
-		/// 
+		///
 		/// Transactor tr;
-		/// Transaction tn(session, tr); 
+		/// Transaction tn(session, tr);
 	{
 		try { transact(t); }
 		catch (...)
@@ -86,7 +86,7 @@ public:
 		/// (by calling commit()), or rolled back (by calling rollback()).
 		///
 		/// If an exception is thrown during rollback, the exception is logged
-		/// and no further action is taken. 
+		/// and no further action is taken.
 
 	void setIsolation(Poco::UInt32 ti);
 		/// Sets the transaction isolation level.
@@ -116,7 +116,7 @@ public:
 
 	template 
 	void transact(T& t)
-		/// Executes the transactor and, unless transactor throws an exception, 
+		/// Executes the transactor and, unless transactor throws an exception,
 		/// commits the transaction.
 	{
 		if (!isActive()) begin();
@@ -126,10 +126,10 @@ public:
 
 	void commit();
 		/// Commits the current transaction.
-		
+
 	void rollback();
 		/// Rolls back the current transaction.
-		
+
 	bool isActive();
 		/// Returns false after the transaction has been committed or rolled back,
 		/// true if the transaction is ongoing.
@@ -142,7 +142,7 @@ private:
 	Transaction();
 	Transaction(const Transaction&);
 	Transaction& operator = (const Transaction&);
-	
+
 	void begin();
 		/// Begins the transaction if the session is already not in transaction.
 		/// Otherwise does nothing.
diff --git a/Data/samples/Binding/src/Binding.cpp b/Data/samples/Binding/src/Binding.cpp
index d80f9bc10..d17d96404 100644
--- a/Data/samples/Binding/src/Binding.cpp
+++ b/Data/samples/Binding/src/Binding.cpp
@@ -38,32 +38,32 @@ int main(int argc, char** argv)
 
 	// drop sample table, if it exists
 	session << "DROP TABLE IF EXISTS Person", now;
-	
+
 	// (re)create table
 	session << "CREATE TABLE Person (Name VARCHAR(30), Address VARCHAR, Age INTEGER(3))", now;
-	
+
 	// insert some rows
-	Person person = 
+	Person person =
 	{
 		"Bart Simpson",
 		"Springfield",
 		12
 	};
-	
+
 	Statement insert(session);
 	insert << "INSERT INTO Person VALUES(?, ?, ?)",
 		use(person.name),
 		use(person.address),
 		use(person.age);
-	
+
 	insert.execute();
-	
+
 	person.name    = "Lisa Simpson";
 	person.address = "Springfield";
 	person.age     = 10;
-	
+
 	insert.execute();
-	
+
 	// a simple query
 	Statement select(session);
 	select << "SELECT Name, Address, Age FROM Person",
@@ -71,7 +71,7 @@ int main(int argc, char** argv)
 		into(person.address),
 		into(person.age),
 		range(0, 1); //  iterate over result set one row at a time
-		
+
 	while (!select.done())
 	{
 		select.execute();
@@ -83,7 +83,7 @@ int main(int argc, char** argv)
 	session << "SELECT Name FROM Person",
 		into(names),
 		now;
-		
+
 	for (std::vector::const_iterator it = names.begin(); it != names.end(); ++it)
 	{
 		std::cout << *it << std::endl;
diff --git a/Data/samples/RecordSet/Makefile b/Data/samples/RecordSet/Makefile
index e65ba747c..2f6a7b1b5 100644
--- a/Data/samples/RecordSet/Makefile
+++ b/Data/samples/RecordSet/Makefile
@@ -10,6 +10,6 @@ objects = RecordSet
 
 target         = RecordSet
 target_version = 1
-target_libs    = PocoDataSQLite PocoData PocoFoundation 
+target_libs    = PocoDataSQLite PocoData PocoFoundation
 
 include $(POCO_BASE)/build/rules/exec
diff --git a/Data/samples/RecordSet/src/RecordSet.cpp b/Data/samples/RecordSet/src/RecordSet.cpp
index f5ac85e75..7d804e4c4 100644
--- a/Data/samples/RecordSet/src/RecordSet.cpp
+++ b/Data/samples/RecordSet/src/RecordSet.cpp
@@ -36,22 +36,22 @@ int main(int argc, char** argv)
 
 	// drop sample table, if it exists
 	session << "DROP TABLE IF EXISTS Person", now;
-	
+
 	// (re)create table
 	session << "CREATE TABLE Person (Name VARCHAR(30), Address VARCHAR, Age INTEGER(3), Birthday DATE)", now;
-	
+
 	// insert some rows
 	DateTime bd(1980, 4, 1);
 	DateTime ld(1982, 5, 9);
 	session << "INSERT INTO Person VALUES('Bart Simpson', 'Springfield', 12, ?)", use(bd), now;
 	session << "INSERT INTO Person VALUES('Lisa Simpson', 'Springfield', 10, ?)", use(ld), now;
-		
+
 	// a simple query
 	Statement select(session);
 	select << "SELECT * FROM Person";
 	select.execute();
 
-	// create a RecordSet 
+	// create a RecordSet
 	RecordSet rs(select);
 	std::size_t cols = rs.columnCount();
 	// print all column names
diff --git a/Data/samples/RowFormatter/Makefile b/Data/samples/RowFormatter/Makefile
index 9e9306a31..b225bb0b7 100644
--- a/Data/samples/RowFormatter/Makefile
+++ b/Data/samples/RowFormatter/Makefile
@@ -10,6 +10,6 @@ objects = RowFormatter
 
 target         = RowFormatter
 target_version = 1
-target_libs    = PocoDataSQLite PocoData PocoFoundation 
+target_libs    = PocoDataSQLite PocoData PocoFoundation
 
 include $(POCO_BASE)/build/rules/exec
diff --git a/Data/samples/RowFormatter/src/RowFormatter.cpp b/Data/samples/RowFormatter/src/RowFormatter.cpp
index 4c928f940..597a0a167 100644
--- a/Data/samples/RowFormatter/src/RowFormatter.cpp
+++ b/Data/samples/RowFormatter/src/RowFormatter.cpp
@@ -39,7 +39,7 @@ public:
 		std::ostringstream os;
 		os << "" << std::endl;
 		setPrefix(os.str());
-		
+
 		os.str("");
 		os << "
" << std::endl; setPostfix(os.str()); @@ -67,9 +67,9 @@ public: ValueVec::const_iterator end = vals.end(); for (; it != end; ++it) { - if (it->isNumeric()) + if (it->isNumeric()) str << "\t\t"; - else + else str << "\t\t"; str << it->convert() << "" << std::endl; @@ -85,16 +85,16 @@ int main(int argc, char** argv) { // register SQLite connector Poco::Data::SQLite::Connector::registerConnector(); - + // create a session Session session("SQLite", "sample.db"); // drop sample table, if it exists session << "DROP TABLE IF EXISTS Simpsons", now; - + // (re)create table session << "CREATE TABLE Simpsons (Name VARCHAR(30), Address VARCHAR, Age INTEGER(3), Birthday DATE)", now; - + // insert some rows DateTime hd(1956, 3, 1); session << "INSERT INTO Simpsons VALUES('Homer Simpson', 'Springfield', 42, ?)", use(hd), now; @@ -104,7 +104,7 @@ int main(int argc, char** argv) session << "INSERT INTO Simpsons VALUES('Bart Simpson', 'Springfield', 12, ?)", use(hd), now; hd.assign(1982, 5, 9); session << "INSERT INTO Simpsons VALUES('Lisa Simpson', 'Springfield', 10, ?)", use(hd), now; - + // create a statement and print the column names and data as HTML table HTMLTableFormatter tf; Statement stmt = (session << "SELECT * FROM Simpsons", format(tf), now); diff --git a/Data/samples/Tuple/Makefile b/Data/samples/Tuple/Makefile index c2b921217..4e8f28eb7 100644 --- a/Data/samples/Tuple/Makefile +++ b/Data/samples/Tuple/Makefile @@ -10,6 +10,6 @@ objects = Tuple target = Tuple target_version = 1 -target_libs = PocoDataSQLite PocoData PocoFoundation +target_libs = PocoDataSQLite PocoData PocoFoundation include $(POCO_BASE)/build/rules/exec diff --git a/Data/samples/Tuple/src/Tuple.cpp b/Data/samples/Tuple/src/Tuple.cpp index d269b26b8..dd01566fe 100644 --- a/Data/samples/Tuple/src/Tuple.cpp +++ b/Data/samples/Tuple/src/Tuple.cpp @@ -36,19 +36,19 @@ int main(int argc, char** argv) // drop sample table, if it exists session << "DROP TABLE IF EXISTS Person", now; - + // (re)create table session << "CREATE TABLE Person (Name VARCHAR(30), Address VARCHAR, Age INTEGER(3))", now; - + // insert some rows People people; people.push_back(Person("Bart Simpson", "Springfield", 12)); people.push_back(Person("Lisa Simpson", "Springfield", 10)); - + Statement insert(session); insert << "INSERT INTO Person VALUES(:name, :address, :age)", use(people), now; - + people.clear(); // a simple query @@ -56,11 +56,11 @@ int main(int argc, char** argv) select << "SELECT Name, Address, Age FROM Person", into(people), now; - + for (People::const_iterator it = people.begin(); it != people.end(); ++it) { - std::cout << "Name: " << it->get<0>() << - ", Address: " << it->get<1>() << + std::cout << "Name: " << it->get<0>() << + ", Address: " << it->get<1>() << ", Age: " << it->get<2>() <::bind(pos++, person.name, pBinder, dir); @@ -57,7 +57,7 @@ public: TypeHandler::bind(pos++, person.age, pBinder, dir); TypeHandler::bind(pos++, person.birthday, pBinder, dir); } - + static void extract(std::size_t pos, Person& person, const Person& deflt, AbstractExtractor::Ptr pExtr) { TypeHandler::extract(pos++, person.name, deflt.name, pExtr); @@ -65,7 +65,7 @@ public: TypeHandler::extract(pos++, person.age, deflt.age, pExtr); TypeHandler::extract(pos++, person.birthday, deflt.birthday, pExtr); } - + static void prepare(std::size_t pos, const Person& person, AbstractPreparator::Ptr pPrep) { TypeHandler::prepare(pos++, person.name, pPrep); @@ -89,62 +89,62 @@ int main(int argc, char** argv) // drop sample table, if it exists session << "DROP TABLE IF EXISTS Person", now; - + // (re)create table session << "CREATE TABLE Person (Name VARCHAR(30), Address VARCHAR, Age INTEGER(3), Birthday DATE)", now; - + // insert some rows - Person person = + Person person = { "Bart Simpson", "Springfield", 10, DateTime(1980, 4, 1) }; - + Statement insert(session); insert << "INSERT INTO Person VALUES(?, ?, ?, ?)", use(person); - + insert.execute(); - + person.name = "Lisa Simpson"; person.address = "Springfield"; person.age = 8; person.birthday = DateTime(1982, 5, 9); insert.execute(); - + // a simple query Statement select(session); select << "SELECT Name, Address, Age, Birthday FROM Person", into(person), range(0, 1); // iterate over result set one row at a time - + while (!select.done()) { select.execute(); std::cout << person.name << "\t" << person.address << "\t" << person.age << "\t" - << DateTimeFormatter::format(person.birthday, "%b %d %Y") + << DateTimeFormatter::format(person.birthday, "%b %d %Y") << std::endl; } - + // another query - store the result in a container std::vector persons; session << "SELECT Name, Address, Age, Birthday FROM Person", into(persons), now; - + for (std::vector::const_iterator it = persons.begin(); it != persons.end(); ++it) { std::cout << it->name << "\t" << it->address << "\t" << it->age << "\t" - << DateTimeFormatter::format(it->birthday, "%b %d %Y") + << DateTimeFormatter::format(it->birthday, "%b %d %Y") << std::endl; } - + return 0; } diff --git a/Data/samples/WebNotifier/WebNotifier.html b/Data/samples/WebNotifier/WebNotifier.html index 30b94c3dc..c826d3a27 100644 --- a/Data/samples/WebNotifier/WebNotifier.html +++ b/Data/samples/WebNotifier/WebNotifier.html @@ -8,10 +8,10 @@ var div = document.getElementById("output"); div.innerHTML = div.innerHTML + "
" + msg + "
"; } - + function WebSocketOpen() { - if ("WebSocket" in window) + if ("WebSocket" in window) { ws = new WebSocket("ws://localhost:9980/ws"); @@ -20,7 +20,7 @@ ws.send("Hello, world!"); log("WebSocket opened.", "green"); }; - + ws.onmessage = function(evt) { var arr = evt.data.split(","); @@ -32,7 +32,7 @@ else log("Unknown message received: " + evt.data, "red"); }; - + ws.onclose = function() { log("WebSocket closed.", "red"); @@ -43,22 +43,22 @@ log("This browser does not support WebSockets.", "red"); } } - + function WebSocketSend(msg) { ws.send("hello"); } - + function WebSocketClose() { ws.close(); } - + function updateTable(id, name, address, age) { var table = document.getElementById("dataTable"); - - + + if (table.rows.length > 1) { for (r = 1; r < table.rows.length; r++) @@ -72,18 +72,18 @@ } } } - + var row = table.insertRow(table.rows.length); - + var cell1 = row.insertCell(0); cell1.innerHTML = id; - + var cell2 = row.insertCell(1); cell2.innerHTML = name; - + var cell3 = row.insertCell(2); cell3.innerHTML = address; - + var cell4 = row.insertCell(3); cell4.innerHTML = age; } @@ -101,4 +101,4 @@
- \ No newline at end of file + diff --git a/Data/src/AbstractBinding.cpp b/Data/src/AbstractBinding.cpp index d30ccd1d8..be6fd363d 100644 --- a/Data/src/AbstractBinding.cpp +++ b/Data/src/AbstractBinding.cpp @@ -19,9 +19,9 @@ namespace Poco { namespace Data { -AbstractBinding::AbstractBinding(const std::string& name, - Direction direction, - Poco::UInt32 bulkSize): +AbstractBinding::AbstractBinding(const std::string& name, + Direction direction, + Poco::UInt32 bulkSize): _pBinder(0), _name(name), _direction(direction), diff --git a/Data/src/AbstractExtraction.cpp b/Data/src/AbstractExtraction.cpp index ac3f83927..94b394bdc 100644 --- a/Data/src/AbstractExtraction.cpp +++ b/Data/src/AbstractExtraction.cpp @@ -21,8 +21,8 @@ namespace Data { AbstractExtraction::AbstractExtraction(Poco::UInt32 limit, Poco::UInt32 position, - bool bulk): - _pExtractor(0), + bool bulk): + _pExtractor(0), _limit(limit), _position(position), _bulk(bulk), diff --git a/Data/src/ArchiveStrategy.cpp b/Data/src/ArchiveStrategy.cpp index 2d8842ba2..c1cb8d995 100644 --- a/Data/src/ArchiveStrategy.cpp +++ b/Data/src/ArchiveStrategy.cpp @@ -30,8 +30,8 @@ const std::string ArchiveStrategy::DEFAULT_ARCHIVE_DESTINATION = "T_POCO_LOG_ARC ArchiveStrategy::ArchiveStrategy(const std::string& connector, - const std::string& connect, - const std::string& source, + const std::string& connect, + const std::string& source, const std::string& destination): _connector(connector), _connect(connect), @@ -61,9 +61,9 @@ void ArchiveStrategy::open() // -ArchiveByAgeStrategy::ArchiveByAgeStrategy(const std::string& connector, - const std::string& connect, - const std::string& sourceTable, +ArchiveByAgeStrategy::ArchiveByAgeStrategy(const std::string& connector, + const std::string& connect, + const std::string& sourceTable, const std::string& destinationTable): ArchiveStrategy(connector, connect, sourceTable, destinationTable) { @@ -124,7 +124,7 @@ void ArchiveByAgeStrategy::setThreshold(const std::string& age) while (it != end && Ascii::isSpace(*it)) ++it; std::string unit; while (it != end && Ascii::isAlpha(*it)) unit += *it++; - + Timespan::TimeDiff factor = Timespan::SECONDS; if (unit == "minutes") factor = Timespan::MINUTES; @@ -138,7 +138,7 @@ void ArchiveByAgeStrategy::setThreshold(const std::string& age) factor = 30*Timespan::DAYS; else if (unit != "seconds") throw InvalidArgumentException("setMaxAge", age); - + _maxAge = factor * n; } diff --git a/Data/src/Date.cpp b/Data/src/Date.cpp index 542d9a981..302b6a1d4 100644 --- a/Data/src/Date.cpp +++ b/Data/src/Date.cpp @@ -61,7 +61,7 @@ void Date::assign(int year, int month, int day) throw InvalidArgumentException("Month must be between 1 and 12"); if (day < 1 || day > DateTime::daysOfMonth(year, month)) - throw InvalidArgumentException("Month must be between 1 and " + + throw InvalidArgumentException("Month must be between 1 and " + NumberFormatter::format(DateTime::daysOfMonth(year, month))); _year = year; @@ -80,7 +80,7 @@ bool Date::operator < (const Date& date) const { int month = date.month(); if (_month < month) return true; - else + else if (_month > month) return false; else // months equal if (_day < date.day()) return true; diff --git a/Data/src/Row.cpp b/Data/src/Row.cpp index d078536bd..9cc6b0daf 100644 --- a/Data/src/Row.cpp +++ b/Data/src/Row.cpp @@ -29,7 +29,7 @@ std::ostream& operator << (std::ostream &os, const Row& row) } -Row::Row(): +Row::Row(): _pNames(0), _pSortMap(new SortMap), _pFormatter(new SimpleRowFormatter) @@ -63,9 +63,9 @@ void Row::init(const SortMapPtr& pSortMap, const RowFormatter::Ptr& pFormatter) if (sz) { _values.resize(sz); - // Row sortability in the strict weak ordering sense is + // Row sortability in the strict weak ordering sense is // an invariant, hence we must start with a zero here. - // If null value is later retrieved from DB, the + // If null value is later retrieved from DB, the // Var::empty() call should be used to empty // the corresponding Row value. _values[0] = 0; @@ -102,7 +102,7 @@ std::size_t Row::getPosition(const std::string& name) std::size_t col = 0; for (; it != end; ++it, ++col) if (0 == icompare(name, *it)) return col; - + throw NotFoundException(name); } @@ -115,7 +115,7 @@ void Row::addSortField(std::size_t pos) SortMap::iterator end = _pSortMap->end(); for (; it != end; ++it) { - if (it->get<0>() == pos) return; + if (it->get<0>() == pos) return; } ComparisonType ct; @@ -295,16 +295,16 @@ bool Row::operator < (const Row& other) const return false; case COMPARE_AS_INTEGER: - if (_values[it->get<0>()].convert() < + if (_values[it->get<0>()].convert() < other._values[it->get<0>()].convert()) return true; - else if (_values[it->get<0>()].convert() != + else if (_values[it->get<0>()].convert() != other._values[it->get<0>()].convert()) return false; break; case COMPARE_AS_FLOAT: - if (_values[it->get<0>()].convert() < + if (_values[it->get<0>()].convert() < other._values[it->get<0>()].convert()) return true; else if (_values[it->get<0>()].convert() != @@ -313,7 +313,7 @@ bool Row::operator < (const Row& other) const break; case COMPARE_AS_STRING: - if (_values[it->get<0>()].convert() < + if (_values[it->get<0>()].convert() < other._values[it->get<0>()].convert()) return true; else if (_values[it->get<0>()].convert() != @@ -334,7 +334,7 @@ void Row::setFormatter(const RowFormatter::Ptr& pFormatter) { if (pFormatter.get()) _pFormatter = pFormatter; - else + else _pFormatter = new SimpleRowFormatter; } @@ -343,7 +343,7 @@ void Row::setSortMap(const SortMapPtr& pSortMap) { if (pSortMap.get()) _pSortMap = pSortMap; - else + else _pSortMap = new SortMap; } diff --git a/Data/src/RowFilter.cpp b/Data/src/RowFilter.cpp index 9fd0b6287..c66c6b5ea 100644 --- a/Data/src/RowFilter.cpp +++ b/Data/src/RowFilter.cpp @@ -77,7 +77,7 @@ bool RowFilter::isAllowed(std::size_t row) const { Poco::Dynamic::Var retVal; const RecordSet& rs = recordSet(); - + std::size_t columns = rs.columnCount(); ComparisonMap::const_iterator it = _comparisonMap.begin(); ComparisonMap::const_iterator end = _comparisonMap.end(); @@ -111,7 +111,7 @@ bool RowFilter::isAllowed(std::size_t row) const default: throw IllegalStateException("Unsupported comparison criteria."); } - + doCompare(ret, val, compOp, it->second); if (retVal.isEmpty()) retVal = ret; else retVal = retVal || ret; @@ -212,7 +212,7 @@ RecordSet& RowFilter::recordSet() const _pRecordSet = pParent->_pRecordSet; } poco_check_ptr (_pRecordSet); - return *_pRecordSet; + return *_pRecordSet; } diff --git a/Data/src/RowFormatter.cpp b/Data/src/RowFormatter.cpp index 3173fd84e..56564e9a9 100644 --- a/Data/src/RowFormatter.cpp +++ b/Data/src/RowFormatter.cpp @@ -24,7 +24,7 @@ namespace Data { RowFormatter::RowFormatter(const std::string& prefix, const std::string& postfix, Mode mode): - _prefix(prefix), + _prefix(prefix), _postfix(postfix), _mode(mode), _totalRowCount(0) diff --git a/Data/src/RowIterator.cpp b/Data/src/RowIterator.cpp index c17eeeba4..73d73e36c 100644 --- a/Data/src/RowIterator.cpp +++ b/Data/src/RowIterator.cpp @@ -26,7 +26,7 @@ namespace Data { const std::size_t RowIterator::POSITION_END = std::numeric_limits::max(); -RowIterator::RowIterator(RecordSet* pRecordSet, bool positionEnd): +RowIterator::RowIterator(RecordSet* pRecordSet, bool positionEnd): _pRecordSet(pRecordSet), _position(positionEnd ? POSITION_END : 0) { @@ -70,7 +70,7 @@ RowIterator& RowIterator::operator = (RowIterator&& other) noexcept void RowIterator::swap(RowIterator& other) noexcept { using std::swap; - + swap(_pRecordSet, other._pRecordSet); swap(_position, other._position); } diff --git a/Data/src/SQLChannel.cpp b/Data/src/SQLChannel.cpp index 7818aa327..886b7c399 100644 --- a/Data/src/SQLChannel.cpp +++ b/Data/src/SQLChannel.cpp @@ -53,7 +53,7 @@ SQLChannel::SQLChannel(): } -SQLChannel::SQLChannel(const std::string& connector, +SQLChannel::SQLChannel(const std::string& connector, const std::string& connect, const std::string& name): _connector(connector), @@ -93,7 +93,7 @@ void SQLChannel::open() initLogStatement(); } - + void SQLChannel::close() { wait(); @@ -110,9 +110,9 @@ void SQLChannel::log(const Message& msg) void SQLChannel::logAsync(const Message& msg) { poco_check_ptr (_pLogStatement); - if (0 == wait() && !_pLogStatement->done() && !_pLogStatement->initialized()) + if (0 == wait() && !_pLogStatement->done() && !_pLogStatement->initialized()) { - if (_throw) + if (_throw) throw TimeoutException("Timed out waiting for previous statement completion"); else return; } @@ -145,7 +145,7 @@ void SQLChannel::logSync(const Message& msg) } } - + void SQLChannel::setProperty(const std::string& name, const std::string& value) { if (name == PROP_NAME) @@ -222,7 +222,7 @@ void SQLChannel::setProperty(const std::string& name, const std::string& value) } } - + std::string SQLChannel::getProperty(const std::string& name) const { if (name == PROP_NAME) @@ -288,7 +288,7 @@ void SQLChannel::initLogStatement() void SQLChannel::registerChannel() { - Poco::LoggingFactory::defaultFactory().registerChannelClass("SQLChannel", + Poco::LoggingFactory::defaultFactory().registerChannelClass("SQLChannel", new Poco::Instantiator); } diff --git a/Data/src/SessionFactory.cpp b/Data/src/SessionFactory.cpp index bcc5c412f..3c886c858 100644 --- a/Data/src/SessionFactory.cpp +++ b/Data/src/SessionFactory.cpp @@ -83,8 +83,8 @@ Session SessionFactory::create(const std::string& uri, } -SessionFactory::SessionInfo::SessionInfo(Connector* pSI): - cnt(1), +SessionFactory::SessionInfo::SessionInfo(Connector* pSI): + cnt(1), ptrSI(pSI) { } diff --git a/Data/src/SessionPoolContainer.cpp b/Data/src/SessionPoolContainer.cpp index 1fd1bb292..f8f7c434c 100644 --- a/Data/src/SessionPoolContainer.cpp +++ b/Data/src/SessionPoolContainer.cpp @@ -51,10 +51,10 @@ void SessionPoolContainer::add(SessionPool* pPool) } -Session SessionPoolContainer::add(const std::string& sessionKey, +Session SessionPoolContainer::add(const std::string& sessionKey, const std::string& connectionString, - int minSessions, - int maxSessions, + int minSessions, + int maxSessions, int idleTime) { std::string name = SessionPool::name(sessionKey, connectionString); @@ -65,10 +65,10 @@ Session SessionPoolContainer::add(const std::string& sessionKey, // pool already exists, silently return a session from it if (it != _sessionPools.end()) return it->second->get(); - SessionPool* pSP = + SessionPool* pSP = new SessionPool(sessionKey, connectionString, minSessions, maxSessions, idleTime); - std::pair ins = + std::pair ins = _sessionPools.insert(SessionPoolMap::value_type(name, pSP)); return ins.first->second->get(); @@ -78,7 +78,7 @@ Session SessionPoolContainer::add(const std::string& sessionKey, bool SessionPoolContainer::isActive(const std::string& sessionKey, const std::string& connectionString) const { - std::string name = connectionString.empty() ? + std::string name = connectionString.empty() ? sessionKey : SessionPool::name(sessionKey, connectionString); SessionPoolMap::const_iterator it = _sessionPools.find(name); diff --git a/Data/src/SimpleRowFormatter.cpp b/Data/src/SimpleRowFormatter.cpp index ef4922ba7..00cc53bdd 100644 --- a/Data/src/SimpleRowFormatter.cpp +++ b/Data/src/SimpleRowFormatter.cpp @@ -91,7 +91,7 @@ std::string& SimpleRowFormatter::formatValues(const ValueVec& vals, std::string& if (it != vals.begin()) str << space; if (it->isNumeric()) { - str << std::right + str << std::right << std::fixed << std::setprecision(2); } diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 6ccd5d0b8..089377aa1 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -92,7 +92,7 @@ Statement& Statement::operator = (Statement&& stmt) noexcept void Statement::swap(Statement& other) noexcept { using std::swap; - + swap(_pImpl, other._pImpl); swap(_async, other._async); swap(_pAsyncExec, other._pAsyncExec); @@ -116,7 +116,7 @@ std::size_t Statement::execute(bool reset) bool isDone = done(); if (initialized() || paused() || isDone) { - if (_arguments.size()) + if (_arguments.size()) { _pImpl->formatSQL(_arguments); _arguments.clear(); @@ -132,7 +132,7 @@ std::size_t Statement::execute(bool reset) doAsyncExec(); return 0; } - } + } else throw InvalidAccessException("Statement still executing."); } @@ -275,7 +275,7 @@ Statement& Statement::operator , (const Bulk& bulk) if (!_pImpl->isBulkSupported()) throw InvalidAccessException("Bulk not supported by this session."); - if (0 == _pImpl->extractions().size() && + if (0 == _pImpl->extractions().size() && 0 == _pImpl->bindings().size() && _pImpl->bulkExtractionAllowed() && _pImpl->bulkBindingAllowed()) @@ -293,8 +293,8 @@ Statement& Statement::operator , (const Bulk& bulk) Statement& Statement::operator , (BulkFnType) { const Limit& limit(_pImpl->extractionLimit()); - if (limit.isHardLimit() || - limit.isLowerLimit() || + if (limit.isHardLimit() || + limit.isLowerLimit() || Limit::LIMIT_UNLIMITED == limit.value()) { throw InvalidAccessException("Bulk is only allowed with limited extraction," @@ -311,7 +311,7 @@ Statement& Statement::operator , (BulkFnType) Session Statement::session() { - Poco::AutoPtr ps(&impl()->session(), true); + Poco::AutoPtr ps(&impl()->session(), true); return Session(ps); } diff --git a/Data/src/Time.cpp b/Data/src/Time.cpp index de54b96e7..9030f1574 100644 --- a/Data/src/Time.cpp +++ b/Data/src/Time.cpp @@ -52,13 +52,13 @@ Time::~Time() void Time::assign(int hour, int minute, int second) { - if (hour < 0 || hour > 23) + if (hour < 0 || hour > 23) throw InvalidArgumentException("Hour must be between 0 and 23."); - if (minute < 0 || minute > 59) + if (minute < 0 || minute > 59) throw InvalidArgumentException("Minute must be between 0 and 59."); - if (second < 0 || second > 59) + if (second < 0 || second > 59) throw InvalidArgumentException("Second must be between 0 and 59."); _hour = hour; @@ -77,7 +77,7 @@ bool Time::operator < (const Time& time) const { int minute = time.minute(); if (_minute < minute) return true; - else + else if (_minute > minute) return false; else // minutes equal if (_second < time.second()) return true; @@ -94,7 +94,7 @@ Time& Time::operator = (const Var& var) // TODO: determine the version able to handle it properly *this = var.extract