summaryrefslogtreecommitdiffstats
path: root/connectivity
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-03-23 10:50:14 +0200
committerNoel Grandin <noel@peralex.com>2015-03-23 11:02:11 +0200
commit3e8a7ce7dffcf46a692e5da0b281a104df8d4d95 (patch)
tree1fdb0ad4385724f426c6dbbdc91ce66a4fd3b626 /connectivity
parentfdo#39440 cppcheck cleanliness (diff)
downloadcore-3e8a7ce7dffcf46a692e5da0b281a104df8d4d95.tar.gz
core-3e8a7ce7dffcf46a692e5da0b281a104df8d4d95.zip
Revert "loplugin:constantfunction: connectivity"
it seems to be causing unit-test and build failures This reverts commit 5cbb51c009fa266e8418ef93799ac64e431c22f5. Change-Id: Idc6372f98200b23828aa19b22a75b6b2b640d1ab
Diffstat (limited to 'connectivity')
-rw-r--r--connectivity/source/commontools/parameters.cxx5
-rw-r--r--connectivity/source/commontools/propertyids.cxx193
-rw-r--r--connectivity/source/drivers/mork/MCatalog.cxx3
-rw-r--r--connectivity/source/drivers/mork/MConnection.hxx2
-rw-r--r--connectivity/source/drivers/mork/MQueryHelper.cxx5
-rw-r--r--connectivity/source/drivers/mork/MQueryHelper.hxx1
-rw-r--r--connectivity/source/drivers/mork/MResultSet.cxx72
-rw-r--r--connectivity/source/drivers/mork/MResultSet.hxx2
-rw-r--r--connectivity/source/drivers/mork/MResultSetMetaData.cxx2
-rw-r--r--connectivity/source/drivers/mork/MStatement.cxx49
-rw-r--r--connectivity/source/drivers/mork/MStatement.hxx3
-rw-r--r--connectivity/source/drivers/mork/MTable.hxx2
-rw-r--r--connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx21
-rw-r--r--connectivity/source/drivers/odbc/OResultSet.cxx5
-rw-r--r--connectivity/source/drivers/postgresql/pq_databasemetadata.cxx20
-rw-r--r--connectivity/source/drivers/postgresql/pq_databasemetadata.hxx1
-rw-r--r--connectivity/source/drivers/postgresql/pq_resultsetmetadata.cxx10
-rw-r--r--connectivity/source/drivers/postgresql/pq_resultsetmetadata.hxx2
-rw-r--r--connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx11
-rw-r--r--connectivity/source/inc/odbc/OResultSet.hxx3
20 files changed, 324 insertions, 88 deletions
diff --git a/connectivity/source/commontools/parameters.cxx b/connectivity/source/commontools/parameters.cxx
index 1b512a0464bd..d520e37f7d77 100644
--- a/connectivity/source/commontools/parameters.cxx
+++ b/connectivity/source/commontools/parameters.cxx
@@ -115,6 +115,11 @@ namespace dbtools
}
+ void ParameterManager::disposing( const EventObject& /*_rDisposingEvent*/ )
+ {
+ }
+
+
void ParameterManager::setAllParametersNull()
{
OSL_PRECOND( isAlive(), "ParameterManager::setAllParametersNull: not initialized, or already disposed!" );
diff --git a/connectivity/source/commontools/propertyids.cxx b/connectivity/source/commontools/propertyids.cxx
index 9f0635ecb1ef..5b3d6356f26e 100644
--- a/connectivity/source/commontools/propertyids.cxx
+++ b/connectivity/source/commontools/propertyids.cxx
@@ -22,6 +22,77 @@
namespace dbtools
{
+ const sal_Char* getPROPERTY_QUERYTIMEOUT() { return "QueryTimeOut"; }
+ const sal_Char* getPROPERTY_MAXFIELDSIZE() { return "MaxFieldSize"; }
+ const sal_Char* getPROPERTY_MAXROWS() { return "MaxRows"; }
+ const sal_Char* getPROPERTY_CURSORNAME() { return "CursorName"; }
+ const sal_Char* getPROPERTY_RESULTSETCONCURRENCY() { return "ResultSetConcurrency"; }
+ const sal_Char* getPROPERTY_RESULTSETTYPE() { return "ResultSetType"; }
+ const sal_Char* getPROPERTY_FETCHDIRECTION() { return "FetchDirection"; }
+ const sal_Char* getPROPERTY_FETCHSIZE() { return "FetchSize"; }
+ const sal_Char* getPROPERTY_ESCAPEPROCESSING() { return "EscapeProcessing"; }
+ const sal_Char* getPROPERTY_USEBOOKMARKS() { return "UseBookmarks"; }
+
+ const sal_Char* getPROPERTY_NAME() { return "Name"; }
+ const sal_Char* getPROPERTY_TYPE() { return "Type"; }
+ const sal_Char* getPROPERTY_TYPENAME() { return "TypeName"; }
+ const sal_Char* getPROPERTY_PRECISION() { return "Precision"; }
+ const sal_Char* getPROPERTY_SCALE() { return "Scale"; }
+ const sal_Char* getPROPERTY_ISNULLABLE() { return "IsNullable"; }
+ const sal_Char* getPROPERTY_ISAUTOINCREMENT() { return "IsAutoIncrement"; }
+ const sal_Char* getPROPERTY_ISROWVERSION() { return "IsRowVersion"; }
+ const sal_Char* getPROPERTY_DESCRIPTION() { return "Description"; }
+ const sal_Char* getPROPERTY_DEFAULTVALUE() { return "DefaultValue"; }
+
+ const sal_Char* getPROPERTY_REFERENCEDTABLE() { return "ReferencedTable"; }
+ const sal_Char* getPROPERTY_UPDATERULE() { return "UpdateRule"; }
+ const sal_Char* getPROPERTY_DELETERULE() { return "DeleteRule"; }
+ const sal_Char* getPROPERTY_CATALOG() { return "Catalog"; }
+ const sal_Char* getPROPERTY_ISUNIQUE() { return "IsUnique"; }
+ const sal_Char* getPROPERTY_ISPRIMARYKEYINDEX() { return "IsPrimaryKeyIndex"; }
+ const sal_Char* getPROPERTY_ISCLUSTERED() { return "IsClustered"; }
+ const sal_Char* getPROPERTY_ISASCENDING() { return "IsAscending"; }
+ const sal_Char* getPROPERTY_SCHEMANAME() { return "SchemaName"; }
+ const sal_Char* getPROPERTY_CATALOGNAME() { return "CatalogName"; }
+ const sal_Char* getPROPERTY_COMMAND() { return "Command"; }
+ const sal_Char* getPROPERTY_CHECKOPTION() { return "CheckOption"; }
+ const sal_Char* getPROPERTY_PASSWORD() { return "Password"; }
+ const sal_Char* getPROPERTY_RELATEDCOLUMN() { return "RelatedColumn"; }
+
+ const sal_Char* getPROPERTY_FUNCTION() { return "Function"; }
+ const sal_Char* getPROPERTY_AGGREGATEFUNCTION() { return "AggregateFunction"; }
+ const sal_Char* getPROPERTY_TABLENAME() { return "TableName"; }
+ const sal_Char* getPROPERTY_REALNAME() { return "RealName"; }
+ const sal_Char* getPROPERTY_DBASEPRECISIONCHANGED() { return "DbasePrecisionChanged"; }
+ const sal_Char* getPROPERTY_ISCURRENCY() { return "IsCurrency"; }
+ const sal_Char* getPROPERTY_ISBOOKMARKABLE() { return "IsBookmarkable"; }
+
+ const sal_Char* getPROPERTY_FORMATKEY() { return "FormatKey"; }
+ const sal_Char* getPROPERTY_LOCALE() { return "Locale"; }
+
+ const sal_Char* getPROPERTY_AUTOINCREMENTCREATION() { return "AutoIncrementCreation"; }
+ const sal_Char* getPROPERTY_PRIVILEGES() { return "Privileges"; }
+ const sal_Char* getPROPERTY_ID_HAVINGCLAUSE() { return "HavingClause"; }
+ const sal_Char* getPROPERTY_ID_ISSIGNED() { return "IsSigned"; }
+ const sal_Char* getPROPERTY_ID_ISSEARCHABLE() { return "IsSearchable"; }
+
+ const sal_Char* getPROPERTY_ID_APPLYFILTER() { return "ApplyFilter"; }
+ const sal_Char* getPROPERTY_ID_FILTER() { return "Filter"; }
+ const sal_Char* getPROPERTY_ID_MASTERFIELDS() { return "MasterFields"; }
+ const sal_Char* getPROPERTY_ID_DETAILFIELDS() { return "DetailFields"; }
+ const sal_Char* getPROPERTY_ID_FIELDTYPE() { return "FieldType"; }
+ const sal_Char* getPROPERTY_ID_VALUE() { return "Value"; }
+ const sal_Char* getPROPERTY_ID_ACTIVE_CONNECTION() { return "ActiveConnection"; }
+ const sal_Char* getPROPERTY_ID_LABEL() { return "Label"; }
+
+
+ //= error messages
+
+ const sal_Char* getSQLSTATE_SEQUENCE() { return "HY010"; }
+ const sal_Char* getSTR_DELIMITER() { return "/"; }
+
+
+
OPropertyMap::~OPropertyMap()
{
::std::map<sal_Int32 , rtl_uString*>::iterator aIter = m_aPropertyMap.begin();
@@ -46,68 +117,68 @@ namespace dbtools
rtl_uString* pStr = NULL;
switch(_nIndex)
{
- case PROPERTY_ID_QUERYTIMEOUT: { rtl_uString_newFromAscii(&pStr, "QueryTimeOut" ); break; }
- case PROPERTY_ID_MAXFIELDSIZE: { rtl_uString_newFromAscii(&pStr, "MaxFieldSize" ); break; }
- case PROPERTY_ID_MAXROWS: { rtl_uString_newFromAscii(&pStr, "MaxRows" ); break; }
- case PROPERTY_ID_CURSORNAME: { rtl_uString_newFromAscii(&pStr, "CursorName" ); break; }
- case PROPERTY_ID_RESULTSETCONCURRENCY: { rtl_uString_newFromAscii(&pStr, "ResultSetConcurrency" ); break; }
- case PROPERTY_ID_RESULTSETTYPE: { rtl_uString_newFromAscii(&pStr, "ResultSetType" ); break; }
- case PROPERTY_ID_FETCHDIRECTION: { rtl_uString_newFromAscii(&pStr, "FetchDirection" ); break; }
- case PROPERTY_ID_FETCHSIZE: { rtl_uString_newFromAscii(&pStr, "FetchSize" ); break; }
- case PROPERTY_ID_ESCAPEPROCESSING: { rtl_uString_newFromAscii(&pStr, "EscapeProcessing" ); break; }
- case PROPERTY_ID_USEBOOKMARKS: { rtl_uString_newFromAscii(&pStr, "UseBookmarks" ); break; }
+ case PROPERTY_ID_QUERYTIMEOUT: { rtl_uString_newFromAscii(&pStr,getPROPERTY_QUERYTIMEOUT() ); break; }
+ case PROPERTY_ID_MAXFIELDSIZE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_MAXFIELDSIZE() ); break; }
+ case PROPERTY_ID_MAXROWS: { rtl_uString_newFromAscii(&pStr,getPROPERTY_MAXROWS() ); break; }
+ case PROPERTY_ID_CURSORNAME: { rtl_uString_newFromAscii(&pStr,getPROPERTY_CURSORNAME() ); break; }
+ case PROPERTY_ID_RESULTSETCONCURRENCY: { rtl_uString_newFromAscii(&pStr,getPROPERTY_RESULTSETCONCURRENCY() ); break; }
+ case PROPERTY_ID_RESULTSETTYPE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_RESULTSETTYPE() ); break; }
+ case PROPERTY_ID_FETCHDIRECTION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_FETCHDIRECTION() ); break; }
+ case PROPERTY_ID_FETCHSIZE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_FETCHSIZE() ); break; }
+ case PROPERTY_ID_ESCAPEPROCESSING: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ESCAPEPROCESSING() ); break; }
+ case PROPERTY_ID_USEBOOKMARKS: { rtl_uString_newFromAscii(&pStr,getPROPERTY_USEBOOKMARKS() ); break; }
// Column
- case PROPERTY_ID_NAME: { rtl_uString_newFromAscii(&pStr, "Name" ); break; }
- case PROPERTY_ID_TYPE: { rtl_uString_newFromAscii(&pStr, "Type" ); break; }
- case PROPERTY_ID_TYPENAME: { rtl_uString_newFromAscii(&pStr, "TypeName" ); break; }
- case PROPERTY_ID_PRECISION: { rtl_uString_newFromAscii(&pStr, "Precision" ); break; }
- case PROPERTY_ID_SCALE: { rtl_uString_newFromAscii(&pStr, "Scale" ); break; }
- case PROPERTY_ID_ISNULLABLE: { rtl_uString_newFromAscii(&pStr, "IsNullable" ); break; }
- case PROPERTY_ID_ISAUTOINCREMENT: { rtl_uString_newFromAscii(&pStr, "IsAutoIncrement" ); break; }
- case PROPERTY_ID_ISROWVERSION: { rtl_uString_newFromAscii(&pStr, "IsRowVersion" ); break; }
- case PROPERTY_ID_DESCRIPTION: { rtl_uString_newFromAscii(&pStr, "Description" ); break; }
- case PROPERTY_ID_DEFAULTVALUE: { rtl_uString_newFromAscii(&pStr, "DefaultValue" ); break; }
-
- case PROPERTY_ID_REFERENCEDTABLE: { rtl_uString_newFromAscii(&pStr, "ReferencedTable" ); break; }
- case PROPERTY_ID_UPDATERULE: { rtl_uString_newFromAscii(&pStr, "UpdateRule" ); break; }
- case PROPERTY_ID_DELETERULE: { rtl_uString_newFromAscii(&pStr, "DeleteRule" ); break; }
- case PROPERTY_ID_CATALOG: { rtl_uString_newFromAscii(&pStr, "Catalog" ); break; }
- case PROPERTY_ID_ISUNIQUE: { rtl_uString_newFromAscii(&pStr, "IsUnique" ); break; }
- case PROPERTY_ID_ISPRIMARYKEYINDEX: { rtl_uString_newFromAscii(&pStr, "IsPrimaryKeyIndex" ); break; }
- case PROPERTY_ID_ISCLUSTERED: { rtl_uString_newFromAscii(&pStr, "IsClustered" ); break; }
- case PROPERTY_ID_ISASCENDING: { rtl_uString_newFromAscii(&pStr, "IsAscending" ); break; }
- case PROPERTY_ID_SCHEMANAME: { rtl_uString_newFromAscii(&pStr, "SchemaName" ); break; }
- case PROPERTY_ID_CATALOGNAME: { rtl_uString_newFromAscii(&pStr, "CatalogName" ); break; }
-
- case PROPERTY_ID_COMMAND: { rtl_uString_newFromAscii(&pStr, "Command" ); break; }
- case PROPERTY_ID_CHECKOPTION: { rtl_uString_newFromAscii(&pStr, "CheckOption" ); break; }
- case PROPERTY_ID_PASSWORD: { rtl_uString_newFromAscii(&pStr, "Password" ); break; }
- case PROPERTY_ID_RELATEDCOLUMN: { rtl_uString_newFromAscii(&pStr, "RelatedColumn" ); break; }
-
- case PROPERTY_ID_FUNCTION: { rtl_uString_newFromAscii(&pStr, "Function" ); break; }
- case PROPERTY_ID_AGGREGATEFUNCTION: { rtl_uString_newFromAscii(&pStr, "AggregateFunction" ); break; }
- case PROPERTY_ID_TABLENAME: { rtl_uString_newFromAscii(&pStr, "TableName" ); break; }
- case PROPERTY_ID_REALNAME: { rtl_uString_newFromAscii(&pStr, "RealName" ); break; }
- case PROPERTY_ID_DBASEPRECISIONCHANGED: { rtl_uString_newFromAscii(&pStr, "DbasePrecisionChanged"); break; }
- case PROPERTY_ID_ISCURRENCY: { rtl_uString_newFromAscii(&pStr, "IsCurrency" ); break; }
- case PROPERTY_ID_ISBOOKMARKABLE: { rtl_uString_newFromAscii(&pStr, "IsBookmarkable" ); break; }
- case PROPERTY_ID_HY010: { rtl_uString_newFromAscii(&pStr, "HY010" ); break; }
- case PROPERTY_ID_DELIMITER: { rtl_uString_newFromAscii(&pStr, "/" ); break; }
- case PROPERTY_ID_FORMATKEY: { rtl_uString_newFromAscii(&pStr, "FormatKey" ); break; }
- case PROPERTY_ID_LOCALE: { rtl_uString_newFromAscii(&pStr, "Locale" ); break; }
- case PROPERTY_ID_AUTOINCREMENTCREATION: { rtl_uString_newFromAscii(&pStr, "AutoIncrementCreation"); break; }
- case PROPERTY_ID_PRIVILEGES: { rtl_uString_newFromAscii(&pStr, "Privileges" ); break; }
- case PROPERTY_ID_HAVINGCLAUSE: { rtl_uString_newFromAscii(&pStr, "HavingClause" ); break; }
- case PROPERTY_ID_ISSIGNED: { rtl_uString_newFromAscii(&pStr, "IsSigned" ); break; }
- case PROPERTY_ID_ISSEARCHABLE: { rtl_uString_newFromAscii(&pStr, "IsSearchable" ); break; }
- case PROPERTY_ID_LABEL: { rtl_uString_newFromAscii(&pStr, "Label" ); break; }
- case PROPERTY_ID_APPLYFILTER: { rtl_uString_newFromAscii(&pStr, "ApplyFilter" ); break; }
- case PROPERTY_ID_FILTER: { rtl_uString_newFromAscii(&pStr, "Filter" ); break; }
- case PROPERTY_ID_MASTERFIELDS: { rtl_uString_newFromAscii(&pStr, "MasterFields" ); break; }
- case PROPERTY_ID_DETAILFIELDS: { rtl_uString_newFromAscii(&pStr, "DetailFields" ); break; }
- case PROPERTY_ID_FIELDTYPE: { rtl_uString_newFromAscii(&pStr, "FieldType" ); break; }
- case PROPERTY_ID_VALUE: { rtl_uString_newFromAscii(&pStr, "Value" ); break; }
- case PROPERTY_ID_ACTIVE_CONNECTION: { rtl_uString_newFromAscii(&pStr, "ActiveConnection" ); break; }
+ case PROPERTY_ID_NAME: { rtl_uString_newFromAscii(&pStr,getPROPERTY_NAME() ); break; }
+ case PROPERTY_ID_TYPE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_TYPE() ); break; }
+ case PROPERTY_ID_TYPENAME: { rtl_uString_newFromAscii(&pStr,getPROPERTY_TYPENAME() ); break; }
+ case PROPERTY_ID_PRECISION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_PRECISION() ); break; }
+ case PROPERTY_ID_SCALE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_SCALE() ); break; }
+ case PROPERTY_ID_ISNULLABLE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISNULLABLE() ); break; }
+ case PROPERTY_ID_ISAUTOINCREMENT: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISAUTOINCREMENT() ); break; }
+ case PROPERTY_ID_ISROWVERSION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISROWVERSION() ); break; }
+ case PROPERTY_ID_DESCRIPTION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_DESCRIPTION() ); break; }
+ case PROPERTY_ID_DEFAULTVALUE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_DEFAULTVALUE() ); break; }
+
+ case PROPERTY_ID_REFERENCEDTABLE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_REFERENCEDTABLE() ); break; }
+ case PROPERTY_ID_UPDATERULE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_UPDATERULE() ); break; }
+ case PROPERTY_ID_DELETERULE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_DELETERULE() ); break; }
+ case PROPERTY_ID_CATALOG: { rtl_uString_newFromAscii(&pStr,getPROPERTY_CATALOG() ); break; }
+ case PROPERTY_ID_ISUNIQUE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISUNIQUE() ); break; }
+ case PROPERTY_ID_ISPRIMARYKEYINDEX: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISPRIMARYKEYINDEX() ); break; }
+ case PROPERTY_ID_ISCLUSTERED: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISCLUSTERED() ); break; }
+ case PROPERTY_ID_ISASCENDING: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISASCENDING() ); break; }
+ case PROPERTY_ID_SCHEMANAME: { rtl_uString_newFromAscii(&pStr,getPROPERTY_SCHEMANAME() ); break; }
+ case PROPERTY_ID_CATALOGNAME: { rtl_uString_newFromAscii(&pStr,getPROPERTY_CATALOGNAME() ); break; }
+
+ case PROPERTY_ID_COMMAND: { rtl_uString_newFromAscii(&pStr,getPROPERTY_COMMAND() ); break; }
+ case PROPERTY_ID_CHECKOPTION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_CHECKOPTION() ); break; }
+ case PROPERTY_ID_PASSWORD: { rtl_uString_newFromAscii(&pStr,getPROPERTY_PASSWORD() ); break; }
+ case PROPERTY_ID_RELATEDCOLUMN: { rtl_uString_newFromAscii(&pStr,getPROPERTY_RELATEDCOLUMN() ); break; }
+
+ case PROPERTY_ID_FUNCTION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_FUNCTION() ); break; }
+ case PROPERTY_ID_AGGREGATEFUNCTION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_AGGREGATEFUNCTION() ); break; }
+ case PROPERTY_ID_TABLENAME: { rtl_uString_newFromAscii(&pStr,getPROPERTY_TABLENAME() ); break; }
+ case PROPERTY_ID_REALNAME: { rtl_uString_newFromAscii(&pStr,getPROPERTY_REALNAME() ); break; }
+ case PROPERTY_ID_DBASEPRECISIONCHANGED: { rtl_uString_newFromAscii(&pStr,getPROPERTY_DBASEPRECISIONCHANGED()); break; }
+ case PROPERTY_ID_ISCURRENCY: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISCURRENCY() ); break; }
+ case PROPERTY_ID_ISBOOKMARKABLE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ISBOOKMARKABLE() ); break; }
+ case PROPERTY_ID_HY010: { rtl_uString_newFromAscii(&pStr,getSQLSTATE_SEQUENCE() ); break; }
+ case PROPERTY_ID_DELIMITER: { rtl_uString_newFromAscii(&pStr,getSTR_DELIMITER() ); break; }
+ case PROPERTY_ID_FORMATKEY: { rtl_uString_newFromAscii(&pStr,getPROPERTY_FORMATKEY() ); break; }
+ case PROPERTY_ID_LOCALE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_LOCALE() ); break; }
+ case PROPERTY_ID_AUTOINCREMENTCREATION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_AUTOINCREMENTCREATION()); break; }
+ case PROPERTY_ID_PRIVILEGES: { rtl_uString_newFromAscii(&pStr,getPROPERTY_PRIVILEGES() ); break; }
+ case PROPERTY_ID_HAVINGCLAUSE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_HAVINGCLAUSE() ); break; }
+ case PROPERTY_ID_ISSIGNED: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_ISSIGNED() ); break; }
+ case PROPERTY_ID_ISSEARCHABLE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_ISSEARCHABLE() ); break; }
+ case PROPERTY_ID_LABEL: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_LABEL() ); break; }
+ case PROPERTY_ID_APPLYFILTER: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_APPLYFILTER() ); break; }
+ case PROPERTY_ID_FILTER: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_FILTER() ); break; }
+ case PROPERTY_ID_MASTERFIELDS: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_MASTERFIELDS() ); break; }
+ case PROPERTY_ID_DETAILFIELDS: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_DETAILFIELDS() ); break; }
+ case PROPERTY_ID_FIELDTYPE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_FIELDTYPE() ); break; }
+ case PROPERTY_ID_VALUE: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_VALUE() ); break; }
+ case PROPERTY_ID_ACTIVE_CONNECTION: { rtl_uString_newFromAscii(&pStr,getPROPERTY_ID_ACTIVE_CONNECTION() ); break; }
}
m_aPropertyMap[_nIndex] = pStr;
return pStr ? OUString(pStr) : OUString();
diff --git a/connectivity/source/drivers/mork/MCatalog.cxx b/connectivity/source/drivers/mork/MCatalog.cxx
index 3602b3ca672b..65abe020b35d 100644
--- a/connectivity/source/drivers/mork/MCatalog.cxx
+++ b/connectivity/source/drivers/mork/MCatalog.cxx
@@ -92,7 +92,8 @@ Reference< XNameAccess > SAL_CALL OCatalog::getTables( ) throw(RuntimeException
try
{
- refreshTables();
+ if(!m_pTables || m_pConnection->getForceLoadTables())
+ refreshTables();
}
catch( const RuntimeException& )
{
diff --git a/connectivity/source/drivers/mork/MConnection.hxx b/connectivity/source/drivers/mork/MConnection.hxx
index 397102d89e05..1a29491f5b36 100644
--- a/connectivity/source/drivers/mork/MConnection.hxx
+++ b/connectivity/source/drivers/mork/MConnection.hxx
@@ -102,6 +102,8 @@ namespace connectivity
static OUString getDriverImplementationName();
+ bool getForceLoadTables() {return true;}
+
// Added to enable me to use SQLInterpreter which requires an
// XNameAccess i/f to access tables.
::com::sun::star::uno::Reference< ::com::sun::star::sdbcx::XTablesSupplier > SAL_CALL createCatalog();
diff --git a/connectivity/source/drivers/mork/MQueryHelper.cxx b/connectivity/source/drivers/mork/MQueryHelper.cxx
index 36f8a2e6b467..08e5447d5f73 100644
--- a/connectivity/source/drivers/mork/MQueryHelper.cxx
+++ b/connectivity/source/drivers/mork/MQueryHelper.cxx
@@ -144,6 +144,11 @@ sal_Int32 MQueryHelper::getResultCount() const
+bool MQueryHelper::queryComplete() const
+{
+ return true;
+}
+
bool MQueryHelper::checkRowAvailable( sal_Int32 nDBRow )
{
/*
diff --git a/connectivity/source/drivers/mork/MQueryHelper.hxx b/connectivity/source/drivers/mork/MQueryHelper.hxx
index f12a7c2ffd56..42a2c9375db1 100644
--- a/connectivity/source/drivers/mork/MQueryHelper.hxx
+++ b/connectivity/source/drivers/mork/MQueryHelper.hxx
@@ -199,6 +199,7 @@ namespace connectivity
void reset();
MQueryHelperResultEntry* getByIndex( sal_uInt32 nRow );
bool isError() const;
+ bool queryComplete() const;
sal_Int32 getResultCount() const;
bool checkRowAvailable( sal_Int32 nDBRow );
bool getRowValue( ORowSetValue& rValue, sal_Int32 nDBRow,const OUString& aDBColumnName, sal_Int32 nType );
diff --git a/connectivity/source/drivers/mork/MResultSet.cxx b/connectivity/source/drivers/mork/MResultSet.cxx
index 3adaddd6b9f0..b33cb54c3383 100644
--- a/connectivity/source/drivers/mork/MResultSet.cxx
+++ b/connectivity/source/drivers/mork/MResultSet.cxx
@@ -332,6 +332,35 @@ bool OResultSet::fetchCurrentRow( ) throw(SQLException, RuntimeException)
}
+bool OResultSet::pushCard(sal_uInt32 /*cardNumber*/) throw(SQLException, RuntimeException)
+{
+ return true;
+/*
+ if (cardNumber == 0)
+ return sal_True;
+ // Check whether we are storing the updated row
+ if ( (m_aRow->get())[0].isNull() || (sal_Int32)(m_aRow->get())[0] != (sal_Int32)cardNumber )
+ return sal_False;
+
+ sal_Int32 nCount = m_aColumnNames.getLength();
+ m_aQuery.setRowStates(cardNumber,m_RowStates);
+ for( sal_Int32 i = 1; i <= nCount; i++ )
+ {
+ if ( (m_aRow->get())[i].isBound() )
+ {
+
+ // Everything in the addressbook is a string!
+
+ if ( !m_aQuery.setRowValue( (m_aRow->get())[i], cardNumber, m_aColumnNames[i-1], DataType::VARCHAR ))
+ {
+ m_pStatement->getOwnConnection()->throwSQLException( m_aQuery.getError(), *this );
+ }
+ }
+ }
+ return sal_True;
+*/
+}
+
bool OResultSet::fetchRow(sal_Int32 cardNumber,bool bForceReload) throw(SQLException, RuntimeException)
{
SAL_INFO("connectivity.mork", "cardNumber = " << cardNumber);
@@ -340,6 +369,13 @@ bool OResultSet::fetchRow(sal_Int32 cardNumber,bool bForceReload) throw(SQLExcep
// Check whether we've already fetched the row...
if ( !(m_aRow->get())[0].isNull() && (sal_Int32)(m_aRow->get())[0] == (sal_Int32)cardNumber )
return true;
+ //Check whether the old row has been changed
+ if (cardNumber == m_nUpdatedRow)
+ {
+ //write back the changes first
+ if (!pushCard(cardNumber)) //error write back the changes
+ throw SQLException();
+ }
}
// else
// m_aQuery.resyncRow(cardNumber);
@@ -430,7 +466,7 @@ sal_Bool SAL_CALL OResultSet::isAfterLast( ) throw(SQLException, RuntimeExcepti
OSL_TRACE("In/Out: OResultSet::isAfterLast" );
// return sal_True;
- return m_nRowPos > currentRowCount();
+ return m_nRowPos > currentRowCount() && m_aQueryHelper.queryComplete();
}
sal_Bool SAL_CALL OResultSet::isFirst( ) throw(SQLException, RuntimeException, std::exception)
@@ -448,7 +484,7 @@ sal_Bool SAL_CALL OResultSet::isLast( ) throw(SQLException, RuntimeException, s
OSL_TRACE("In/Out: OResultSet::isLast" );
// return sal_True;
- return m_nRowPos == currentRowCount();
+ return m_nRowPos == currentRowCount() && m_aQueryHelper.queryComplete();
}
void SAL_CALL OResultSet::beforeFirst( ) throw(SQLException, RuntimeException, std::exception)
@@ -1222,6 +1258,8 @@ void SAL_CALL OResultSet::executeQuery() throw( ::com::sun::star::sdbc::SQLExcep
OSL_TRACE("Query is to be sorted");
+ OSL_ENSURE( m_aQueryHelper.queryComplete(), "Query not complete!!");
+
OSortIndex aSortIndex(eKeyType,m_aOrderbyAscending);
OSL_TRACE("OrderbyColumnNumber->size() = %zu",m_aOrderbyColumnNumber.size());
@@ -1407,26 +1445,28 @@ bool OResultSet::validRow( sal_uInt32 nRow)
{
sal_Int32 nNumberOfRecords = m_aQueryHelper.getResultCount();
+ while ( nRow > (sal_uInt32)nNumberOfRecords && !m_aQueryHelper.queryComplete() ) {
#if OSL_DEBUG_LEVEL > 0
- OSL_TRACE("validRow: waiting...");
+ OSL_TRACE("validRow: waiting...");
#endif
- if (m_aQueryHelper.checkRowAvailable( nRow ) == false)
- {
- SAL_INFO(
- "connectivity.mork",
- "validRow(" << nRow << "): return False");
- return false;
- }
+ if (m_aQueryHelper.checkRowAvailable( nRow ) == false)
+ {
+ SAL_INFO(
+ "connectivity.mork",
+ "validRow(" << nRow << "): return False");
+ return false;
+ }
- if ( m_aQueryHelper.hadError() )
- {
- m_pStatement->getOwnConnection()->throwSQLException( m_aQueryHelper.getError(), *this );
- }
+ if ( m_aQueryHelper.hadError() )
+ {
+ m_pStatement->getOwnConnection()->throwSQLException( m_aQueryHelper.getError(), *this );
+ }
- nNumberOfRecords = m_aQueryHelper.getResultCount();
+ nNumberOfRecords = m_aQueryHelper.getResultCount();
+ }
if (( nRow == 0 ) ||
- ( nRow > (sal_uInt32)nNumberOfRecords) ){
+ ( nRow > (sal_uInt32)nNumberOfRecords && m_aQueryHelper.queryComplete()) ){
SAL_INFO("connectivity.mork", "validRow(" << nRow << "): return False");
return false;
}
diff --git a/connectivity/source/drivers/mork/MResultSet.hxx b/connectivity/source/drivers/mork/MResultSet.hxx
index d40fe68e4e94..6422c04bb742 100644
--- a/connectivity/source/drivers/mork/MResultSet.hxx
+++ b/connectivity/source/drivers/mork/MResultSet.hxx
@@ -266,6 +266,8 @@ protected:
::com::sun::star::uno::RuntimeException);
bool fetchCurrentRow() throw( ::com::sun::star::sdbc::SQLException,
::com::sun::star::uno::RuntimeException);
+ bool pushCard(sal_uInt32 rowIndex) throw( ::com::sun::star::sdbc::SQLException,
+ ::com::sun::star::uno::RuntimeException);
bool validRow( sal_uInt32 nRow );
bool seekRow( eRowPosition pos, sal_Int32 nOffset = 0 );
sal_Int32 deletedCount();
diff --git a/connectivity/source/drivers/mork/MResultSetMetaData.cxx b/connectivity/source/drivers/mork/MResultSetMetaData.cxx
index b014c7a49587..267465818098 100644
--- a/connectivity/source/drivers/mork/MResultSetMetaData.cxx
+++ b/connectivity/source/drivers/mork/MResultSetMetaData.cxx
@@ -176,7 +176,7 @@ sal_Bool SAL_CALL OResultSetMetaData::isReadOnly( sal_Int32 column ) throw(SQLEx
bool bReadOnly = (m_xColumns->get())[column-1]->getPropertySetInfo()->hasPropertyByName(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION)) &&
::cppu::any2bool((m_xColumns->get())[column-1]->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_FUNCTION)));
- return m_bReadOnly || bReadOnly;
+ return m_bReadOnly || bReadOnly || m_pTable->isReadOnly();
}
diff --git a/connectivity/source/drivers/mork/MStatement.cxx b/connectivity/source/drivers/mork/MStatement.cxx
index e6be4a925d4d..e0766cef8188 100644
--- a/connectivity/source/drivers/mork/MStatement.cxx
+++ b/connectivity/source/drivers/mork/MStatement.cxx
@@ -140,6 +140,54 @@ void SAL_CALL OCommonStatement::close( ) throw(SQLException, RuntimeException,
}
+
+void OCommonStatement::createTable( ) throw ( SQLException, RuntimeException )
+{
+/*
+ if(m_pParseTree)
+ {
+ ::rtl::Reference<connectivity::OSQLColumns> xCreateColumn;
+ if (m_pSQLIterator->getStatementType() == SQL_STATEMENT_CREATE_TABLE)
+ {
+ const OSQLTables& xTabs = m_pSQLIterator->getTables();
+ OSL_ENSURE( !xTabs.empty(), "Need a Table");
+ OUString ouTableName=xTabs.begin()->first;
+ xCreateColumn = m_pSQLIterator->getCreateColumns();
+ OSL_ENSURE(xCreateColumn.is(), "Need the Columns!!");
+
+ const OColumnAlias& aColumnAlias = m_pConnection->getColumnAlias();
+
+ OSQLColumns::Vector::const_iterator aIter = xCreateColumn->get().begin();
+ const OUString sProprtyName = OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_NAME);
+ OUString sName;
+ for (sal_Int32 i = 1; aIter != xCreateColumn->get().end();++aIter, i++)
+ {
+ (*aIter)->getPropertyValue(sProprtyName) >>= sName;
+ if ( !aColumnAlias.hasAlias( sName ) )
+ {
+
+ const OUString sError( getOwnConnection()->getResources().getResourceStringWithSubstitution(
+ STR_INVALID_COLUMNNAME,
+ "$columnname$", sName
+ ) );
+ ::dbtools::throwGenericSQLException(sError,*this);
+ }
+ }
+ MDatabaseMetaDataHelper _aDbHelper;
+ if (!_aDbHelper.NewAddressBook(m_pConnection,ouTableName))
+ {
+ getOwnConnection()->throwSQLException( _aDbHelper.getError(), *this );
+ }
+ m_pSQLIterator.reset( new ::connectivity::OSQLParseTreeIterator(
+ m_pConnection, m_pConnection->createCatalog()->getTables(), m_aParser, NULL ) );
+ }
+
+ }
+ else
+ getOwnConnection()->throwSQLException( STR_QUERY_TOO_COMPLEX, *this );
+*/
+}
+
OCommonStatement::StatementType OCommonStatement::parseSql( const OUString& sql , bool bAdjusted)
throw ( SQLException, RuntimeException )
{
@@ -194,6 +242,7 @@ OCommonStatement::StatementType OCommonStatement::parseSql( const OUString& sql
return eSelect;
case SQL_STATEMENT_CREATE_TABLE:
+ createTable();
return eCreateTable;
default:
diff --git a/connectivity/source/drivers/mork/MStatement.hxx b/connectivity/source/drivers/mork/MStatement.hxx
index 3476d9b7d406..08b4c561d612 100644
--- a/connectivity/source/drivers/mork/MStatement.hxx
+++ b/connectivity/source/drivers/mork/MStatement.hxx
@@ -144,6 +144,9 @@ namespace connectivity
void analyseSQL();
void setOrderbyColumn( connectivity::OSQLParseNode* pColumnRef,
connectivity::OSQLParseNode* pAscendingDescending);
+ void createTable( ) throw (
+ ::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException );
+
public:
// other methods
OConnection* getOwnConnection() const { return m_pConnection;}
diff --git a/connectivity/source/drivers/mork/MTable.hxx b/connectivity/source/drivers/mork/MTable.hxx
index 454364bf1971..39090517ecc4 100644
--- a/connectivity/source/drivers/mork/MTable.hxx
+++ b/connectivity/source/drivers/mork/MTable.hxx
@@ -43,6 +43,8 @@ namespace connectivity
OConnection* getConnection() { return m_pConnection;}
+ bool isReadOnly() const { return false; }
+
OUString getTableName() const { return m_Name; }
OUString getSchema() const { return m_SchemaName; }
diff --git a/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx b/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
index f5ffa3890fc1..36d763798cec 100644
--- a/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
+++ b/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx
@@ -698,6 +698,27 @@ Any SAL_CALL ODatabaseMetaDataResultSet::getWarnings( ) throw(SQLException, Run
return Any();
}
+sal_Int32 ODatabaseMetaDataResultSet::getResultSetConcurrency() const throw(SQLException, RuntimeException)
+{
+ return ResultSetConcurrency::READ_ONLY;
+}
+
+sal_Int32 ODatabaseMetaDataResultSet::getResultSetType() const throw(SQLException, RuntimeException)
+{
+ return ResultSetType::FORWARD_ONLY;
+}
+
+sal_Int32 ODatabaseMetaDataResultSet::getFetchDirection() const throw(SQLException, RuntimeException)
+{
+ return FetchDirection::FORWARD;
+}
+
+sal_Int32 ODatabaseMetaDataResultSet::getFetchSize() const throw(SQLException, RuntimeException)
+{
+ sal_Int32 nValue=1;
+ return nValue;
+}
+
OUString ODatabaseMetaDataResultSet::getCursorName() const throw(SQLException, RuntimeException)
{
return OUString();
diff --git a/connectivity/source/drivers/odbc/OResultSet.cxx b/connectivity/source/drivers/odbc/OResultSet.cxx
index 165ff0be0459..dc665eef7294 100644
--- a/connectivity/source/drivers/odbc/OResultSet.cxx
+++ b/connectivity/source/drivers/odbc/OResultSet.cxx
@@ -1327,6 +1327,11 @@ sal_Int32 OResultSet::getResultSetType() const
return nValue;
}
+sal_Int32 OResultSet::getFetchDirection() const
+{
+ return FetchDirection::FORWARD;
+}
+
sal_Int32 OResultSet::getFetchSize() const
{
return getStmtOption<SQLULEN, SQL_IS_UINTEGER>(SQL_ATTR_ROW_ARRAY_SIZE);
diff --git a/connectivity/source/drivers/postgresql/pq_databasemetadata.cxx b/connectivity/source/drivers/postgresql/pq_databasemetadata.cxx
index b243dfa64944..d334dca139a7 100644
--- a/connectivity/source/drivers/postgresql/pq_databasemetadata.cxx
+++ b/connectivity/source/drivers/postgresql/pq_databasemetadata.cxx
@@ -124,6 +124,11 @@ std::vector
#define DEFERRABILITY_INITIALLY_IMMEDIATE 6
#define DEFERRABILITY_NONE 7
+void DatabaseMetaData::checkClosed()
+ throw (SQLException, RuntimeException)
+{
+}
+
DatabaseMetaData::DatabaseMetaData(
const ::rtl::Reference< RefCountedMutex > & refMutex,
const ::com::sun::star::uno::Reference< com::sun::star::sdbc::XConnection > & origin,
@@ -1105,6 +1110,7 @@ sal_Bool DatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw (SQLExc
// LEM TODO: implement
// LEM TODO: at least fake the columns, even if no row.
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
return new SequenceResultSet(
m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
}
@@ -1117,6 +1123,7 @@ sal_Bool DatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw (SQLExc
{
(void) catalog; (void) schemaPattern; (void) procedureNamePattern; (void) columnNamePattern;
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
// LEM TODO: implement
// LEM TODO: at least fake the columns, even if no row.
return new SequenceResultSet(
@@ -1134,6 +1141,7 @@ sal_Bool DatabaseMetaData::dataDefinitionIgnoredInTransactions( ) throw (SQLExc
Statics &statics = getStatics();
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
if( isLog( m_pSettings, LogLevel::INFO ) )
{
@@ -1251,6 +1259,7 @@ struct SortInternalSchemasLastAndPublicFirst
throw (SQLException, RuntimeException, std::exception)
{
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
if( isLog( m_pSettings, LogLevel::INFO ) )
{
@@ -1288,6 +1297,7 @@ struct SortInternalSchemasLastAndPublicFirst
// LEM TODO: return the current catalog like JDBC driver?
// at least fake the columns, even if no content
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
return new SequenceResultSet(
m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
}
@@ -1297,6 +1307,7 @@ struct SortInternalSchemasLastAndPublicFirst
{
// LEM TODO: this can be made dynamic, see JDBC driver
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
return new SequenceResultSet(
m_refMutex, *this, getStatics().tableTypeNames, getStatics().tableTypeData,
m_pSettings->tc );
@@ -1460,6 +1471,7 @@ static void columnMetaData2DatabaseTypeDescription(
// continue !
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
if( isLog( m_pSettings, LogLevel::INFO ) )
{
@@ -1643,6 +1655,7 @@ static void columnMetaData2DatabaseTypeDescription(
(void) catalog;
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
if( isLog( m_pSettings, LogLevel::INFO ) )
{
@@ -1673,6 +1686,7 @@ static void columnMetaData2DatabaseTypeDescription(
{
(void) catalog;
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
if( isLog( m_pSettings, LogLevel::INFO ) )
{
@@ -1703,6 +1717,7 @@ static void columnMetaData2DatabaseTypeDescription(
(void) catalog; (void) schema; (void) table; (void) scope; (void) nullable;
//LEM TODO: implement! See JDBC driver
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
return new SequenceResultSet(
m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
}
@@ -1715,6 +1730,7 @@ static void columnMetaData2DatabaseTypeDescription(
(void) catalog; (void) schema; (void) table;
//LEM TODO: implement! See JDBC driver
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
return new SequenceResultSet(
m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
}
@@ -1727,6 +1743,7 @@ static void columnMetaData2DatabaseTypeDescription(
(void) catalog;
//LEM TODO: review
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
// 1. TABLE_CAT string =&gt; table catalog (may be NULL )
// 2. TABLE_SCHEM string =&gt; table schema (may be NULL )
@@ -2290,6 +2307,7 @@ static void pgTypeInfo2ResultSet(
{
// Note: Indexes start at 0 (in the API doc, they start at 1)
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
if( isLog( m_pSettings, LogLevel::INFO ) )
{
@@ -2358,6 +2376,7 @@ static sal_Int32 seqContains( const Sequence< sal_Int32 > &seq, sal_Int32 value
(void) catalog; (void) approximate;
//LEM TODO: review
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
/*
1. TABLE_CAT string -> table catalog (may be NULL )
@@ -2548,6 +2567,7 @@ sal_Bool DatabaseMetaData::supportsBatchUpdates( ) throw (SQLException, Runtime
(void) catalog; (void) schemaPattern; (void) typeNamePattern; (void) types;
//LEM TODO: implement! See JDBC driver
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
return new SequenceResultSet(
m_refMutex, *this, Sequence< OUString >(), Sequence< Sequence< Any > > (), m_pSettings->tc );
}
diff --git a/connectivity/source/drivers/postgresql/pq_databasemetadata.hxx b/connectivity/source/drivers/postgresql/pq_databasemetadata.hxx
index a61ac4a6e333..9a54a20b92b4 100644
--- a/connectivity/source/drivers/postgresql/pq_databasemetadata.hxx
+++ b/connectivity/source/drivers/postgresql/pq_databasemetadata.hxx
@@ -56,6 +56,7 @@ class DatabaseMetaData :
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > m_getTablePrivs_stmt;
::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XPreparedStatement > m_getColumnPrivs_stmt;
+ void checkClosed() throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
sal_Int32 getIntSetting(const OUString& settingName) throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
sal_Int32 getMaxIndexKeys() throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
sal_Int32 getMaxNameLength() throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
diff --git a/connectivity/source/drivers/postgresql/pq_resultsetmetadata.cxx b/connectivity/source/drivers/postgresql/pq_resultsetmetadata.cxx
index 406d31b90382..1e57850187d0 100644
--- a/connectivity/source/drivers/postgresql/pq_resultsetmetadata.cxx
+++ b/connectivity/source/drivers/postgresql/pq_resultsetmetadata.cxx
@@ -333,6 +333,7 @@ sal_Int32 ResultSetMetaData::getColumnDisplaySize( sal_Int32 column )
throw (SQLException, RuntimeException, std::exception)
{
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
checkColumnIndex( column );
return m_colDesc[column-1].displaySize;
}
@@ -346,6 +347,7 @@ OUString ResultSetMetaData::getColumnLabel( sal_Int32 column )
OUString ResultSetMetaData::getColumnName( sal_Int32 column ) throw (SQLException, RuntimeException, std::exception)
{
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
checkColumnIndex( column );
return m_colDesc[column-1].name;
@@ -361,6 +363,7 @@ sal_Int32 ResultSetMetaData::getPrecision( sal_Int32 column )
throw (SQLException, RuntimeException, std::exception)
{
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
checkColumnIndex( column );
return m_colDesc[column-1].precision;
}
@@ -369,6 +372,7 @@ sal_Int32 ResultSetMetaData::getScale( sal_Int32 column )
throw (SQLException, RuntimeException, std::exception)
{
MutexGuard guard( m_refMutex->mutex );
+ checkClosed();
checkColumnIndex( column );
return m_colDesc[column-1].scale;
}
@@ -454,6 +458,12 @@ OUString ResultSetMetaData::getColumnServiceName( sal_Int32 column )
return OUString();
}
+void ResultSetMetaData::checkClosed()
+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
+{
+ // we never close
+}
+
void ResultSetMetaData::checkColumnIndex(sal_Int32 columnIndex)
throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException)
{
diff --git a/connectivity/source/drivers/postgresql/pq_resultsetmetadata.hxx b/connectivity/source/drivers/postgresql/pq_resultsetmetadata.hxx
index e70d5b04a733..6dc53f0fbc4e 100644
--- a/connectivity/source/drivers/postgresql/pq_resultsetmetadata.hxx
+++ b/connectivity/source/drivers/postgresql/pq_resultsetmetadata.hxx
@@ -81,6 +81,8 @@ class ResultSetMetaData :
sal_Int32 m_colCount;
+ void checkClosed()
+ throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
void checkColumnIndex( sal_Int32 columnIndex )
throw (::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
void checkTable();
diff --git a/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx b/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx
index 74b507bd9246..4b7bbd4575d2 100644
--- a/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx
+++ b/connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx
@@ -20,9 +20,6 @@
#ifndef INCLUDED_CONNECTIVITY_SOURCE_INC_ODBC_ODATABASEMETADATARESULTSET_HXX
#define INCLUDED_CONNECTIVITY_SOURCE_INC_ODBC_ODATABASEMETADATARESULTSET_HXX
-#include <com/sun/star/sdbc/FetchDirection.hpp>
-#include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
-#include <com/sun/star/sdbc/ResultSetType.hpp>
#include <com/sun/star/sdbc/XResultSet.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
@@ -83,10 +80,10 @@ namespace connectivity
// set the columncount of the driver
void checkColumnCount();
- static sal_Int32 getResultSetConcurrency() { return css::sdbc::ResultSetConcurrency::READ_ONLY; }
- static sal_Int32 getResultSetType() { return css::sdbc::ResultSetType::FORWARD_ONLY; }
- static sal_Int32 getFetchDirection() { return css::sdbc::FetchDirection::FORWARD; }
- static sal_Int32 getFetchSize() { return 1; }
+ sal_Int32 getResultSetConcurrency() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+ sal_Int32 getResultSetType() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+ sal_Int32 getFetchDirection() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
+ sal_Int32 getFetchSize() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
OUString getCursorName() const throw(::com::sun::star::sdbc::SQLException, ::com::sun::star::uno::RuntimeException);
SWORD impl_getColumnType_nothrow(sal_Int32 columnIndex);
diff --git a/connectivity/source/inc/odbc/OResultSet.hxx b/connectivity/source/inc/odbc/OResultSet.hxx
index 104f617086eb..a423e735ca58 100644
--- a/connectivity/source/inc/odbc/OResultSet.hxx
+++ b/connectivity/source/inc/odbc/OResultSet.hxx
@@ -20,7 +20,6 @@
#ifndef INCLUDED_CONNECTIVITY_SOURCE_INC_ODBC_ORESULTSET_HXX
#define INCLUDED_CONNECTIVITY_SOURCE_INC_ODBC_ORESULTSET_HXX
-#include <com/sun/star/sdbc/FetchDirection.hpp>
#include <com/sun/star/sdbc/XResultSet.hpp>
#include <com/sun/star/sdbc/XRow.hpp>
#include <com/sun/star/sdbc/XResultSetMetaDataSupplier.hpp>
@@ -155,7 +154,7 @@ namespace connectivity
bool isBookmarkable() const;
sal_Int32 getResultSetConcurrency() const;
sal_Int32 getResultSetType() const;
- static sal_Int32 getFetchDirection() { return css::sdbc::FetchDirection::FORWARD; }
+ sal_Int32 getFetchDirection() const;
sal_Int32 getFetchSize() const;
OUString getCursorName() const;
template < typename T, SQLINTEGER BufferLength > T getStmtOption (SQLINTEGER fOption, T dflt = 0) const;