Tag: cws_src680_dba24d
User: oj      
Date: 2007-11-06 09:04:05+0000
Modified:
   dba/connectivity/source/drivers/jdbc/makefile.mk
   dba/connectivity/source/drivers/jdbc/ResultSet.cxx
   dba/connectivity/source/drivers/jdbc/PreparedStatement.cxx
   dba/connectivity/source/drivers/jdbc/JStatement.cxx
   dba/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx

Log:
 #i51965# impl updateNumericObject and setObjectWithInfo

File Changes:

Directory: /dba/connectivity/source/drivers/jdbc/
=================================================

File [changed]: makefile.mk
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/jdbc/makefile.mk?r1=1.20&r2=1.20.54.1
Delta lines:  +4 -3
-------------------
--- makefile.mk 2007-06-27 14:37:42+0000        1.20
+++ makefile.mk 2007-11-06 09:04:02+0000        1.20.54.1
@@ -4,9 +4,9 @@
 #
 #   $RCSfile: makefile.mk,v $
 #
-#   $Revision: 1.20 $
+#   $Revision: 1.20.54.1 $
 #
-#   last change: $Author: hr $ $Date: 2007/06/27 14:37:42 $
+#   last change: $Author: oj $ $Date: 2007/11/06 09:04:02 $
 #
 #   The Contents of this file are made available subject to
 #   the terms of GNU Lesser General Public License Version 2.1.
@@ -82,6 +82,7 @@
                $(SLO)$/Throwable.obj                                           
\
                $(SLO)$/Timestamp.obj                                           
\
                $(SLO)$/jservices.obj                                           
\
+               $(SLO)$/JBigDecimal.obj                                         
\
                $(SLO)$/tools.obj
 
 SHL1VERSIONMAP=$(JDBC_TARGET).map

File [changed]: ResultSet.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/jdbc/ResultSet.cxx?r1=1.31&r2=1.31.54.1
Delta lines:  +42 -7
--------------------
--- ResultSet.cxx       2007-06-27 14:37:11+0000        1.31
+++ ResultSet.cxx       2007-11-06 09:04:02+0000        1.31.54.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: ResultSet.cxx,v $
  *
- *  $Revision: 1.31 $
+ *  $Revision: 1.31.54.1 $
  *
- *  last change: $Author: hr $ $Date: 2007/06/27 14:37:11 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:04:02 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -38,6 +38,7 @@
 #ifndef _CONNECTIVITY_JAVA_SQL_RESULTSET_HXX_
 #include "java/sql/ResultSet.hxx"
 #endif
+#include "java/math/BigDecimal.hxx"
 #ifndef _CONNECTIVITY_JAVA_SQL_STATEMENT_HXX_
 #include "java/sql/JStatement.hxx"
 #endif
@@ -112,11 +113,12 @@
 //**************************************************************
 
 jclass java_sql_ResultSet::theClass = 0;
-java_sql_ResultSet::java_sql_ResultSet( JNIEnv * pEnv, jobject myObj, const 
java::sql::ConnectionLog& _rParentLogger, java_sql_Statement_Base* pStmt)
+java_sql_ResultSet::java_sql_ResultSet( JNIEnv * pEnv, jobject myObj, const 
java::sql::ConnectionLog& _rParentLogger,java_sql_Connection& _rConnection, 
java_sql_Statement_Base* pStmt)
     :java_sql_ResultSet_BASE(m_aMutex)
     ,java_lang_Object( pEnv, myObj )
     ,OPropertySetHelper(java_sql_ResultSet_BASE::rBHelper)
     ,m_aLogger( _rParentLogger, java::sql::ConnectionLog::RESULTSET )
+    ,m_pConnection(&_rConnection)
 {
        SDBThreadAttach::addRef();
        osl_incrementInterlockedCount(&m_refCount);
@@ -510,7 +512,7 @@
                }
        }
 
-       return out==0 ? 0 : new java_sql_ResultSetMetaData( t.pEnv, out, 
m_aLogger );
+       return out==0 ? 0 : new java_sql_ResultSetMetaData( t.pEnv, out, 
m_aLogger,*m_pConnection );
 }
 // -------------------------------------------------------------------------
 Reference< XArray > SAL_CALL java_sql_ResultSet::getArray( sal_Int32 
columnIndex ) throw(SQLException, RuntimeException)
@@ -1579,10 +1581,43 @@
 }
 // -------------------------------------------------------------------------
 
-void SAL_CALL java_sql_ResultSet::updateNumericObject( sal_Int32 columnIndex, 
const ::com::sun::star::uno::Any& x, sal_Int32 /*scale*/ ) 
throw(::com::sun::star::sdbc::SQLException, 
::com::sun::star::uno::RuntimeException)
+void SAL_CALL java_sql_ResultSet::updateNumericObject( sal_Int32 columnIndex, 
const ::com::sun::star::uno::Any& x, sal_Int32 scale ) 
throw(::com::sun::star::sdbc::SQLException, 
::com::sun::star::uno::RuntimeException)
 {
        //      OSL_ENSURE(0,"java_sql_ResultSet::updateNumericObject: NYI");
+    try
+    {
+        SDBThreadAttach t;
+           if( t.pEnv )
+           {
+
+                   // temporaere Variable initialisieren
+                   static const char * cSignature = "(ILjava/lang/Object;I)V";
+                   static const char * cMethodName = "updateObject";
+                   // Java-Call absetzen
+                   static jmethodID mID = NULL;
+                   if ( !mID  )
+                           mID  = t.pEnv->GetMethodID( getMyClass(), 
cMethodName, cSignature );OSL_ENSURE(mID,"Unknown method id!");
+                   if( mID )
+                   {
+                           // Parameter konvertieren
+                double nTemp = 0.0;
+                ::std::auto_ptr<java_math_BigDecimal> pBigDecimal;
+                if ( x >>= nTemp)
+                {
+                    pBigDecimal.reset(new java_math_BigDecimal(nTemp));
+                }
+                else
+                    pBigDecimal.reset(new 
java_math_BigDecimal(::comphelper::getString(x)));
+                    //obj = 
convertwchar_tToJavaString(t.pEnv,::comphelper::getString(x));
+                t.pEnv->CallVoidMethod( object, mID, 
columnIndex,pBigDecimal->getJavaObject(),scale);
+                ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+                   }
+           }
+    }
+    catch(Exception)
+    {
        updateObject( columnIndex,x);
+    }
 }
 
//------------------------------------------------------------------------------
 sal_Int32 java_sql_ResultSet::getResultSetConcurrency() const 
throw(::com::sun::star::sdbc::SQLException, 
::com::sun::star::uno::RuntimeException)

File [changed]: PreparedStatement.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/jdbc/PreparedStatement.cxx?r1=1.18&r2=1.18.54.1
Delta lines:  +53 -7
--------------------
--- PreparedStatement.cxx       2007-06-27 14:36:57+0000        1.18
+++ PreparedStatement.cxx       2007-11-06 09:04:02+0000        1.18.54.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: PreparedStatement.cxx,v $
  *
- *  $Revision: 1.18 $
+ *  $Revision: 1.18.54.1 $
  *
- *  last change: $Author: hr $ $Date: 2007/06/27 14:36:57 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:04:02 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -50,6 +50,7 @@
 #ifndef _CONNECTIVITY_JAVA_SQL_TIMESTAMP_HXX_
 #include "java/sql/Timestamp.hxx"
 #endif
+#include "java/math/BigDecimal.hxx"
 #ifndef _CONNECTIVITY_JAVA_TOOLS_HXX_
 #include "java/tools.hxx"
 #endif
@@ -242,7 +243,7 @@
                }
        }
 
-       return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+       return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, 
*m_pConnection,this);
 }
 // -------------------------------------------------------------------------
 
@@ -516,9 +517,54 @@
 }
 // -------------------------------------------------------------------------
 
-void SAL_CALL java_sql_PreparedStatement::setObjectWithInfo( sal_Int32 
/*parameterIndex*/, const ::com::sun::star::uno::Any& /*x*/, sal_Int32 
/*targetSqlType*/, sal_Int32 /*scale*/ ) 
throw(::com::sun::star::sdbc::SQLException, 
::com::sun::star::uno::RuntimeException)
+void SAL_CALL java_sql_PreparedStatement::setObjectWithInfo( sal_Int32 
parameterIndex, const ::com::sun::star::uno::Any& x, sal_Int32 targetSqlType, 
sal_Int32 scale ) throw(::com::sun::star::sdbc::SQLException, 
::com::sun::star::uno::RuntimeException)
 {
-    ::dbtools::throwFeatureNotImplementedException( 
"XParameters::setObjectWithInfo", *this );
+    m_aLogger.log( LogLevel::FINER, STR_LOG_OBJECT_NULL_PARAMETER, 
parameterIndex );
+
+    SDBThreadAttach t; OSL_ENSURE(t.pEnv,"Java Enviroment geloescht worden!");
+       if( t.pEnv ){
+               createStatement(t.pEnv);
+
+               // temporaere Variable initialisieren
+               static const char * cSignature = "(ILjava/lang/Object;II)V";
+               static const char * cMethodName = "setObject";
+               // Java-Call absetzen
+               static jmethodID mID = NULL;
+               if ( !mID  )
+                       mID  = t.pEnv->GetMethodID( getMyClass(), cMethodName, 
cSignature );OSL_ENSURE(mID,"Unknown method id!");
+               if( mID ){
+            jobject obj = NULL;
+            double nTemp = 0.0;
+            switch(targetSqlType)
+            {
+                case DataType::DECIMAL:
+                           case DataType::NUMERIC:
+                    {
+                        ::std::auto_ptr<java_math_BigDecimal> pBigDecimal;
+                        if ( x >>= nTemp)
+                        {
+                            pBigDecimal.reset(new java_math_BigDecimal(nTemp));
+                            //setDouble(parameterIndex,nTemp);
+                            //return;
+                        }
+                        else
+                            pBigDecimal.reset(new 
java_math_BigDecimal(::comphelper::getString(x)));
+                            //obj = 
convertwchar_tToJavaString(t.pEnv,::comphelper::getString(x));
+                        t.pEnv->CallVoidMethod( object, mID, 
parameterIndex,pBigDecimal->getJavaObject(),targetSqlType,scale);
+                        ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+                        return;
+                    }
+                    break;
+                default:
+                    obj = 
convertwchar_tToJavaString(t.pEnv,::comphelper::getString(x));
+                    break;
+            }
+                       t.pEnv->CallVoidMethod( object, mID, 
parameterIndex,obj,targetSqlType,scale);
+            t.pEnv->DeleteLocalRef(obj);
+                       ThrowLoggedSQLException( m_aLogger, t.pEnv, *this );
+                       // und aufraeumen
+               } //mID
+       } //t.pEnv
 }
 // -------------------------------------------------------------------------
 
@@ -814,7 +860,7 @@
                }
        }
 
-       return out==0 ? 0 : new java_sql_ResultSetMetaData( t.pEnv, out, 
m_aLogger );
+       return out==0 ? 0 : new java_sql_ResultSetMetaData( t.pEnv, out, 
m_aLogger,*m_pConnection );
 }
 // 
-----------------------------------------------------------------------------
 // 
-----------------------------------------------------------------------------

File [changed]: JStatement.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/jdbc/JStatement.cxx?r1=1.3&r2=1.3.54.1
Delta lines:  +6 -6
-------------------
--- JStatement.cxx      2007-06-27 14:36:28+0000        1.3
+++ JStatement.cxx      2007-11-06 09:04:02+0000        1.3.54.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: JStatement.cxx,v $
  *
- *  $Revision: 1.3 $
+ *  $Revision: 1.3.54.1 $
  *
- *  last change: $Author: hr $ $Date: 2007/06/27 14:36:28 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:04:02 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -254,7 +254,7 @@
                }
        }
        else
-               xRes = new java_sql_ResultSet( t.pEnv, out, m_aLogger, this );
+               xRes = new java_sql_ResultSet( t.pEnv, out, 
m_aLogger,*m_pConnection, this );
        return xRes;
 }
 
@@ -370,7 +370,7 @@
                } //mID
        } //t.pEnv
        // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten 
Zeigers !!!
-    return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, this );
+    return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, 
*m_pConnection,this );
 }
 // -------------------------------------------------------------------------
 Reference< XConnection > SAL_CALL java_sql_Statement_Base::getConnection(  ) 
throw(SQLException, RuntimeException)
@@ -490,7 +490,7 @@
                } //mID
        } //t.pEnv
        // ACHTUNG: der Aufrufer wird Eigentuemer des zurueckgelieferten 
Zeigers !!!
-       return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, 
this );
+       return out==0 ? 0 : new java_sql_ResultSet( t.pEnv, out, m_aLogger, 
*m_pConnection,this );
 }
 // -------------------------------------------------------------------------
 

File [changed]: DatabaseMetaData.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/jdbc/DatabaseMetaData.cxx?r1=1.26&r2=1.26.44.1
Delta lines:  +10 -10
---------------------
--- DatabaseMetaData.cxx        2007-07-24 11:50:25+0000        1.26
+++ DatabaseMetaData.cxx        2007-11-06 09:04:02+0000        1.26.44.1
@@ -4,9 +4,9 @@
  *
  *  $RCSfile: DatabaseMetaData.cxx,v $
  *
- *  $Revision: 1.26 $
+ *  $Revision: 1.26.44.1 $
  *
- *  last change: $Author: rt $ $Date: 2007/07/24 11:50:25 $
+ *  last change: $Author: oj $ $Date: 2007/11/06 09:04:02 $
  *
  *  The Contents of this file are made available subject to
  *  the terms of GNU Lesser General Public License Version 2.1.
@@ -247,7 +247,7 @@
         return NULL;
 
     m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, cMethodName );
-       return new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+       return new java_sql_ResultSet( t.pEnv, out, m_aLogger,*m_pConnection);
 }
 // -------------------------------------------------------------------------
 Reference< XResultSet > SAL_CALL 
java_sql_DatabaseMetaData::getProcedureColumns(
@@ -405,7 +405,7 @@
         return NULL;
 
     m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, cMethodName );
-       return new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+       return new java_sql_ResultSet( t.pEnv, out, m_aLogger,*m_pConnection);
 }
 // -------------------------------------------------------------------------
 Reference< XResultSet > SAL_CALL 
java_sql_DatabaseMetaData::getBestRowIdentifier(
@@ -448,7 +448,7 @@
         return NULL;
 
     m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, cMethodName );
-       return new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+       return new java_sql_ResultSet( t.pEnv, out, m_aLogger,*m_pConnection);
 }
 // -------------------------------------------------------------------------
 Reference< XResultSet > SAL_CALL java_sql_DatabaseMetaData::getTablePrivileges(
@@ -578,7 +578,7 @@
         return NULL;
 
     m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, cMethodName );
-       return new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+       return new java_sql_ResultSet( t.pEnv, out, m_aLogger,*m_pConnection);
 }
 
 // -------------------------------------------------------------------------
@@ -728,7 +728,7 @@
         return NULL;
 
     m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, _pMethodName );
-    return new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+    return new java_sql_ResultSet( t.pEnv, out, m_aLogger,*m_pConnection);
 }
 
 // -------------------------------------------------------------------------
@@ -800,7 +800,7 @@
         return NULL;
 
     m_aLogger.log( LogLevel::FINEST, STR_LOG_META_DATA_SUCCESS, _pMethodName );
-    return new java_sql_ResultSet( t.pEnv, out, m_aLogger );
+    return new java_sql_ResultSet( t.pEnv, out, m_aLogger,*m_pConnection);
 }
 
 // -------------------------------------------------------------------------
@@ -1596,7 +1596,7 @@
                }
        }
 
-       return out ? new java_sql_ResultSet( t.pEnv, out, m_aLogger ) : 0;
+       return out ? new java_sql_ResultSet( t.pEnv, out, 
m_aLogger,*m_pConnection ) : 0;
 }
 // -------------------------------------------------------------------------
 Reference< XConnection > SAL_CALL java_sql_DatabaseMetaData::getConnection(  ) 
throw(SQLException, RuntimeException)




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to