User: obo     
Date: 05/12/19 09:15:19

Modified:
 /dba/dbaccess/source/core/api/
  resultset.cxx

Log:
 INTEGRATION: CWS kaddrbook (1.13.56); FILE MERGED
 2005/12/05 12:15:24 fs 1.13.56.1: #i58879# respect 
XDatabaseMetaData::getVersionColumns, and translate it into 
css.sdbcx.Column.IsRowVersion

File Changes:

Directory: /dba/dbaccess/source/core/api/
=========================================

File [changed]: resultset.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/core/api/resultset.cxx?r1=1.13&r2=1.14
Delta lines:  +44 -1
--------------------
--- resultset.cxx       8 Sep 2005 10:10:03 -0000       1.13
+++ resultset.cxx       19 Dec 2005 17:15:17 -0000      1.14
@@ -71,6 +71,12 @@
 #ifndef _DBHELPER_DBEXCEPTION_HXX_
 #include <connectivity/dbexception.hxx>
 #endif
+#ifndef _CPPUHELPER_EXC_HLP_HXX_
+#include <cppuhelper/exc_hlp.hxx>
+#endif
+#ifndef _OSL_THREAD_H_
+#include <osl/thread.h>
+#endif
 
 
 using namespace ::com::sun::star::sdbc;
@@ -357,6 +363,41 @@
        return Reference< XColumnLocate >(m_xAggregateAsResultSet, 
UNO_QUERY)->findColumn(columnName);
 }
 
+//------------------------------------------------------------------------------
+namespace
+{
+    static Reference< XDatabaseMetaData > 
lcl_getDBMetaDataFromStatement_nothrow( const Reference< XInterface >& 
_rxStatement )
+    {
+        Reference< XDatabaseMetaData > xDBMetaData;
+        try
+        {
+            Reference< XStatement > xStatement( _rxStatement, UNO_QUERY );
+            Reference< XPreparedStatement > xPreparedStatement( _rxStatement, 
UNO_QUERY );
+            Reference< XConnection > xConn;
+            if ( xStatement.is() )
+                xConn = xStatement->getConnection();
+            else if ( xPreparedStatement.is() )
+                xConn = xPreparedStatement->getConnection();
+            if ( xConn.is() )
+                xDBMetaData = xConn->getMetaData();
+        }
+        catch( const Exception& e )
+        {
+        #if OSL_DEBUG_LEVEL > 0
+               Any caught( ::cppu::getCaughtException() );
+               ::rtl::OString sMessage( 
"lcl_getDBMetaDataFromStatement_nothrow: caught an exception!" );
+               sMessage += "\ntype: ";
+               sMessage += ::rtl::OString( caught.getValueTypeName().getStr(), 
caught.getValueTypeName().getLength(), osl_getThreadTextEncoding() );
+               sMessage += "\nmessage: ";
+               sMessage += ::rtl::OString( e.Message.getStr(), 
e.Message.getLength(), osl_getThreadTextEncoding() );
+               OSL_ENSURE( false, sMessage );
+        #else
+               e; // make compiler happy
+        #endif
+        }
+        return xDBMetaData;
+    }
+}
 // ::com::sun::star::sdbcx::XColumnsSupplier
 
//------------------------------------------------------------------------------
 Reference< ::com::sun::star::container::XNameAccess > 
OResultSet::getColumns(void) throw( RuntimeException )
@@ -372,11 +413,13 @@
                // do we have columns
                try
                {
+            Reference< XDatabaseMetaData > xDBMetaData( 
lcl_getDBMetaDataFromStatement_nothrow( getStatement() ) );
+
                        for (sal_Int32 i = 0, nCount = 
xMetaData->getColumnCount(); i < nCount; ++i)
                        {
                                // retrieve the name of the column
                                rtl::OUString aName = 
xMetaData->getColumnName(i + 1);
-                               ODataColumn* pColumn = new 
ODataColumn(xMetaData, m_xAggregateAsRow, m_xAggregateAsRowUpdate, i + 1);
+                               ODataColumn* pColumn = new 
ODataColumn(xMetaData, m_xAggregateAsRow, m_xAggregateAsRowUpdate, i + 1, 
xDBMetaData);
                                m_pColumns->append(aName, pColumn);
                        }
                }




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

Reply via email to