[Libreoffice-commits] core.git: 3 commits - connectivity/source
Lionel Elie Mamane
lionel at mamane.lu
Thu Nov 7 19:18:06 CET 2013
connectivity/source/drivers/firebird/Connection.cxx | 39 +++++++++++++++++---
connectivity/source/drivers/firebird/Connection.hxx | 8 ++++
connectivity/source/drivers/firebird/Driver.cxx | 6 +--
connectivity/source/drivers/firebird/Driver.hxx | 4 +-
connectivity/source/inc/java/sql/Connection.hxx | 2 -
5 files changed, 49 insertions(+), 10 deletions(-)
New commits:
commit e58c7886fe3dc830a14433078b8a1bea52a85f11
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Nov 7 19:15:54 2013 +0100
typo in comment
Change-Id: Iea5084bd1c5765197e5dcf379637a780e52f42bd
diff --git a/connectivity/source/inc/java/sql/Connection.hxx b/connectivity/source/inc/java/sql/Connection.hxx
index 148a8d7..fc276c4 100644
--- a/connectivity/source/inc/java/sql/Connection.hxx
+++ b/connectivity/source/inc/java/sql/Connection.hxx
@@ -62,7 +62,7 @@ namespace connectivity
@param _sSQL
The SQL statement to transform.
@return
- The new statement witgh unnamed parameters.
+ The new statement with unnamed parameters.
*/
OUString transFormPreparedStatement(const OUString& _sSQL);
void loadDriverFromProperties(
commit aaee12a8a84df2568b2262ee991a61ab926ae6c6
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Nov 7 19:15:38 2013 +0100
fdo#65108 inter-module includes <>
Change-Id: Ie7e08f25741772f657a71369483917d989a05537
diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx
index 3d552d9..b2dfcc0 100644
--- a/connectivity/source/drivers/firebird/Connection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -44,11 +44,11 @@
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
#include <com/sun/star/ucb/XSimpleFileAccess2.hpp>
-#include "connectivity/dbexception.hxx"
+#include <connectivity/dbexception.hxx>
#include <connectivity/sqlparse.hxx>
-#include "resource/common_res.hrc"
-#include "resource/hsqldb_res.hrc"
-#include "resource/sharedresources.hxx"
+#include <resource/common_res.hrc>
+#include <resource/hsqldb_res.hrc>
+#include <resource/sharedresources.hxx>
#include <comphelper/processfactory.hxx>
#include <comphelper/storagehelper.hxx>
commit c2ad6017e66909e9797bc728ac28a9575c84343e
Author: Lionel Elie Mamane <lionel at mamane.lu>
Date: Thu Nov 7 19:12:23 2013 +0100
firebird-sdbc: replace named parameter by unnamed
Change-Id: Iad6023d9d16b10001bb8493dea483e655fc8519c
diff --git a/connectivity/source/drivers/firebird/Connection.cxx b/connectivity/source/drivers/firebird/Connection.cxx
index 67e7a9d..3d552d9 100644
--- a/connectivity/source/drivers/firebird/Connection.cxx
+++ b/connectivity/source/drivers/firebird/Connection.cxx
@@ -45,6 +45,7 @@
#include <com/sun/star/ucb/XSimpleFileAccess2.hpp>
#include "connectivity/dbexception.hxx"
+#include <connectivity/sqlparse.hxx>
#include "resource/common_res.hrc"
#include "resource/hsqldb_res.hrc"
#include "resource/sharedresources.hxx"
@@ -372,6 +373,30 @@ Reference< XStatement > SAL_CALL Connection::createStatement( )
return xReturn;
}
+OUString Connection::transformPreparedStatement(const OUString& _sSQL)
+{
+ OUString sSqlStatement (_sSQL);
+ try
+ {
+ OSQLParser aParser( m_pDriver->getContext() );
+ OUString sErrorMessage;
+ OUString sNewSql;
+ OSQLParseNode* pNode = aParser.parseTree(sErrorMessage,_sSQL);
+ if(pNode)
+ { // special handling for parameters
+ OSQLParseNode::substituteParameterNames(pNode);
+ pNode->parseNodeToStr( sNewSql, this );
+ delete pNode;
+ sSqlStatement = sNewSql;
+ }
+ }
+ catch(const Exception&)
+ {
+ SAL_WARN("connectivity.firebird", "failed to remove named parameters from '" << _sSQL << "'");
+ }
+ return sSqlStatement;
+}
+
Reference< XPreparedStatement > SAL_CALL Connection::prepareStatement(
const OUString& _sSql)
throw(SQLException, RuntimeException)
@@ -384,9 +409,11 @@ Reference< XPreparedStatement > SAL_CALL Connection::prepareStatement(
if(m_aTypeInfo.empty())
buildTypeInfo();
+ OUString sSqlStatement (transformPreparedStatement( _sSql ));
+
Reference< XPreparedStatement > xReturn = new OPreparedStatement(this,
m_aTypeInfo,
- _sSql);
+ sSqlStatement);
m_aStatements.push_back(WeakReferenceHelper(xReturn));
return xReturn;
@@ -401,6 +428,8 @@ Reference< XPreparedStatement > SAL_CALL Connection::prepareCall(
MutexGuard aGuard( m_aMutex );
checkDisposed(Connection_BASE::rBHelper.bDisposed);
+ OUString sSqlStatement (transformPreparedStatement( _sSql ));
+
// not implemented yet :-) a task to do
return NULL;
}
diff --git a/connectivity/source/drivers/firebird/Connection.hxx b/connectivity/source/drivers/firebird/Connection.hxx
index a2f7dfe..6c8dba4 100644
--- a/connectivity/source/drivers/firebird/Connection.hxx
+++ b/connectivity/source/drivers/firebird/Connection.hxx
@@ -156,6 +156,14 @@ namespace connectivity
throw(::com::sun::star::sdbc::SQLException);
void disposeStatements();
+ /** transform named parameters into unnamed parameters
+ @param _sSQL
+ The SQL statement to transform.
+ @return
+ The new statement with unnamed parameters
+ */
+ OUString transformPreparedStatement(const OUString& _sSQL);
+
public:
Connection(FirebirdDriver* _pDriver);
virtual ~Connection();
diff --git a/connectivity/source/drivers/firebird/Driver.cxx b/connectivity/source/drivers/firebird/Driver.cxx
index ecbb395..b15514c 100644
--- a/connectivity/source/drivers/firebird/Driver.cxx
+++ b/connectivity/source/drivers/firebird/Driver.cxx
@@ -48,8 +48,7 @@ namespace connectivity
const Reference< XMultiServiceFactory >& _rxFactory) throw( Exception )
{
SAL_INFO("connectivity.firebird", "FirebirdDriver_CreateInstance()" );
- (void) _rxFactory;
- return *(new FirebirdDriver());
+ return *(new FirebirdDriver(comphelper::getComponentContext(_rxFactory)));
}
}
}
@@ -58,8 +57,9 @@ namespace connectivity
const OUString FirebirdDriver::our_sFirebirdTmpVar("FIREBIRD_TMP");
const OUString FirebirdDriver::our_sFirebirdLockVar("FIREBIRD_LOCK");
-FirebirdDriver::FirebirdDriver()
+FirebirdDriver::FirebirdDriver(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext)
: ODriver_BASE(m_aMutex)
+ , m_aContext(_rxContext)
, m_firebirdTMPDirectory(NULL, true)
, m_firebirdLockDirectory(NULL, true)
{
diff --git a/connectivity/source/drivers/firebird/Driver.hxx b/connectivity/source/drivers/firebird/Driver.hxx
index 31c93c6..0c03bac 100644
--- a/connectivity/source/drivers/firebird/Driver.hxx
+++ b/connectivity/source/drivers/firebird/Driver.hxx
@@ -49,6 +49,7 @@ namespace connectivity
static const ::rtl::OUString our_sFirebirdTmpVar;
static const ::rtl::OUString our_sFirebirdLockVar;
+ css::uno::Reference<css::uno::XComponentContext> m_aContext;
::utl::TempFile m_firebirdTMPDirectory;
::utl::TempFile m_firebirdLockDirectory;
@@ -60,7 +61,8 @@ namespace connectivity
public:
- FirebirdDriver();
+ FirebirdDriver(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext);
+ const css::uno::Reference<css::uno::XComponentContext>& getContext() const { return m_aContext; }
// OComponentHelper
virtual void SAL_CALL disposing(void);
More information about the Libreoffice-commits
mailing list