SQLite fixes; minor cosmetic fixes

This commit is contained in:
Guenter Obiltschnig
2007-06-13 15:11:21 +00:00
parent 8b374cd84b
commit 0b2b989a95
73 changed files with 222 additions and 138 deletions

View File

@@ -1,7 +1,7 @@
// //
// Binder.h // Binder.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Binder.h#3 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Binder.h#5 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Diagnostics.h // Diagnostics.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h#2 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h#4 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Extractor.h // Extractor.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Extractor.h#3 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Extractor.h#5 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// ODBCException.h // ODBCException.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h#2 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h#4 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// ODBCStatementImpl.h // ODBCStatementImpl.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h#4 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h#5 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Preparation.h // Preparation.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Preparation.h#3 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Preparation.h#5 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// SessionImpl.h // SessionImpl.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h#3 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h#4 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// TypeInfo.h // TypeInfo.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h#3 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h#1 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Utility.h // Utility.h
// //
// $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Utility.h#3 $ // $Id: //poco/Main/Data/ODBC/include/Poco/Data/ODBC/Utility.h#4 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Binder.cpp // Binder.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/Binder.cpp#2 $ // $Id: //poco/Main/Data/ODBC/src/Binder.cpp#4 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Extractor.cpp // Extractor.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/Extractor.cpp#3 $ // $Id: //poco/Main/Data/ODBC/src/Extractor.cpp#5 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// ODBCColumn.cpp // ODBCColumn.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/ODBCColumn.cpp#4 $ // $Id: //poco/Main/Data/ODBC/src/ODBCColumn.cpp#5 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// ODBCStatementImpl.cpp // ODBCStatementImpl.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/ODBCStatementImpl.cpp#3 $ // $Id: //poco/Main/Data/ODBC/src/ODBCStatementImpl.cpp#5 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Parameter.cpp // Parameter.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/Parameter.cpp#3 $ // $Id: //poco/Main/Data/ODBC/src/Parameter.cpp#5 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Preparation.cpp // Preparation.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/Preparation.cpp#3 $ // $Id: //poco/Main/Data/ODBC/src/Preparation.cpp#5 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// SessionImpl.cpp // SessionImpl.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/SessionImpl.cpp#2 $ // $Id: //poco/Main/Data/ODBC/src/SessionImpl.cpp#3 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// TypeInfo.cpp // TypeInfo.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/TypeInfo.cpp#3 $ // $Id: //poco/Main/Data/ODBC/src/TypeInfo.cpp#1 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// Utility.cpp // Utility.cpp
// //
// $Id: //poco/Main/Data/ODBC/src/Utility.cpp#2 $ // $Id: //poco/Main/Data/ODBC/src/Utility.cpp#3 $
// //
// Library: ODBC // Library: ODBC
// Package: ODBC // Package: ODBC

View File

@@ -1,7 +1,7 @@
// //
// ODBCAccessTest.cpp // ODBCAccessTest.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCAccessTest.cpp#3 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCAccessTest.cpp#5 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCAccessTest.h // ODBCAccessTest.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCAccessTest.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCAccessTest.h#4 $
// //
// Definition of the ODBCAccessTest class. // Definition of the ODBCAccessTest class.
// //

View File

@@ -1,7 +1,7 @@
// //
// ODBCDB2Test.cpp // ODBCDB2Test.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCDB2Test.cpp#3 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCDB2Test.cpp#5 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCDB2Test.h // ODBCDB2Test.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCDB2Test.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCDB2Test.h#4 $
// //
// Definition of the ODBCDB2Test class. // Definition of the ODBCDB2Test class.
// //

View File

@@ -1,7 +1,7 @@
// //
// ODBCMySQLTest.cpp // ODBCMySQLTest.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp#3 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp#5 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCMySQLTest.h // ODBCMySQLTest.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCMySQLTest.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCMySQLTest.h#4 $
// //
// Definition of the ODBCMySQLTest class. // Definition of the ODBCMySQLTest class.
// //

View File

@@ -1,7 +1,7 @@
// //
// ODBCOracleTest.cpp // ODBCOracleTest.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCOracleTest.cpp#3 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCOracleTest.cpp#5 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCOracleTest.h // ODBCOracleTest.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCOracleTest.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCOracleTest.h#4 $
// //
// Definition of the ODBCOracleTest class. // Definition of the ODBCOracleTest class.
// //

View File

@@ -1,7 +1,7 @@
// //
// ODBCPostgreSQLTest.cpp // ODBCPostgreSQLTest.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp#3 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp#5 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCPostgreSQLTest.h // ODBCPostgreSQLTest.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.h#4 $
// //
// Definition of the ODBCPostgreSQLTest class. // Definition of the ODBCPostgreSQLTest class.
// //

View File

@@ -1,7 +1,7 @@
// //
// ODBCSQLServerTest.cpp // ODBCSQLServerTest.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp#3 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp#5 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCSQLServerTest.h // ODBCSQLServerTest.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLServerTest.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLServerTest.h#4 $
// //
// Definition of the ODBCSQLServerTest class. // Definition of the ODBCSQLServerTest class.
// //

View File

@@ -1,7 +1,7 @@
// //
// ODBCSQLiteTest.cpp // ODBCSQLiteTest.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp#3 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp#5 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCSQLiteTest.h // ODBCSQLiteTest.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLiteTest.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCSQLiteTest.h#4 $
// //
// Definition of the ODBCSQLiteTest class. // Definition of the ODBCSQLiteTest class.
// //

View File

@@ -1,7 +1,7 @@
// //
// ODBCTestSuite.cpp // ODBCTestSuite.cpp
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCTestSuite.cpp#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCTestSuite.cpp#4 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// ODBCTestSuite.h // ODBCTestSuite.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCTestSuite.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/ODBCTestSuite.h#4 $
// //
// Definition of the ODBCTestSuite class. // Definition of the ODBCTestSuite class.
// //

View File

@@ -1,7 +1,7 @@
// //
// SQLExecutor.h // SQLExecutor.h
// //
// $Id: //poco/Main/Data/ODBC/testsuite/src/SQLExecutor.h#2 $ // $Id: //poco/Main/Data/ODBC/testsuite/src/SQLExecutor.h#4 $
// //
// Definition of the SQLExecutor class. // Definition of the SQLExecutor class.
// //

View File

@@ -1,7 +1,7 @@
// //
// Binder.h // Binder.h
// //
// $Id: //poco/Main/Data/SQLite/include/Poco/Data/SQLite/Binder.h#3 $ // $Id: //poco/Main/Data/SQLite/include/Poco/Data/SQLite/Binder.h#4 $
// //
// Library: SQLite // Library: SQLite
// Package: SQLite // Package: SQLite
@@ -63,56 +63,58 @@ public:
~Binder(); ~Binder();
/// Destroys the Binder. /// Destroys the Binder.
void bind(std::size_t pos, const Poco::Int8 &val); void bind(std::size_t pos, const Poco::Int8 &val, Direction dir);
/// Binds an Int8. /// Binds an Int8.
void bind(std::size_t pos, const Poco::UInt8 &val); void bind(std::size_t pos, const Poco::UInt8 &val, Direction dir);
/// Binds an UInt8. /// Binds an UInt8.
void bind(std::size_t pos, const Poco::Int16 &val); void bind(std::size_t pos, const Poco::Int16 &val, Direction dir);
/// Binds an Int16. /// Binds an Int16.
void bind(std::size_t pos, const Poco::UInt16 &val); void bind(std::size_t pos, const Poco::UInt16 &val, Direction dir);
/// Binds an UInt16. /// Binds an UInt16.
void bind(std::size_t pos, const Poco::Int32 &val); void bind(std::size_t pos, const Poco::Int32 &val, Direction dir);
/// Binds an Int32. /// Binds an Int32.
void bind(std::size_t pos, const Poco::UInt32 &val); void bind(std::size_t pos, const Poco::UInt32 &val, Direction dir);
/// Binds an UInt32. /// Binds an UInt32.
void bind(std::size_t pos, const Poco::Int64 &val); void bind(std::size_t pos, const Poco::Int64 &val, Direction dir);
/// Binds an Int64. /// Binds an Int64.
void bind(std::size_t pos, const Poco::UInt64 &val); void bind(std::size_t pos, const Poco::UInt64 &val, Direction dir);
/// Binds an UInt64. /// Binds an UInt64.
void bind(std::size_t pos, const bool &val); void bind(std::size_t pos, const bool &val, Direction dir);
/// Binds a boolean. /// Binds a boolean.
void bind(std::size_t pos, const float &val); void bind(std::size_t pos, const float &val, Direction dir);
/// Binds a float. /// Binds a float.
void bind(std::size_t pos, const double &val); void bind(std::size_t pos, const double &val, Direction dir);
/// Binds a double. /// Binds a double.
void bind(std::size_t pos, const char &val); void bind(std::size_t pos, const char &val, Direction dir);
/// Binds a single character. /// Binds a single character.
void bind(std::size_t pos, const char* const &pVal); void bind(std::size_t pos, const char* const &pVal, Direction dir);
/// Binds a const char ptr. /// Binds a const char ptr.
void bind(std::size_t pos, const std::string& val); void bind(std::size_t pos, const std::string& val, Direction dir);
/// Binds a string. /// Binds a string.
void bind(std::size_t pos, const Poco::Data::BLOB& val); void bind(std::size_t pos, const Poco::Data::BLOB& val, Direction dir);
/// Binds a BLOB. /// Binds a BLOB.
void bind(std::size_t pos, const DateTime& val, Direction dir);
/// Binds a DateTime.
private: private:
void checkReturn(int rc); void checkReturn(int rc);
/// Checks the SQLite return code and throws an appropriate exception. /// Checks the SQLite return code and throws an appropriate exception.
private:
sqlite3_stmt* _pStmt; sqlite3_stmt* _pStmt;
}; };
@@ -120,73 +122,73 @@ private:
// //
// inlines // inlines
// //
inline void Binder::bind(std::size_t pos, const Poco::Int8 &val) inline void Binder::bind(std::size_t pos, const Poco::Int8 &val, Direction dir)
{ {
Poco::Int32 tmp = val; Poco::Int32 tmp = val;
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const Poco::UInt8 &val) inline void Binder::bind(std::size_t pos, const Poco::UInt8 &val, Direction dir)
{ {
Poco::Int32 tmp = val; Poco::Int32 tmp = val;
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const Poco::Int16 &val) inline void Binder::bind(std::size_t pos, const Poco::Int16 &val, Direction dir)
{ {
Poco::Int32 tmp = val; Poco::Int32 tmp = val;
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const Poco::UInt16 &val) inline void Binder::bind(std::size_t pos, const Poco::UInt16 &val, Direction dir)
{ {
Poco::Int32 tmp = val; Poco::Int32 tmp = val;
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const Poco::UInt32 &val) inline void Binder::bind(std::size_t pos, const Poco::UInt32 &val, Direction dir)
{ {
Poco::Int32 tmp = static_cast<Poco::Int32>(val); Poco::Int32 tmp = static_cast<Poco::Int32>(val);
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const Poco::UInt64 &val) inline void Binder::bind(std::size_t pos, const Poco::UInt64 &val, Direction dir)
{ {
Poco::Int64 tmp = static_cast<Poco::Int64>(val); Poco::Int64 tmp = static_cast<Poco::Int64>(val);
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const bool &val) inline void Binder::bind(std::size_t pos, const bool &val, Direction dir)
{ {
Poco::Int32 tmp = (val ? 1 : 0); Poco::Int32 tmp = (val ? 1 : 0);
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const float &val) inline void Binder::bind(std::size_t pos, const float &val, Direction dir)
{ {
double tmp = val; double tmp = val;
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const char &val) inline void Binder::bind(std::size_t pos, const char &val, Direction dir)
{ {
Poco::Int32 tmp = val; Poco::Int32 tmp = val;
bind(pos, tmp); bind(pos, tmp, dir);
} }
inline void Binder::bind(std::size_t pos, const char* const &pVal) inline void Binder::bind(std::size_t pos, const char* const &pVal, Direction dir)
{ {
std::string val(pVal); std::string val(pVal);
bind(pos, val); bind(pos, val, dir);
} }

View File

@@ -1,7 +1,7 @@
// //
// Extractor.h // Extractor.h
// //
// $Id: //poco/Main/Data/SQLite/include/Poco/Data/SQLite/Extractor.h#3 $ // $Id: //poco/Main/Data/SQLite/include/Poco/Data/SQLite/Extractor.h#4 $
// //
// Library: SQLite // Library: SQLite
// Package: SQLite // Package: SQLite
@@ -106,6 +106,9 @@ public:
bool extract(std::size_t pos, Poco::Data::BLOB& val); bool extract(std::size_t pos, Poco::Data::BLOB& val);
/// Extracts a BLOB. /// Extracts a BLOB.
bool extract(std::size_t pos, Poco::DateTime& val);
/// Extracts a DateTime.
bool extract(std::size_t pos, Poco::Any& val); bool extract(std::size_t pos, Poco::Any& val);
/// Extracts an Any. /// Extracts an Any.

View File

@@ -1,7 +1,7 @@
// //
// SQLiteStatementImpl.h // SQLiteStatementImpl.h
// //
// $Id: //poco/Main/Data/SQLite/include/Poco/Data/SQLite/SQLiteStatementImpl.h#3 $ // $Id: //poco/Main/Data/SQLite/include/Poco/Data/SQLite/SQLiteStatementImpl.h#4 $
// //
// Library: SQLite // Library: SQLite
// Package: SQLite // Package: SQLite
@@ -61,7 +61,7 @@ class SQLite_API SQLiteStatementImpl: public Poco::Data::StatementImpl
/// Implements statement functionality needed for SQLite /// Implements statement functionality needed for SQLite
{ {
public: public:
SQLiteStatementImpl(sqlite3* pDB); SQLiteStatementImpl(Poco::Data::SessionImpl& rSession, sqlite3* pDB);
/// Creates the SQLiteStatementImpl. /// Creates the SQLiteStatementImpl.
~SQLiteStatementImpl(); ~SQLiteStatementImpl();

View File

@@ -1,7 +1,7 @@
// //
// Binder.cpp // Binder.cpp
// //
// $Id: //poco/Main/Data/SQLite/src/Binder.cpp#4 $ // $Id: //poco/Main/Data/SQLite/src/Binder.cpp#5 $
// //
// Library: SQLite // Library: SQLite
// Package: SQLite // Package: SQLite
@@ -38,10 +38,16 @@
#include "Poco/Data/SQLite/Utility.h" #include "Poco/Data/SQLite/Utility.h"
#include "Poco/Data/BLOB.h" #include "Poco/Data/BLOB.h"
#include "Poco/Exception.h" #include "Poco/Exception.h"
#include "Poco/DateTimeFormatter.h"
#include "Poco/DateTimeFormat.h"
#include "sqlite3.h" #include "sqlite3.h"
#include <cstdlib> #include <cstdlib>
using Poco::DateTimeFormatter;
using Poco::DateTimeFormat;
namespace Poco { namespace Poco {
namespace Data { namespace Data {
namespace SQLite { namespace SQLite {
@@ -58,35 +64,35 @@ Binder::~Binder()
} }
void Binder::bind(std::size_t pos, const Poco::Int32 &val) void Binder::bind(std::size_t pos, const Poco::Int32 &val, Direction dir)
{ {
int rc = sqlite3_bind_int(_pStmt, (int) pos, val); int rc = sqlite3_bind_int(_pStmt, (int) pos, val);
checkReturn(rc); checkReturn(rc);
} }
void Binder::bind(std::size_t pos, const Poco::Int64 &val) void Binder::bind(std::size_t pos, const Poco::Int64 &val, Direction dir)
{ {
int rc = sqlite3_bind_int64(_pStmt, (int) pos, val); int rc = sqlite3_bind_int64(_pStmt, (int) pos, val);
checkReturn(rc); checkReturn(rc);
} }
void Binder::bind(std::size_t pos, const double &val) void Binder::bind(std::size_t pos, const double &val, Direction dir)
{ {
int rc = sqlite3_bind_double(_pStmt, (int) pos, val); int rc = sqlite3_bind_double(_pStmt, (int) pos, val);
checkReturn(rc); checkReturn(rc);
} }
void Binder::bind(std::size_t pos, const std::string& val) void Binder::bind(std::size_t pos, const std::string& val, Direction dir)
{ {
int rc = sqlite3_bind_text(_pStmt, (int) pos, val.c_str(), (int) val.size()*sizeof(char), SQLITE_TRANSIENT); int rc = sqlite3_bind_text(_pStmt, (int) pos, val.c_str(), (int) val.size()*sizeof(char), SQLITE_TRANSIENT);
checkReturn(rc); checkReturn(rc);
} }
void Binder::bind(std::size_t pos, const Poco::Data::BLOB& val) void Binder::bind(std::size_t pos, const Poco::Data::BLOB& val, Direction dir)
{ {
// convert a blob to a an unsigned char* array // convert a blob to a an unsigned char* array
const unsigned char* pData = reinterpret_cast<const unsigned char*>(val.rawContent()); const unsigned char* pData = reinterpret_cast<const unsigned char*>(val.rawContent());
@@ -97,6 +103,13 @@ void Binder::bind(std::size_t pos, const Poco::Data::BLOB& val)
} }
void Binder::bind(std::size_t pos, const DateTime& val, Direction dir)
{
std::string dt(DateTimeFormatter::format(val, DateTimeFormat::ISO8601_FORMAT));
bind(pos, dt, dir);
}
void Binder::checkReturn(int rc) void Binder::checkReturn(int rc)
{ {
if (rc != SQLITE_OK) if (rc != SQLITE_OK)

View File

@@ -1,7 +1,7 @@
// //
// Extractor.cpp // Extractor.cpp
// //
// $Id: //poco/Main/Data/SQLite/src/Extractor.cpp#4 $ // $Id: //poco/Main/Data/SQLite/src/Extractor.cpp#5 $
// //
// Library: SQLite // Library: SQLite
// Package: SQLite // Package: SQLite
@@ -38,11 +38,15 @@
#include "Poco/Data/SQLite/Utility.h" #include "Poco/Data/SQLite/Utility.h"
#include "Poco/Data/BLOB.h" #include "Poco/Data/BLOB.h"
#include "Poco/Data/DataException.h" #include "Poco/Data/DataException.h"
#include "Poco/DateTimeParser.h"
#include "Poco/Exception.h" #include "Poco/Exception.h"
#include "sqlite3.h" #include "sqlite3.h"
#include <cstdlib> #include <cstdlib>
using Poco::DateTimeParser;
namespace Poco { namespace Poco {
namespace Data { namespace Data {
namespace SQLite { namespace SQLite {
@@ -190,6 +194,16 @@ bool Extractor::extract(std::size_t pos, char& val)
} }
bool Extractor::extract(std::size_t pos, DateTime& val)
{
std::string dt;
extract(pos, dt);
int tzd;
DateTimeParser::parse(dt, val, tzd);
return true;
}
bool Extractor::extract(std::size_t pos, Poco::Any& val) bool Extractor::extract(std::size_t pos, Poco::Any& val)
{ {
if (isNull(pos)) return false; if (isNull(pos)) return false;

View File

@@ -1,7 +1,7 @@
// //
// SQLiteStatementImpl.cpp // SQLiteStatementImpl.cpp
// //
// $Id: //poco/Main/Data/SQLite/src/SQLiteStatementImpl.cpp#6 $ // $Id: //poco/Main/Data/SQLite/src/SQLiteStatementImpl.cpp#8 $
// //
// Library: SQLite // Library: SQLite
// Package: SQLite // Package: SQLite
@@ -48,7 +48,8 @@ namespace Data {
namespace SQLite { namespace SQLite {
SQLiteStatementImpl::SQLiteStatementImpl(sqlite3* pDB): SQLiteStatementImpl::SQLiteStatementImpl(Poco::Data::SessionImpl& rSession, sqlite3* pDB):
StatementImpl(rSession),
_pDB(pDB), _pDB(pDB),
_pStmt(0), _pStmt(0),
_stepCalled(false), _stepCalled(false),
@@ -177,13 +178,17 @@ bool SQLiteStatementImpl::hasNext()
// _pStmt is allowed to be null for conditional SQL statements // _pStmt is allowed to be null for conditional SQL statements
if (_pStmt == 0) if (_pStmt == 0)
{ {
_stepCalled = true; _stepCalled = true;
_nextResponse = SQLITE_DONE; _nextResponse = SQLITE_DONE;
return false; return false;
} }
_stepCalled = true; _stepCalled = true;
_nextResponse = sqlite3_step(_pStmt); _nextResponse = sqlite3_step(_pStmt);
if (_nextResponse != SQLITE_ROW && _nextResponse != SQLITE_OK && _nextResponse != SQLITE_DONE)
{
Utility::throwException(_nextResponse);
}
return (_nextResponse == SQLITE_ROW); return (_nextResponse == SQLITE_ROW);
} }

View File

@@ -1,7 +1,7 @@
// //
// SessionImpl.cpp // SessionImpl.cpp
// //
// $Id: //poco/Main/Data/SQLite/src/SessionImpl.cpp#4 $ // $Id: //poco/Main/Data/SQLite/src/SessionImpl.cpp#5 $
// //
// Library: SQLite // Library: SQLite
// Package: SQLite // Package: SQLite
@@ -69,13 +69,13 @@ SessionImpl::~SessionImpl()
Poco::Data::StatementImpl* SessionImpl::createStatementImpl() Poco::Data::StatementImpl* SessionImpl::createStatementImpl()
{ {
poco_check_ptr (_pDB); poco_check_ptr (_pDB);
return new SQLiteStatementImpl(_pDB); return new SQLiteStatementImpl(*this, _pDB);
} }
void SessionImpl::begin() void SessionImpl::begin()
{ {
SQLiteStatementImpl tmp(_pDB); SQLiteStatementImpl tmp(*this, _pDB);
tmp.add(DEFERRED_BEGIN_TRANSACTION); tmp.add(DEFERRED_BEGIN_TRANSACTION);
tmp.execute(); tmp.execute();
} }
@@ -83,7 +83,7 @@ void SessionImpl::begin()
void SessionImpl::commit() void SessionImpl::commit()
{ {
SQLiteStatementImpl tmp(_pDB); SQLiteStatementImpl tmp(*this, _pDB);
tmp.add(COMMIT_TRANSACTION); tmp.add(COMMIT_TRANSACTION);
tmp.execute(); tmp.execute();
} }
@@ -91,7 +91,7 @@ void SessionImpl::commit()
void SessionImpl::rollback() void SessionImpl::rollback()
{ {
SQLiteStatementImpl tmp(_pDB); SQLiteStatementImpl tmp(*this, _pDB);
tmp.add(ABORT_TRANSACTION); tmp.add(ABORT_TRANSACTION);
tmp.execute(); tmp.execute();
} }

View File

@@ -1,7 +1,7 @@
// //
// SQLiteTest.cpp // SQLiteTest.cpp
// //
// $Id: //poco/Main/Data/SQLite/testsuite/src/SQLiteTest.cpp#5 $ // $Id: //poco/Main/Data/SQLite/testsuite/src/SQLiteTest.cpp#7 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.
@@ -38,6 +38,7 @@
#include "Poco/Data/Statement.h" #include "Poco/Data/Statement.h"
#include "Poco/Data/RecordSet.h" #include "Poco/Data/RecordSet.h"
#include "Poco/Data/SQLite/Connector.h" #include "Poco/Data/SQLite/Connector.h"
#include "Poco/Data/TypeHandler.h"
#include "Poco/Tuple.h" #include "Poco/Tuple.h"
#include "Poco/Any.h" #include "Poco/Any.h"
#include "Poco/Exception.h" #include "Poco/Exception.h"
@@ -98,14 +99,14 @@ template <>
class TypeHandler<Person> class TypeHandler<Person>
{ {
public: public:
static void bind(std::size_t pos, const Person& obj, AbstractBinder* pBinder) static void bind(std::size_t pos, const Person& obj, AbstractBinder* pBinder, AbstractBinder::Direction dir)
{ {
// the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3))
poco_assert_dbg (pBinder != 0); poco_assert_dbg (pBinder != 0);
pBinder->bind(pos++, obj.lastName); pBinder->bind(pos++, obj.lastName, dir);
pBinder->bind(pos++, obj.firstName); pBinder->bind(pos++, obj.firstName, dir);
pBinder->bind(pos++, obj.address); pBinder->bind(pos++, obj.address, dir);
pBinder->bind(pos++, obj.age); pBinder->bind(pos++, obj.age, dir);
} }
static void prepare(std::size_t pos, const Person& obj, AbstractPreparation* pPrepare) static void prepare(std::size_t pos, const Person& obj, AbstractPreparation* pPrepare)
@@ -1551,13 +1552,15 @@ void SQLiteTest::testInternalExtraction()
std::string s = rset.value<std::string>(2,1); std::string s = rset.value<std::string>(2,1);
assert ("4" == s); assert ("4" == s);
const Column<int>& col = rset.column<int>(0); typedef std::vector<int> IntVec;
const Column<int, IntVec>& col = rset.column<int, IntVec>(0);
assert (col[0] == 1); assert (col[0] == 1);
try { const Column<int>& col1 = rset.column<int>(100); fail ("must fail"); } try { const Column<int, IntVec>& col1 = rset.column<int, IntVec>(100); fail ("must fail"); }
catch (RangeException&) { } catch (RangeException&) { }
const Column<int>& col1 = rset.column<int>(0); const Column<int, IntVec>& col1 = rset.column<int, IntVec>(0);
assert ("int0" == col1.name()); assert ("int0" == col1.name());
Column<int>::Iterator it = col1.begin(); Column<int>::Iterator it = col1.begin();
Column<int>::Iterator itEnd = col1.end(); Column<int>::Iterator itEnd = col1.end();
@@ -1572,11 +1575,41 @@ void SQLiteTest::testInternalExtraction()
stmt = (tmp << "DELETE FROM Vectors", now); stmt = (tmp << "DELETE FROM Vectors", now);
rset = stmt; rset = stmt;
try { const Column<int>& col1 = rset.column<int>(0); fail ("must fail"); } try { const Column<int, IntVec>& col1 = rset.column<int, IntVec>(0); fail ("must fail"); }
catch (RangeException&) { } catch (RangeException&) { }
} }
void SQLiteTest::testPrimaryKeyConstraint()
{
Session ses (SessionFactory::instance().create(SQLite::Connector::KEY, "dummy.db"));
ses << "DROP TABLE IF EXISTS LogTest", now;
ses << "CREATE TABLE LogTest (Id INTEGER PRIMARY KEY, Time INTEGER, Value INTEGER)", now;
const double value = -200000000000.0;
const Poco::Int64 timeIn = static_cast<Poco::Int64>(22329988776655.0);
int id = 1;
ses.begin();
for(int i = 0; i < 10; i++)
{
try
{
ses << "INSERT INTO LogTest (Id, [Time], Value) VALUES (:id, :time, :value)", use(id), use(timeIn), use(value), now; //lint !e1058
if (i > 0)
fail("must fail");
}
catch(Poco::Exception&)
{
if (i == 0) // the very first insert must work
throw;
}
}
ses.commit();
}
void SQLiteTest::setUp() void SQLiteTest::setUp()
{ {
} }
@@ -1648,6 +1681,7 @@ CppUnit::Test* SQLiteTest::suite()
CppUnit_addTest(pSuite, SQLiteTest, testTuple1); CppUnit_addTest(pSuite, SQLiteTest, testTuple1);
CppUnit_addTest(pSuite, SQLiteTest, testTupleVector1); CppUnit_addTest(pSuite, SQLiteTest, testTupleVector1);
CppUnit_addTest(pSuite, SQLiteTest, testInternalExtraction); CppUnit_addTest(pSuite, SQLiteTest, testInternalExtraction);
CppUnit_addTest(pSuite, SQLiteTest, testPrimaryKeyConstraint);
return pSuite; return pSuite;
} }

View File

@@ -1,7 +1,7 @@
// //
// SQLiteTest.h // SQLiteTest.h
// //
// $Id: //poco/Main/Data/SQLite/testsuite/src/SQLiteTest.h#3 $ // $Id: //poco/Main/Data/SQLite/testsuite/src/SQLiteTest.h#4 $
// //
// Definition of the SQLiteTest class. // Definition of the SQLiteTest class.
// //
@@ -109,6 +109,7 @@ public:
void testTupleVector10(); void testTupleVector10();
void testInternalExtraction(); void testInternalExtraction();
void testPrimaryKeyConstraint();
void setUp(); void setUp();
void tearDown(); void tearDown();

View File

@@ -1,7 +1,7 @@
// //
// AbstractBinder.h // AbstractBinder.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/AbstractBinder.h#10 $ // $Id: //poco/Main/Data/include/Poco/Data/AbstractBinder.h#12 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore
@@ -46,10 +46,13 @@
namespace Poco { namespace Poco {
class DateTime; class DateTime;
namespace Data { namespace Data {
class BLOB; class BLOB;
@@ -128,6 +131,9 @@ public:
}; };
//
// inlines
//
inline bool AbstractBinder::isOutBound(Direction dir) inline bool AbstractBinder::isOutBound(Direction dir)
{ {
return PD_OUT == dir || PD_IN_OUT == dir; return PD_OUT == dir || PD_IN_OUT == dir;

View File

@@ -1,7 +1,7 @@
// //
// AbstractBinding.h // AbstractBinding.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/AbstractBinding.h#4 $ // $Id: //poco/Main/Data/include/Poco/Data/AbstractBinding.h#6 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// AbstractExtractor.h // AbstractExtractor.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/AbstractExtractor.h#8 $ // $Id: //poco/Main/Data/include/Poco/Data/AbstractExtractor.h#9 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore
@@ -46,10 +46,13 @@
namespace Poco { namespace Poco {
class DateTime; class DateTime;
namespace Data { namespace Data {
class BLOB; class BLOB;

View File

@@ -1,7 +1,7 @@
// //
// AbstractPreparation.h // AbstractPreparation.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/AbstractPreparation.h#4 $ // $Id: //poco/Main/Data/include/Poco/Data/AbstractPreparation.h#5 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore
@@ -47,11 +47,14 @@
namespace Poco { namespace Poco {
class DateTime; class DateTime;
class Any; class Any;
namespace Data { namespace Data {
class BLOB; class BLOB;

View File

@@ -1,7 +1,7 @@
// //
// AbstractPrepare.h // AbstractPrepare.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/AbstractPrepare.h#2 $ // $Id: //poco/Main/Data/include/Poco/Data/AbstractPrepare.h#4 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// AbstractSessionImpl.h // AbstractSessionImpl.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/AbstractSessionImpl.h#4 $ // $Id: //poco/Main/Data/include/Poco/Data/AbstractSessionImpl.h#5 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// BLOB.h // BLOB.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/BLOB.h#11 $ // $Id: //poco/Main/Data/include/Poco/Data/BLOB.h#12 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// Binding.h // Binding.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/Binding.h#4 $ // $Id: //poco/Main/Data/include/Poco/Data/Binding.h#6 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// Column.h // Column.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/Column.h#4 $ // $Id: //poco/Main/Data/include/Poco/Data/Column.h#5 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// Extraction.h // Extraction.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/Extraction.h#7 $ // $Id: //poco/Main/Data/include/Poco/Data/Extraction.h#9 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// MetaColumn.h // MetaColumn.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/MetaColumn.h#4 $ // $Id: //poco/Main/Data/include/Poco/Data/MetaColumn.h#5 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// Prepare.h // Prepare.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/Prepare.h#6 $ // $Id: //poco/Main/Data/include/Poco/Data/Prepare.h#8 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// RecordSet.h // RecordSet.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/RecordSet.h#6 $ // $Id: //poco/Main/Data/include/Poco/Data/RecordSet.h#7 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore
@@ -88,14 +88,14 @@ public:
std::size_t columnCount() const; std::size_t columnCount() const;
/// Returns the number of rows in the recordset. /// Returns the number of rows in the recordset.
template<class T, class C> template <class T, class C>
const Column<T,C>& column(const std::string& name) const const Column<T,C>& column(const std::string& name) const
/// Returns the reference to the first Column with the specified name. /// Returns the reference to the first Column with the specified name.
{ {
return column<T,C>(columnPosition<T,C>(name)); return column<T,C>(columnPosition<T,C>(name));
} }
template<class T, class C> template <class T, class C>
const Column<T,C>& column(std::size_t pos) const const Column<T,C>& column(std::size_t pos) const
/// Returns the reference to column at specified location. /// Returns the reference to column at specified location.
{ {
@@ -121,7 +121,7 @@ public:
} }
} }
template<class T> template <class T>
const T& value(std::size_t col, std::size_t row) const const T& value(std::size_t col, std::size_t row) const
/// Returns the reference to data value at [col, row] location. /// Returns the reference to data value at [col, row] location.
{ {
@@ -139,7 +139,7 @@ public:
} }
} }
template<class T> template <class T>
const T& value(const std::string& name, std::size_t row) const const T& value(const std::string& name, std::size_t row) const
/// Returns the reference to data value at named column, row location. /// Returns the reference to data value at named column, row location.
{ {

View File

@@ -1,7 +1,7 @@
// //
// Statement.h // Statement.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/Statement.h#17 $ // $Id: //poco/Main/Data/include/Poco/Data/Statement.h#18 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore
@@ -66,9 +66,9 @@ public:
enum Storage enum Storage
{ {
STORAGE_VECTOR = StatementImpl::STORAGE_VECTOR_IMPL, STORAGE_VECTOR = StatementImpl::STORAGE_VECTOR_IMPL,
STORAGE_LIST = StatementImpl::STORAGE_LIST_IMPL, STORAGE_LIST = StatementImpl::STORAGE_LIST_IMPL,
STORAGE_DEQUE = StatementImpl::STORAGE_DEQUE_IMPL, STORAGE_DEQUE = StatementImpl::STORAGE_DEQUE_IMPL,
STORAGE_UNKNOWN = StatementImpl::STORAGE_UNKNOWN_IMPL STORAGE_UNKNOWN = StatementImpl::STORAGE_UNKNOWN_IMPL
}; };

View File

@@ -1,7 +1,7 @@
// //
// StatementImpl.h // StatementImpl.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/StatementImpl.h#14 $ // $Id: //poco/Main/Data/include/Poco/Data/StatementImpl.h#15 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// TypeHandler.h // TypeHandler.h
// //
// $Id: //poco/Main/Data/include/Poco/Data/TypeHandler.h#11 $ // $Id: //poco/Main/Data/include/Poco/Data/TypeHandler.h#12 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// AbstractBinder.cpp // AbstractBinder.cpp
// //
// $Id: //poco/Main/Data/src/AbstractBinder.cpp#2 $ // $Id: //poco/Main/Data/src/AbstractBinder.cpp#4 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// AbstractBinding.cpp // AbstractBinding.cpp
// //
// $Id: //poco/Main/Data/src/AbstractBinding.cpp#3 $ // $Id: //poco/Main/Data/src/AbstractBinding.cpp#5 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// Statement.cpp // Statement.cpp
// //
// $Id: //poco/Main/Data/src/Statement.cpp#9 $ // $Id: //poco/Main/Data/src/Statement.cpp#11 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// StatementImpl.cpp // StatementImpl.cpp
// //
// $Id: //poco/Main/Data/src/StatementImpl.cpp#19 $ // $Id: //poco/Main/Data/src/StatementImpl.cpp#20 $
// //
// Library: Data // Library: Data
// Package: DataCore // Package: DataCore

View File

@@ -1,7 +1,7 @@
// //
// Binder.cpp // Binder.cpp
// //
// $Id: //poco/Main/Data/testsuite/src/Binder.cpp#3 $ // $Id: //poco/Main/Data/testsuite/src/Binder.cpp#4 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// Binder.h // Binder.h
// //
// $Id: //poco/Main/Data/testsuite/src/Binder.h#3 $ // $Id: //poco/Main/Data/testsuite/src/Binder.h#4 $
// //
// Definition of the Binder class. // Definition of the Binder class.
// //

View File

@@ -1,7 +1,7 @@
// //
// DataTest.cpp // DataTest.cpp
// //
// $Id: //poco/Main/Data/testsuite/src/DataTest.cpp#11 $ // $Id: //poco/Main/Data/testsuite/src/DataTest.cpp#12 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// DataTest.h // DataTest.h
// //
// $Id: //poco/Main/Data/testsuite/src/DataTest.h#5 $ // $Id: //poco/Main/Data/testsuite/src/DataTest.h#6 $
// //
// Definition of the DataTest class. // Definition of the DataTest class.
// //

View File

@@ -1,7 +1,7 @@
// //
// Extractor.cpp // Extractor.cpp
// //
// $Id: //poco/Main/Data/testsuite/src/Extractor.cpp#3 $ // $Id: //poco/Main/Data/testsuite/src/Extractor.cpp#4 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// Extractor.h // Extractor.h
// //
// $Id: //poco/Main/Data/testsuite/src/Extractor.h#4 $ // $Id: //poco/Main/Data/testsuite/src/Extractor.h#5 $
// //
// Definition of the Extractor class. // Definition of the Extractor class.
// //

View File

@@ -1,7 +1,7 @@
// //
// Preparation.cpp // Preparation.cpp
// //
// $Id: //poco/Main/Data/testsuite/src/Preparation.cpp#2 $ // $Id: //poco/Main/Data/testsuite/src/Preparation.cpp#3 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.

View File

@@ -1,7 +1,7 @@
// //
// Preparation.h // Preparation.h
// //
// $Id: //poco/Main/Data/testsuite/src/Preparation.h#2 $ // $Id: //poco/Main/Data/testsuite/src/Preparation.h#3 $
// //
// Definition of the Preparation class. // Definition of the Preparation class.
// //

View File

@@ -1,7 +1,7 @@
// //
// SessionImpl.cpp // SessionImpl.cpp
// //
// $Id: //poco/Main/Data/testsuite/src/SessionImpl.cpp#3 $ // $Id: //poco/Main/Data/testsuite/src/SessionImpl.cpp#4 $
// //
// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. // Copyright (c) 2006, Applied Informatics Software Engineering GmbH.
// and Contributors. // and Contributors.