diff --git a/Crypto/Crypto.progen b/Crypto/Crypto.progen
index 769b622c4..d9b676d7a 100644
--- a/Crypto/Crypto.progen
+++ b/Crypto/Crypto.progen
@@ -30,5 +30,3 @@ vc.project.prebuild.release_static_md = xcopy /y ${openssl}\\build\\win${bits}\\
vc.project.prebuild.release_static_mt = xcopy /y ${openssl}\\build\\win${bits}\\lib\\release\\*.lib ..\\lib${dirbits}\\* 1>nul\nexit 0
vc.solution.create = true
vc.solution.include = testsuite\\TestSuite
-vc.solution.create = true
-vc.solution.include = testsuite\\TestSuite
diff --git a/Data/Data_x64_vs90.vcproj b/Data/Data_x64_vs90.vcproj
index 87ca5e1a3..4703b9b53 100644
--- a/Data/Data_x64_vs90.vcproj
+++ b/Data/Data_x64_vs90.vcproj
@@ -1,35 +1,46 @@
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="0"
+ >
+ Name="x64"
+ />
-
+
+
+ CharacterSet="2"
+ >
+ Name="VCPreBuildEventTool"
+ />
+ Name="VCCustomBuildTool"
+ />
+ Name="VCXMLDataGeneratorTool"
+ />
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ Name="VCMIDLTool"
+ />
+ />
+ Name="VCManagedResourceCompilerTool"
+ />
+ Name="VCResourceCompilerTool"
+ />
+ Name="VCPreLinkEventTool"
+ />
+ />
+ Name="VCALinkTool"
+ />
+ Name="VCManifestTool"
+ />
+ Name="VCXDCMakeTool"
+ />
+ Name="VCBscMakeTool"
+ />
+ Name="VCFxCopTool"
+ />
+ Name="VCAppVerifierTool"
+ />
+ Name="VCPostBuildEventTool"
+ />
+ CharacterSet="2"
+ >
+ Name="VCPreBuildEventTool"
+ />
+ Name="VCCustomBuildTool"
+ />
+ Name="VCXMLDataGeneratorTool"
+ />
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ Name="VCMIDLTool"
+ />
+ />
+ Name="VCManagedResourceCompilerTool"
+ />
+ Name="VCResourceCompilerTool"
+ />
+ Name="VCPreLinkEventTool"
+ />
+ />
+ Name="VCALinkTool"
+ />
+ Name="VCManifestTool"
+ />
+ Name="VCXDCMakeTool"
+ />
+ Name="VCBscMakeTool"
+ />
+ Name="VCFxCopTool"
+ />
+ Name="VCAppVerifierTool"
+ />
+ Name="VCPostBuildEventTool"
+ />
+ CharacterSet="2"
+ >
+ Name="VCPreBuildEventTool"
+ />
+ Name="VCCustomBuildTool"
+ />
+ Name="VCXMLDataGeneratorTool"
+ />
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ Name="VCMIDLTool"
+ />
+ />
+ Name="VCManagedResourceCompilerTool"
+ />
+ Name="VCResourceCompilerTool"
+ />
+ Name="VCPreLinkEventTool"
+ />
+ />
+ Name="VCALinkTool"
+ />
+ Name="VCXDCMakeTool"
+ />
+ Name="VCBscMakeTool"
+ />
+ Name="VCFxCopTool"
+ />
+ Name="VCPostBuildEventTool"
+ />
+ CharacterSet="2"
+ >
+ Name="VCPreBuildEventTool"
+ />
+ Name="VCCustomBuildTool"
+ />
+ Name="VCXMLDataGeneratorTool"
+ />
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ Name="VCMIDLTool"
+ />
+ />
+ Name="VCManagedResourceCompilerTool"
+ />
+ Name="VCResourceCompilerTool"
+ />
+ Name="VCPreLinkEventTool"
+ />
+ />
+ Name="VCALinkTool"
+ />
+ Name="VCXDCMakeTool"
+ />
+ Name="VCBscMakeTool"
+ />
+ Name="VCFxCopTool"
+ />
+ Name="VCPostBuildEventTool"
+ />
+ CharacterSet="2"
+ >
+ Name="VCPreBuildEventTool"
+ />
+ Name="VCCustomBuildTool"
+ />
+ Name="VCXMLDataGeneratorTool"
+ />
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ Name="VCMIDLTool"
+ />
+ />
+ Name="VCManagedResourceCompilerTool"
+ />
+ Name="VCResourceCompilerTool"
+ />
+ Name="VCPreLinkEventTool"
+ />
+ />
+ Name="VCALinkTool"
+ />
+ Name="VCXDCMakeTool"
+ />
+ Name="VCBscMakeTool"
+ />
+ Name="VCFxCopTool"
+ />
+ Name="VCPostBuildEventTool"
+ />
+ CharacterSet="2"
+ >
+ Name="VCPreBuildEventTool"
+ />
+ Name="VCCustomBuildTool"
+ />
+ Name="VCXMLDataGeneratorTool"
+ />
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ Name="VCMIDLTool"
+ />
+ />
+ Name="VCManagedResourceCompilerTool"
+ />
+ Name="VCResourceCompilerTool"
+ />
+ Name="VCPreLinkEventTool"
+ />
+ />
+ Name="VCALinkTool"
+ />
+ Name="VCXDCMakeTool"
+ />
+ Name="VCBscMakeTool"
+ />
+ Name="VCFxCopTool"
+ />
+ Name="VCPostBuildEventTool"
+ />
-
+
+
+ Name="DataCore"
+ >
+ Name="Header Files"
+ >
+ RelativePath=".\include\Poco\Data\AbstractBinder.h"
+ >
+
+ RelativePath=".\include\Poco\Data\AbstractBinding.h"
+ >
+
+ RelativePath=".\include\Poco\Data\AbstractExtraction.h"
+ >
+
+ RelativePath=".\include\Poco\Data\AbstractExtractor.h"
+ >
+
+ RelativePath=".\include\Poco\Data\AbstractPreparation.h"
+ >
+
+ RelativePath=".\include\Poco\Data\AbstractPreparator.h"
+ >
+
+ RelativePath=".\include\Poco\Data\AbstractSessionImpl.h"
+ >
+
+ RelativePath=".\include\Poco\Data\AutoTransaction.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Binding.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Bulk.h"
+ >
+
+ RelativePath=".\include\Poco\Data\BulkBinding.h"
+ >
+
+ RelativePath=".\include\Poco\Data\BulkExtraction.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Column.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Connector.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Constants.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Data.h"
+ >
+
+ RelativePath=".\include\Poco\Data\DataException.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Date.h"
+ >
+
+ RelativePath=".\include\Poco\Data\DynamicDateTime.h"
+ >
+
+ RelativePath=".\include\Poco\Data\DynamicLOB.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Extraction.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Limit.h"
+ >
+
+ RelativePath=".\include\Poco\Data\LOB.h"
+ >
+
+ RelativePath=".\include\Poco\Data\LOBStream.h"
+ >
+
+ RelativePath=".\include\Poco\Data\MetaColumn.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Position.h"
+ >
+
+ RelativePath=".\include\Poco\data\Preparation.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Range.h"
+ >
+
+ RelativePath=".\include\Poco\Data\RecordSet.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Row.h"
+ >
+
+ RelativePath=".\include\Poco\Data\RowFilter.h"
+ >
+
+ RelativePath=".\include\Poco\Data\RowFormatter.h"
+ >
+
+ RelativePath=".\include\Poco\Data\RowIterator.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Session.h"
+ >
+
+ RelativePath=".\include\Poco\Data\SessionFactory.h"
+ >
+
+ RelativePath=".\include\Poco\Data\SessionImpl.h"
+ >
+
+ RelativePath=".\include\Poco\Data\SimpleRowFormatter.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Statement.h"
+ >
+
+ RelativePath=".\include\Poco\Data\StatementCreator.h"
+ >
+
+ RelativePath=".\include\Poco\Data\StatementImpl.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Time.h"
+ >
+
+ RelativePath=".\include\Poco\Data\Transaction.h"
+ >
+
+ RelativePath=".\include\Poco\Data\TypeHandler.h"
+ >
+
+ Name="Source Files"
+ >
+ RelativePath=".\src\AbstractBinder.cpp"
+ >
+
+ RelativePath=".\src\AbstractBinding.cpp"
+ >
+
+ RelativePath=".\src\AbstractExtraction.cpp"
+ >
+
+ RelativePath=".\src\AbstractExtractor.cpp"
+ >
+
+ RelativePath=".\src\AbstractPreparation.cpp"
+ >
+
+ RelativePath=".\src\AbstractPreparator.cpp"
+ >
+
+ RelativePath=".\src\Bulk.cpp"
+ >
+
+ RelativePath=".\src\Connector.cpp"
+ >
+
+ RelativePath=".\src\DataException.cpp"
+ >
+
+ RelativePath=".\src\Date.cpp"
+ >
+
+ RelativePath=".\src\DynamicLOB.cpp"
+ >
+
+ RelativePath=".\src\Limit.cpp"
+ >
+
+ RelativePath=".\src\MetaColumn.cpp"
+ >
+
+ RelativePath=".\src\Position.cpp"
+ >
+
+ RelativePath=".\src\Range.cpp"
+ >
+
+ RelativePath=".\src\RecordSet.cpp"
+ >
+
+ RelativePath=".\src\Row.cpp"
+ >
+
+ RelativePath=".\src\RowFilter.cpp"
+ >
+
+ RelativePath=".\src\RowFormatter.cpp"
+ >
+
+ RelativePath=".\src\RowIterator.cpp"
+ >
+
+ RelativePath=".\src\Session.cpp"
+ >
+
+ RelativePath=".\src\SessionFactory.cpp"
+ >
+
+ RelativePath=".\src\SessionImpl.cpp"
+ >
+
+ RelativePath=".\src\SimpleRowFormatter.cpp"
+ >
+
+ RelativePath=".\src\Statement.cpp"
+ >
+
+ RelativePath=".\src\StatementCreator.cpp"
+ >
+
+ RelativePath=".\src\StatementImpl.cpp"
+ >
+
+ RelativePath=".\src\Time.cpp"
+ >
+
+ RelativePath=".\src\Transaction.cpp"
+ >
+
+ Name="SessionPooling"
+ >
+ Name="Header Files"
+ >
+ RelativePath=".\include\Poco\Data\PooledSessionHolder.h"
+ >
+
+ RelativePath=".\include\Poco\Data\PooledSessionImpl.h"
+ >
+
+ RelativePath=".\include\Poco\Data\SessionPool.h"
+ >
+
+ RelativePath=".\include\Poco\Data\SessionPoolContainer.h"
+ >
+
+ Name="Source Files"
+ >
+ RelativePath=".\src\PooledSessionHolder.cpp"
+ >
+
+ RelativePath=".\src\PooledSessionImpl.cpp"
+ >
+
+ RelativePath=".\src\SessionPool.cpp"
+ >
+
+ RelativePath=".\src\SessionPoolContainer.cpp"
+ >
+
+ Name="Logging"
+ >
+ Name="Header Files"
+ >
+ RelativePath=".\include\Poco\Data\ArchiveStrategy.h"
+ >
+
+ RelativePath=".\include\Poco\Data\SQLChannel.h"
+ >
+
+ Name="Source Files"
+ >
+ RelativePath=".\src\ArchiveStrategy.cpp"
+ >
+
+ RelativePath=".\src\SQLChannel.cpp"
+ >
+
-
+
+
diff --git a/Data/ODBC/include/Poco/Data/ODBC/Binder.h b/Data/ODBC/include/Poco/Data/ODBC/Binder.h
index fd3241fbf..0d3c38e34 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/Binder.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/Binder.h
@@ -71,7 +71,7 @@ public:
Binder(const StatementHandle& rStmt,
std::size_t maxFieldSize,
ParameterBinding dataBinding = PB_IMMEDIATE,
- TypeInfo* pDataTypes = 0);
+ const TypeInfo* pDataTypes = 0);
/// Creates the Binder.
~Binder();
diff --git a/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h b/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h
index 466ad937d..a1a2390e3 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h
@@ -30,6 +30,7 @@ namespace Poco {
namespace Data {
namespace ODBC {
+class SessionImpl;
class ODBC_API ConnectionHandle
/// ODBC connection handle class
@@ -60,6 +61,8 @@ private:
const EnvironmentHandle* _pEnvironment;
SQLHDBC _hdbc;
bool _ownsEnvironment;
+
+ friend class Poco::Data::ODBC::SessionImpl;
};
diff --git a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
index 72937bfac..53b08dd11 100644
--- a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
+++ b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h
@@ -70,7 +70,7 @@ public:
~SessionImpl();
/// Destroys the SessionImpl.
- Poco::Data::StatementImpl* createStatementImpl();
+ Poco::SharedPtr createStatementImpl();
/// Returns an ODBC StatementImpl
void open(const std::string& connect = "");
@@ -79,13 +79,13 @@ public:
void close();
/// Closes the connection
- bool isConnected();
+ bool isConnected() const;
/// Returns true if session is connected
void setConnectionTimeout(std::size_t timeout);
/// Sets the session connection timeout value.
- std::size_t getConnectionTimeout();
+ std::size_t getConnectionTimeout() const;
/// Returns the session connection timeout value.
void begin();
@@ -97,61 +97,61 @@ public:
void rollback();
/// Aborts a transaction
- bool isTransaction();
+ bool isTransaction() const;
/// Returns true iff a transaction is in progress.
const std::string& connectorName() const;
/// Returns the name of the connector.
- bool canTransact();
+ bool canTransact() const;
/// Returns true if connection is transaction-capable.
void setTransactionIsolation(Poco::UInt32 ti);
/// Sets the transaction isolation level.
- Poco::UInt32 getTransactionIsolation();
+ Poco::UInt32 getTransactionIsolation() const;
/// Returns the transaction isolation level.
- bool hasTransactionIsolation(Poco::UInt32);
+ bool hasTransactionIsolation(Poco::UInt32) const;
/// Returns true iff the transaction isolation level corresponding
/// to the supplied bitmask is supported.
- bool isTransactionIsolation(Poco::UInt32);
+ bool isTransactionIsolation(Poco::UInt32) const;
/// Returns true iff the transaction isolation level corresponds
/// to the supplied bitmask.
void autoCommit(const std::string&, bool val);
/// Sets autocommit property for the session.
- bool isAutoCommit(const std::string& name="");
+ bool isAutoCommit(const std::string& name="") const;
/// Returns autocommit property value.
void autoBind(const std::string&, bool val);
/// Sets automatic binding for the session.
- bool isAutoBind(const std::string& name="");
+ bool isAutoBind(const std::string& name="") const;
/// Returns true if binding is automatic for this session.
void autoExtract(const std::string&, bool val);
/// Sets automatic extraction for the session.
- bool isAutoExtract(const std::string& name="");
+ bool isAutoExtract(const std::string& name="") const;
/// Returns true if extraction is automatic for this session.
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="");
+ Poco::Any getMaxFieldSize(const std::string& rName="") const;
/// Returns the max field size (the default used when column size is unknown).
- int maxStatementLength();
+ int maxStatementLength() const;
/// Returns maximum length of SQL statement allowed by driver.
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&);
+ Poco::Any getQueryTimeout(const std::string&) const;
/// Returns the timeout (in seconds) for queries,
/// or -1 if no timeout has been set.
@@ -162,7 +162,7 @@ public:
const ConnectionHandle& dbc() const;
/// Returns the connection handle.
- Poco::Any dataTypeInfo(const std::string& rName="");
+ Poco::Any dataTypeInfo(const std::string& rName="") const;
/// Returns the data types information.
private:
@@ -171,19 +171,23 @@ private:
static const int FUNCTIONS = SQL_API_ODBC3_ALL_FUNCTIONS_SIZE;
- void checkError(SQLRETURN rc, const std::string& msg="");
+ void checkError(SQLRETURN rc, const std::string& msg="") const;
- Poco::UInt32 getDefaultTransactionIsolation();
+ Poco::UInt32 getDefaultTransactionIsolation() const;
- Poco::UInt32 transactionIsolation(SQLULEN isolation);
+ static Poco::UInt32 transactionIsolation(SQLULEN isolation);
+
+ void setTransactionIsolationImpl(Poco::UInt32 ti) const;
+ /// Sets the transaction isolation level.
+ /// Called internally from getTransactionIsolation()
std::string _connector;
- const ConnectionHandle _db;
+ mutable ConnectionHandle _db;
Poco::Any _maxFieldSize;
bool _autoBind;
bool _autoExtract;
TypeInfo _dataTypes;
- char _canTransact;
+ mutable char _canTransact;
bool _inTransaction;
int _queryTimeout;
Poco::FastMutex _mutex;
@@ -193,7 +197,7 @@ private:
///
/// inlines
///
-inline void SessionImpl::checkError(SQLRETURN rc, const std::string& msg)
+inline void SessionImpl::checkError(SQLRETURN rc, const std::string& msg) const
{
if (Utility::isError(rc))
throw ConnectionException(_db, msg);
@@ -212,7 +216,7 @@ inline void SessionImpl::setMaxFieldSize(const std::string& rName, const Poco::A
}
-inline Poco::Any SessionImpl::getMaxFieldSize(const std::string& rName)
+inline Poco::Any SessionImpl::getMaxFieldSize(const std::string& rName) const
{
return _maxFieldSize;
}
@@ -224,7 +228,7 @@ inline void SessionImpl::setDataTypeInfo(const std::string& rName, const Poco::A
}
-inline Poco::Any SessionImpl::dataTypeInfo(const std::string& rName)
+inline Poco::Any SessionImpl::dataTypeInfo(const std::string& rName) const
{
return &_dataTypes;
}
@@ -236,7 +240,7 @@ inline void SessionImpl::autoBind(const std::string&, bool val)
}
-inline bool SessionImpl::isAutoBind(const std::string& name)
+inline bool SessionImpl::isAutoBind(const std::string& name) const
{
return _autoBind;
}
@@ -248,7 +252,7 @@ inline void SessionImpl::autoExtract(const std::string&, bool val)
}
-inline bool SessionImpl::isAutoExtract(const std::string& name)
+inline bool SessionImpl::isAutoExtract(const std::string& name) const
{
return _autoExtract;
}
@@ -260,7 +264,7 @@ inline const std::string& SessionImpl::connectorName() const
}
-inline bool SessionImpl::isTransactionIsolation(Poco::UInt32 ti)
+inline bool SessionImpl::isTransactionIsolation(Poco::UInt32 ti) const
{
return 0 != (ti & getTransactionIsolation());
}
@@ -272,7 +276,7 @@ inline void SessionImpl::setQueryTimeout(const std::string&, const Poco::Any& va
}
-inline Poco::Any SessionImpl::getQueryTimeout(const std::string&)
+inline Poco::Any SessionImpl::getQueryTimeout(const std::string&) const
{
return _queryTimeout;
}
diff --git a/Data/ODBC/src/Binder.cpp b/Data/ODBC/src/Binder.cpp
index 63fdedcb3..1031b77ec 100644
--- a/Data/ODBC/src/Binder.cpp
+++ b/Data/ODBC/src/Binder.cpp
@@ -29,7 +29,7 @@ namespace ODBC {
Binder::Binder(const StatementHandle& rStmt,
std::size_t maxFieldSize,
Binder::ParameterBinding dataBinding,
- TypeInfo* pDataTypes):
+ const TypeInfo* pDataTypes):
_rStmt(rStmt),
_paramBinding(dataBinding),
_pTypeInfo(pDataTypes),
diff --git a/Data/ODBC/src/Extractor.cpp b/Data/ODBC/src/Extractor.cpp
index 0961fa2b5..fe08a86fa 100644
--- a/Data/ODBC/src/Extractor.cpp
+++ b/Data/ODBC/src/Extractor.cpp
@@ -68,7 +68,24 @@ bool Extractor::extractBoundImpl(std::size_t pos, UTF16String& val)
typedef UTF16String::value_type CharT;
if (isNull(pos)) return false;
std::size_t dataSize = _pPreparator->actualDataSize(pos);
- CharT* sp = AnyCast(_pPreparator->at(pos));
+ //CharT* sp = AnyCast(_pPreparator->at(pos));
+ CharT* sp = 0;
+ UTF16String us;
+ const type_info& ti = _pPreparator->at(pos).type();
+ if (ti == typeid(CharT*))
+ {
+ sp = AnyCast(_pPreparator->at(pos));
+ }
+ else if (ti == typeid(char*))
+ {
+ std::string s(AnyCast(_pPreparator->at(pos)));
+ Poco::UnicodeConverter::convert(s, us);
+ sp = const_cast(us.c_str());
+ }
+ else
+ {
+ throw Poco::Data::ExtractException("Unsupported string type: " + std::string(ti.name()));
+ }
std::size_t len = Poco::UnicodeConverter::UTFStrlen(sp);
if (len < dataSize) dataSize = len;
checkDataSize(dataSize);
diff --git a/Data/ODBC/src/ODBCStatementImpl.cpp b/Data/ODBC/src/ODBCStatementImpl.cpp
index b209fe772..11f5ed09f 100644
--- a/Data/ODBC/src/ODBCStatementImpl.cpp
+++ b/Data/ODBC/src/ODBCStatementImpl.cpp
@@ -86,11 +86,11 @@ void ODBCStatementImpl::compileImpl()
Binder::ParameterBinding bind = session().getFeature("autoBind") ?
Binder::PB_IMMEDIATE : Binder::PB_AT_EXEC;
- TypeInfo* pDT = 0;
+ const TypeInfo* pDT = 0;
try
{
Poco::Any dti = session().getProperty("dataTypeInfo");
- pDT = AnyCast(dti);
+ pDT = AnyCast(dti);
}
catch (NotSupportedException&)
{
diff --git a/Data/ODBC/src/SessionImpl.cpp b/Data/ODBC/src/SessionImpl.cpp
index 99e7ff340..aeae5266a 100644
--- a/Data/ODBC/src/SessionImpl.cpp
+++ b/Data/ODBC/src/SessionImpl.cpp
@@ -85,7 +85,7 @@ SessionImpl::~SessionImpl()
}
-Poco::Data::StatementImpl* SessionImpl::createStatementImpl()
+Poco::Data::StatementImpl::Ptr SessionImpl::createStatementImpl()
{
return new ODBCStatementImpl(*this);
}
@@ -164,7 +164,7 @@ void SessionImpl::open(const std::string& connect)
}
-bool SessionImpl::isConnected()
+bool SessionImpl::isConnected() const
{
SQLULEN value = 0;
@@ -189,7 +189,7 @@ void SessionImpl::setConnectionTimeout(std::size_t timeout)
}
-std::size_t SessionImpl::getConnectionTimeout()
+std::size_t SessionImpl::getConnectionTimeout() const
{
SQLULEN value = 0;
@@ -203,7 +203,7 @@ std::size_t SessionImpl::getConnectionTimeout()
}
-bool SessionImpl::canTransact()
+bool SessionImpl::canTransact() const
{
if (ODBC_TXN_CAPABILITY_UNKNOWN == _canTransact)
{
@@ -221,6 +221,12 @@ bool SessionImpl::canTransact()
void SessionImpl::setTransactionIsolation(Poco::UInt32 ti)
+{
+ setTransactionIsolationImpl(ti);
+}
+
+
+void SessionImpl::setTransactionIsolationImpl(Poco::UInt32 ti) const
{
#if POCO_PTR_IS_64_BIT
Poco::UInt64 isolation = 0;
@@ -244,7 +250,7 @@ void SessionImpl::setTransactionIsolation(Poco::UInt32 ti)
}
-Poco::UInt32 SessionImpl::getTransactionIsolation()
+Poco::UInt32 SessionImpl::getTransactionIsolation() const
{
SQLULEN isolation = 0;
checkError(SQLGetConnectAttr(_db, SQL_ATTR_TXN_ISOLATION,
@@ -256,20 +262,20 @@ Poco::UInt32 SessionImpl::getTransactionIsolation()
}
-bool SessionImpl::hasTransactionIsolation(Poco::UInt32 ti)
+bool SessionImpl::hasTransactionIsolation(Poco::UInt32 ti) const
{
if (isTransaction()) throw InvalidAccessException();
bool retval = true;
Poco::UInt32 old = getTransactionIsolation();
- try { setTransactionIsolation(ti); }
+ try { setTransactionIsolationImpl(ti); }
catch (Poco::Exception&) { retval = false; }
- setTransactionIsolation(old);
+ setTransactionIsolationImpl(old);
return retval;
}
-Poco::UInt32 SessionImpl::getDefaultTransactionIsolation()
+Poco::UInt32 SessionImpl::getDefaultTransactionIsolation() const
{
SQLUINTEGER isolation = 0;
checkError(SQLGetInfo(_db, SQL_DEFAULT_TXN_ISOLATION,
@@ -317,7 +323,7 @@ void SessionImpl::autoCommit(const std::string&, bool val)
}
-bool SessionImpl::isAutoCommit(const std::string&)
+bool SessionImpl::isAutoCommit(const std::string&) const
{
SQLULEN value = 0;
@@ -331,7 +337,7 @@ bool SessionImpl::isAutoCommit(const std::string&)
}
-bool SessionImpl::isTransaction()
+bool SessionImpl::isTransaction() const
{
if (!canTransact()) return false;
@@ -397,7 +403,7 @@ void SessionImpl::close()
}
-int SessionImpl::maxStatementLength()
+int SessionImpl::maxStatementLength() const
{
SQLUINTEGER info;
SQLRETURN rc = 0;
diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
index dbf805811..fc90a070e 100644
--- a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
+++ b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp
@@ -41,11 +41,11 @@ using Poco::DynamicAny;
using Poco::DateTime;
-#define ORACLE_ODBC_DRIVER "Oracle in OraDB12Home1"
+#define ORACLE_ODBC_DRIVER "Oracle in XE"
#define ORACLE_DSN "PocoDataOracleTest"
#define ORACLE_SERVER POCO_ODBC_TEST_DATABASE_SERVER
#define ORACLE_PORT "1521"
-#define ORACLE_SID "ORCL"
+#define ORACLE_SID "XE"
#define ORACLE_UID "poco"
#define ORACLE_PWD "poco"
diff --git a/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h b/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h
index 6e8c749a2..655b8aae3 100644
--- a/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h
+++ b/Data/SQLite/include/Poco/Data/SQLite/SessionImpl.h
@@ -48,7 +48,7 @@ public:
~SessionImpl();
/// Destroys the SessionImpl.
- Poco::Data::StatementImpl* createStatementImpl();
+ Poco::SharedPtr createStatementImpl();
/// Returns an SQLite StatementImpl.
void open(const std::string& connect = "");
@@ -68,14 +68,14 @@ public:
void close();
/// Closes the session.
- bool isConnected();
+ bool isConnected() const;
/// Returns true if connected, false otherwise.
void setConnectionTimeout(std::size_t timeout);
/// Sets the session connection timeout value.
/// Timeout value is in seconds.
- std::size_t getConnectionTimeout();
+ std::size_t getConnectionTimeout() const;
/// Returns the session connection timeout value.
/// Timeout value is in seconds.
@@ -88,30 +88,30 @@ public:
void rollback();
/// Aborts a transaction.
- bool canTransact();
+ bool canTransact() const;
/// Returns true if session has transaction capabilities.
- bool isTransaction();
+ bool isTransaction() const;
/// Returns true iff a transaction is a transaction is in progress, false otherwise.
void setTransactionIsolation(Poco::UInt32 ti);
/// Sets the transaction isolation level.
- Poco::UInt32 getTransactionIsolation();
+ Poco::UInt32 getTransactionIsolation() const;
/// Returns the transaction isolation level.
- bool hasTransactionIsolation(Poco::UInt32 ti);
+ bool hasTransactionIsolation(Poco::UInt32 ti) const;
/// Returns true iff the transaction isolation level corresponding
/// to the supplied bitmask is supported.
- bool isTransactionIsolation(Poco::UInt32 ti);
+ bool isTransactionIsolation(Poco::UInt32 ti) const;
/// Returns true iff the transaction isolation level corresponds
/// to the supplied bitmask.
void autoCommit(const std::string&, bool val);
/// Sets autocommit property for the session.
- bool isAutoCommit(const std::string& name="");
+ bool isAutoCommit(const std::string& name="") const;
/// Returns autocommit property value.
const std::string& connectorName() const;
@@ -119,7 +119,7 @@ public:
protected:
void setConnectionTimeout(const std::string& prop, const Poco::Any& value);
- Poco::Any getConnectionTimeout(const std::string& prop);
+ Poco::Any getConnectionTimeout(const std::string& prop) const;
private:
std::string _connector;
@@ -127,6 +127,7 @@ private:
bool _connected;
bool _isTransaction;
int _timeout;
+ mutable
Poco::Mutex _mutex;
static const std::string DEFERRED_BEGIN_TRANSACTION;
@@ -138,13 +139,13 @@ private:
//
// inlines
//
-inline bool SessionImpl::canTransact()
+inline bool SessionImpl::canTransact() const
{
return true;
}
-inline bool SessionImpl::isTransaction()
+inline bool SessionImpl::isTransaction() const
{
return _isTransaction;
}
@@ -156,7 +157,7 @@ inline const std::string& SessionImpl::connectorName() const
}
-inline std::size_t SessionImpl::getConnectionTimeout()
+inline std::size_t SessionImpl::getConnectionTimeout() const
{
return static_cast(_timeout/1000);
}
diff --git a/Data/SQLite/src/SessionImpl.cpp b/Data/SQLite/src/SessionImpl.cpp
index 4975f40a1..88da57159 100644
--- a/Data/SQLite/src/SessionImpl.cpp
+++ b/Data/SQLite/src/SessionImpl.cpp
@@ -74,7 +74,7 @@ SessionImpl::~SessionImpl()
}
-Poco::Data::StatementImpl* SessionImpl::createStatementImpl()
+Poco::Data::StatementImpl::Ptr SessionImpl::createStatementImpl()
{
poco_check_ptr (_pDB);
return new SQLiteStatementImpl(*this, _pDB);
@@ -118,20 +118,20 @@ void SessionImpl::setTransactionIsolation(Poco::UInt32 ti)
}
-Poco::UInt32 SessionImpl::getTransactionIsolation()
+Poco::UInt32 SessionImpl::getTransactionIsolation() const
{
return Session::TRANSACTION_READ_COMMITTED;
}
-bool SessionImpl::hasTransactionIsolation(Poco::UInt32 ti)
+bool SessionImpl::hasTransactionIsolation(Poco::UInt32 ti) const
{
if (ti == Session::TRANSACTION_READ_COMMITTED) return true;
return false;
}
-bool SessionImpl::isTransactionIsolation(Poco::UInt32 ti)
+bool SessionImpl::isTransactionIsolation(Poco::UInt32 ti) const
{
if (ti == Session::TRANSACTION_READ_COMMITTED) return true;
return false;
@@ -182,7 +182,7 @@ void SessionImpl::close()
{
if (_pDB)
{
- sqlite3_close(_pDB);
+ sqlite3_close_v2(_pDB);
_pDB = 0;
}
@@ -190,7 +190,7 @@ void SessionImpl::close()
}
-bool SessionImpl::isConnected()
+bool SessionImpl::isConnected() const
{
return _connected;
}
@@ -211,7 +211,7 @@ void SessionImpl::setConnectionTimeout(const std::string& prop, const Poco::Any&
}
-Poco::Any SessionImpl::getConnectionTimeout(const std::string& prop)
+Poco::Any SessionImpl::getConnectionTimeout(const std::string& prop) const
{
return Poco::Any(_timeout/1000);
}
@@ -227,7 +227,7 @@ void SessionImpl::autoCommit(const std::string&, bool)
}
-bool SessionImpl::isAutoCommit(const std::string&)
+bool SessionImpl::isAutoCommit(const std::string&) const
{
Poco::Mutex::ScopedLock l(_mutex);
return (0 != sqlite3_get_autocommit(_pDB));
diff --git a/Data/include/Poco/Data/AbstractSessionImpl.h b/Data/include/Poco/Data/AbstractSessionImpl.h
index 97b4fe149..7cd76cdea 100644
--- a/Data/include/Poco/Data/AbstractSessionImpl.h
+++ b/Data/include/Poco/Data/AbstractSessionImpl.h
@@ -41,13 +41,13 @@ public:
typedef void (C::*FeatureSetter)(const std::string&, bool);
/// The setter method for a feature.
- typedef bool (C::*FeatureGetter)(const std::string&);
+ 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&);
+ typedef Poco::Any (C::*PropertyGetter)(const std::string&) const;
/// The getter method for a property.
AbstractSessionImpl(const std::string& connectionString,
@@ -187,7 +187,7 @@ public:
_storage = Poco::RefAnyCast(value);
}
- Poco::Any getStorage(const std::string& name="")
+ Poco::Any getStorage(const std::string& name="") const
/// Returns the storage type
{
return _storage;
@@ -199,7 +199,7 @@ public:
_handle = handle;
}
- Poco::Any getHandle(const std::string& name="")
+ Poco::Any getHandle(const std::string& name="") const
/// Returns the native session handle.
{
return _handle;
@@ -211,7 +211,7 @@ public:
_bulk = bulk;
}
- bool getBulk(const std::string& name="")
+ bool getBulk(const std::string& name="") const
/// Returns the execution type
{
return _bulk;
@@ -229,7 +229,7 @@ public:
_emptyStringIsNull = emptyStringIsNull;
}
- bool getEmptyStringIsNull(const std::string& name="")
+ bool getEmptyStringIsNull(const std::string& name="") const
/// Returns the setting for the behavior regarding empty variable
/// length strings. See setEmptyStringIsNull(const std::string&, bool)
/// and this class documentation for feature rationale and details.
@@ -250,7 +250,7 @@ public:
_forceEmptyString = forceEmptyString;
}
- bool getForceEmptyString(const std::string& name="")
+ bool getForceEmptyString(const std::string& name="") const
/// Returns the setting for the behavior regarding empty variable
/// length strings. See setForceEmptyString(const std::string&, bool)
/// and this class documentation for feature rationale and details.
diff --git a/Data/include/Poco/Data/PooledSessionImpl.h b/Data/include/Poco/Data/PooledSessionImpl.h
index 1d11028ee..6c1b9f2f1 100644
--- a/Data/include/Poco/Data/PooledSessionImpl.h
+++ b/Data/include/Poco/Data/PooledSessionImpl.h
@@ -21,6 +21,7 @@
#include "Poco/Data/Data.h"
#include "Poco/Data/SessionImpl.h"
#include "Poco/Data/PooledSessionHolder.h"
+#include "Poco/Data/StatementImpl.h"
#include "Poco/AutoPtr.h"
@@ -43,22 +44,21 @@ public:
~PooledSessionImpl();
/// Destroys the PooledSessionImpl.
- // SessionImpl
- StatementImpl* createStatementImpl();
+ StatementImpl::Ptr createStatementImpl();
void begin();
void commit();
void rollback();
void open(const std::string& connect = "");
void close();
- bool isConnected();
+ bool isConnected() const;
void setConnectionTimeout(std::size_t timeout);
- std::size_t getConnectionTimeout();
- bool canTransact();
- bool isTransaction();
+ std::size_t getConnectionTimeout() const;
+ bool canTransact() const;
+ bool isTransaction()const ;
void setTransactionIsolation(Poco::UInt32);
- Poco::UInt32 getTransactionIsolation();
- bool hasTransactionIsolation(Poco::UInt32);
- bool isTransactionIsolation(Poco::UInt32);
+ Poco::UInt32 getTransactionIsolation() const;
+ bool hasTransactionIsolation(Poco::UInt32) const;
+ bool isTransactionIsolation(Poco::UInt32) const;
const std::string& connectorName() const;
void setFeature(const std::string& name, bool state);
bool getFeature(const std::string& name);
diff --git a/Data/include/Poco/Data/Session.h b/Data/include/Poco/Data/Session.h
index bf96efefa..817ce6835 100644
--- a/Data/include/Poco/Data/Session.h
+++ b/Data/include/Poco/Data/Session.h
@@ -23,6 +23,7 @@
#include "Poco/Data/Statement.h"
#include "Poco/Data/StatementCreator.h"
#include "Poco/Data/Binding.h"
+#include "Poco/SharedPtr.h"
#include "Poco/AutoPtr.h"
#include "Poco/Any.h"
#include
@@ -191,7 +192,7 @@ public:
return _statementCreator << t;
}
- StatementImpl* createStatementImpl();
+ SharedPtr createStatementImpl();
/// Creates a StatementImpl.
void open(const std::string& connect = "");
@@ -313,7 +314,7 @@ private:
//
// inlines
//
-inline StatementImpl* Session::createStatementImpl()
+inline SharedPtr Session::createStatementImpl()
{
return _pImpl->createStatementImpl();
}
diff --git a/Data/include/Poco/Data/SessionImpl.h b/Data/include/Poco/Data/SessionImpl.h
index 223c2bf97..8875eebcb 100644
--- a/Data/include/Poco/Data/SessionImpl.h
+++ b/Data/include/Poco/Data/SessionImpl.h
@@ -22,6 +22,8 @@
#include "Poco/RefCountedObject.h"
#include "Poco/String.h"
#include "Poco/Format.h"
+#include "Poco/SharedPtr.h"
+#include "Poco/AutoPtr.h"
#include "Poco/Any.h"
@@ -37,6 +39,8 @@ class Data_API SessionImpl: public Poco::RefCountedObject
/// SessionImpl objects are noncopyable.
{
public:
+ typedef Poco::AutoPtr Ptr;
+
static const std::size_t LOGIN_TIMEOUT_INFINITE = 0;
/// Infinite connection/login timeout.
@@ -56,7 +60,7 @@ public:
virtual ~SessionImpl();
/// Destroys the SessionImpl.
- virtual StatementImpl* createStatementImpl() = 0;
+ virtual Poco::SharedPtr createStatementImpl() = 0;
/// Creates a StatementImpl.
virtual void open(const std::string& connectionString = "") = 0;
@@ -70,7 +74,7 @@ public:
virtual void close() = 0;
/// Closes the connection.
- virtual bool isConnected() = 0;
+ virtual bool isConnected() const = 0;
/// Returns true if session is connected, false otherwise.
void setLoginTimeout(std::size_t timeout);
@@ -82,7 +86,7 @@ public:
virtual void setConnectionTimeout(std::size_t timeout) = 0;
/// Sets the session connection timeout value.
- virtual std::size_t getConnectionTimeout() = 0;
+ virtual std::size_t getConnectionTimeout() const = 0;
/// Returns the session connection timeout value.
void reconnect();
@@ -97,23 +101,23 @@ public:
virtual void rollback() = 0;
/// Aborts a transaction.
- virtual bool canTransact() = 0;
+ virtual bool canTransact() const = 0;
/// Returns true if session has transaction capabilities.
- virtual bool isTransaction() = 0;
+ virtual bool isTransaction() const = 0;
/// Returns true iff a transaction is a transaction is in progress, false otherwise.
virtual void setTransactionIsolation(Poco::UInt32) = 0;
/// Sets the transaction isolation level.
- virtual Poco::UInt32 getTransactionIsolation() = 0;
+ virtual Poco::UInt32 getTransactionIsolation() const = 0;
/// Returns the transaction isolation level.
- virtual bool hasTransactionIsolation(Poco::UInt32) = 0;
+ virtual bool hasTransactionIsolation(Poco::UInt32) const = 0;
/// Returns true iff the transaction isolation level corresponding
/// to the supplied bitmask is supported.
- virtual bool isTransactionIsolation(Poco::UInt32) = 0;
+ virtual bool isTransactionIsolation(Poco::UInt32) const = 0;
/// Returns true iff the transaction isolation level corresponds
/// to the supplied bitmask.
diff --git a/Data/src/PooledSessionImpl.cpp b/Data/src/PooledSessionImpl.cpp
index 2acf2f9d8..7d238ccc3 100644
--- a/Data/src/PooledSessionImpl.cpp
+++ b/Data/src/PooledSessionImpl.cpp
@@ -42,7 +42,7 @@ PooledSessionImpl::~PooledSessionImpl()
}
-StatementImpl* PooledSessionImpl::createStatementImpl()
+StatementImpl::Ptr PooledSessionImpl::createStatementImpl()
{
return access()->createStatementImpl();
}
@@ -60,7 +60,7 @@ void PooledSessionImpl::commit()
}
-bool PooledSessionImpl::isConnected()
+bool PooledSessionImpl::isConnected() const
{
return access()->isConnected();
}
@@ -72,19 +72,19 @@ void PooledSessionImpl::setConnectionTimeout(std::size_t timeout)
}
-std::size_t PooledSessionImpl::getConnectionTimeout()
+std::size_t PooledSessionImpl::getConnectionTimeout() const
{
return access()->getConnectionTimeout();
}
-bool PooledSessionImpl::canTransact()
+bool PooledSessionImpl::canTransact() const
{
return access()->canTransact();
}
-bool PooledSessionImpl::isTransaction()
+bool PooledSessionImpl::isTransaction() const
{
return access()->isTransaction();
}
@@ -96,19 +96,19 @@ void PooledSessionImpl::setTransactionIsolation(Poco::UInt32 ti)
}
-Poco::UInt32 PooledSessionImpl::getTransactionIsolation()
+Poco::UInt32 PooledSessionImpl::getTransactionIsolation() const
{
return access()->getTransactionIsolation();
}
-bool PooledSessionImpl::hasTransactionIsolation(Poco::UInt32 ti)
+bool PooledSessionImpl::hasTransactionIsolation(Poco::UInt32 ti) const
{
return access()->hasTransactionIsolation(ti);
}
-bool PooledSessionImpl::isTransactionIsolation(Poco::UInt32 ti)
+bool PooledSessionImpl::isTransactionIsolation(Poco::UInt32 ti) const
{
return access()->isTransactionIsolation(ti);
}
diff --git a/Data/testsuite/src/SessionImpl.cpp b/Data/testsuite/src/SessionImpl.cpp
index 837b315e5..4e34412b2 100644
--- a/Data/testsuite/src/SessionImpl.cpp
+++ b/Data/testsuite/src/SessionImpl.cpp
@@ -50,7 +50,7 @@ void SessionImpl::close()
}
-bool SessionImpl::isConnected()
+bool SessionImpl::isConnected() const
{
return _connected;
}
@@ -61,13 +61,13 @@ void SessionImpl::setConnectionTimeout(std::size_t timeout)
}
-std::size_t SessionImpl::getConnectionTimeout()
+std::size_t SessionImpl::getConnectionTimeout() const
{
return 0;
}
-Poco::Data::StatementImpl* SessionImpl::createStatementImpl()
+StatementImpl::Ptr SessionImpl::createStatementImpl()
{
return new TestStatementImpl(*this);
}
@@ -88,13 +88,13 @@ void SessionImpl::rollback()
}
-bool SessionImpl::canTransact()
+bool SessionImpl::canTransact() const
{
return false;
}
-bool SessionImpl::isTransaction()
+bool SessionImpl::isTransaction() const
{
return false;
}
@@ -105,19 +105,19 @@ void SessionImpl::setTransactionIsolation(Poco::UInt32)
}
-Poco::UInt32 SessionImpl::getTransactionIsolation()
+Poco::UInt32 SessionImpl::getTransactionIsolation() const
{
return 0;
}
-bool SessionImpl::hasTransactionIsolation(Poco::UInt32)
+bool SessionImpl::hasTransactionIsolation(Poco::UInt32) const
{
return false;
}
-bool SessionImpl::isTransactionIsolation(Poco::UInt32)
+bool SessionImpl::isTransactionIsolation(Poco::UInt32) const
{
return false;
}
@@ -129,7 +129,7 @@ const std::string& SessionImpl::connectorName() const
}
-bool SessionImpl::getConnected(const std::string& name)
+bool SessionImpl::getConnected(const std::string& name) const
{
return _connected;
}
@@ -147,7 +147,7 @@ void SessionImpl::setF(const std::string& name, bool value)
}
-bool SessionImpl::getF(const std::string& name)
+bool SessionImpl::getF(const std::string& name) const
{
return _f;
}
@@ -159,7 +159,7 @@ void SessionImpl::setP(const std::string& name, const Poco::Any& value)
}
-Poco::Any SessionImpl::getP(const std::string& name)
+Poco::Any SessionImpl::getP(const std::string& name) const
{
return _p;
}
diff --git a/Data/testsuite/src/SessionImpl.h b/Data/testsuite/src/SessionImpl.h
index f10ccc415..3ed3ec6fa 100644
--- a/Data/testsuite/src/SessionImpl.h
+++ b/Data/testsuite/src/SessionImpl.h
@@ -15,6 +15,7 @@
#include "Poco/Data/AbstractSessionImpl.h"
+#include "Poco/Data/StatementImpl.h"
#include "Poco/SharedPtr.h"
#include "Binder.h"
@@ -35,7 +36,7 @@ public:
~SessionImpl();
/// Destroys the SessionImpl.
- Poco::Data::StatementImpl* createStatementImpl();
+ StatementImpl::Ptr createStatementImpl();
/// Returns an test StatementImpl.
void open(const std::string& connectionString = "");
@@ -44,14 +45,14 @@ public:
void close();
/// Closes the session.
- bool isConnected();
+ bool isConnected() const;
/// Returns true if session is connected to the database,
/// false otherwise.
void setConnectionTimeout(std::size_t timeout);
/// Sets the session connection timeout value.
- std::size_t getConnectionTimeout();
+ std::size_t getConnectionTimeout() const;
/// Returns the session connection timeout value.
void begin();
@@ -63,23 +64,23 @@ public:
void rollback();
/// Aborts a transaction.
- bool canTransact();
+ bool canTransact() const;
/// Returns true if session has transaction capabilities.
- bool isTransaction();
+ bool isTransaction() const;
/// Returns true iff a transaction is a transaction is in progress, false otherwise.
void setTransactionIsolation(Poco::UInt32);
/// Sets the transaction isolation level.
- Poco::UInt32 getTransactionIsolation();
+ Poco::UInt32 getTransactionIsolation() const;
/// Returns the transaction isolation level.
- bool hasTransactionIsolation(Poco::UInt32);
+ bool hasTransactionIsolation(Poco::UInt32) const;
/// Returns true iff the transaction isolation level corresponding
/// to the supplied bitmask is supported.
- bool isTransactionIsolation(Poco::UInt32);
+ bool isTransactionIsolation(Poco::UInt32) const;
/// Returns true iff the transaction isolation level corresponds
/// to the supplied bitmask.
@@ -87,15 +88,15 @@ public:
/// Returns the name of the connector.
void setConnected(const std::string& name, bool value);
- bool getConnected(const std::string& name);
+ bool getConnected(const std::string& name) const;
/// Sets/gets the connected property.
/// This is normally done by implementation
/// when a database connection loss is detected.
void setF(const std::string& name, bool value);
- bool getF(const std::string& name);
+ bool getF(const std::string& name) const;
void setP(const std::string& name, const Poco::Any& value);
- Poco::Any getP(const std::string& name);
+ Poco::Any getP(const std::string& name) const;
private:
bool _f;
diff --git a/Foundation/Foundation_x64_vs90.sln b/Foundation/Foundation_x64_vs90.sln
index 5a370de10..14e40256c 100644
--- a/Foundation/Foundation_x64_vs90.sln
+++ b/Foundation/Foundation_x64_vs90.sln
@@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Foundation_x64_vs90.vcproj", "{B01196CC-B693-4548-8464-2FF60499E73F}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_x64_vs90.vcproj", "{C812E0B9-69A9-4FA1-A1D4-161CF677BD10}"
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_x64_vs90.vcproj", "{F1EE93DF-347F-4CB3-B191-C4E63F38E972}"
ProjectSection(ProjectDependencies) = postProject
{B01196CC-B693-4548-8464-2FF60499E73F} = {B01196CC-B693-4548-8464-2FF60499E73F}
EndProjectSection
@@ -10,49 +10,49 @@ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
debug_shared|x64 = debug_shared|x64
- release_shared|x64 = release_shared|x64
- debug_static_mt|x64 = debug_static_mt|x64
- release_static_mt|x64 = release_static_mt|x64
debug_static_md|x64 = debug_static_md|x64
+ debug_static_mt|x64 = debug_static_mt|x64
+ release_shared|x64 = release_shared|x64
release_static_md|x64 = release_static_md|x64
+ release_static_mt|x64 = release_static_mt|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|x64.ActiveCfg = debug_shared|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|x64.Build.0 = debug_shared|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|x64.Deploy.0 = debug_shared|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.ActiveCfg = release_shared|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.Build.0 = release_shared|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.Deploy.0 = release_shared|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.Build.0 = release_static_mt|x64
- {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|x64.Build.0 = debug_static_md|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.ActiveCfg = release_shared|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.Build.0 = release_shared|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.Deploy.0 = release_shared|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|x64.ActiveCfg = release_static_md|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|x64.Build.0 = release_static_md|x64
{B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|x64.Deploy.0 = release_static_md|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_shared|x64.ActiveCfg = debug_shared|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_shared|x64.Build.0 = debug_shared|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_shared|x64.Deploy.0 = debug_shared|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_shared|x64.ActiveCfg = release_shared|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_shared|x64.Build.0 = release_shared|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_shared|x64.Deploy.0 = release_shared|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_static_mt|x64.Build.0 = debug_static_mt|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_static_mt|x64.ActiveCfg = release_static_mt|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_static_mt|x64.Build.0 = release_static_mt|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_static_mt|x64.Deploy.0 = release_static_mt|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_static_md|x64.ActiveCfg = debug_static_md|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_static_md|x64.Build.0 = debug_static_md|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.debug_static_md|x64.Deploy.0 = debug_static_md|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_static_md|x64.ActiveCfg = release_static_md|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_static_md|x64.Build.0 = release_static_md|x64
- {C812E0B9-69A9-4FA1-A1D4-161CF677BD10}.release_static_md|x64.Deploy.0 = release_static_md|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.Build.0 = release_static_mt|x64
+ {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|x64.ActiveCfg = debug_shared|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|x64.Build.0 = debug_shared|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|x64.Deploy.0 = debug_shared|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|x64.ActiveCfg = debug_static_md|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|x64.Build.0 = debug_static_md|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|x64.Deploy.0 = debug_static_md|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|x64.Build.0 = debug_static_mt|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|x64.ActiveCfg = release_shared|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|x64.Build.0 = release_shared|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|x64.Deploy.0 = release_shared|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|x64.ActiveCfg = release_static_md|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|x64.Build.0 = release_static_md|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|x64.Deploy.0 = release_static_md|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|x64.ActiveCfg = release_static_mt|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|x64.Build.0 = release_static_mt|x64
+ {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|x64.Deploy.0 = release_static_mt|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE