User: rt Date: 2008-01-30 07:58:06+0000 Modified: dba/connectivity/source/drivers/odbc/OConnection.cxx
Log: INTEGRATION: CWS dba24d (1.41.44); FILE MERGED 2007/11/21 12:41:17 oj 1.41.44.1: #i68854# impl TypeSettingInfo for Oracle and some clean up File Changes: Directory: /dba/connectivity/source/drivers/odbc/ ================================================= File [changed]: OConnection.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/odbc/OConnection.cxx?r1=1.41&r2=1.42 Delta lines: +10 -19 --------------------- --- OConnection.cxx 2007-07-24 11:50:49+0000 1.41 +++ OConnection.cxx 2008-01-30 07:58:03+0000 1.42 @@ -93,7 +93,6 @@ // -------------------------------------------------------------------------------- OConnection::OConnection(const SQLHANDLE _pDriverHandle,ODBCDriver* _pDriver) : OSubComponent<OConnection, OConnection_BASE>((::cppu::OWeakObject*)_pDriver, this) - ,m_xMetaData(NULL) ,m_pDriver(_pDriver) ,m_pDriverHandleCopy(_pDriverHandle) ,m_nStatementCount(0) @@ -215,7 +214,7 @@ { m_aConnectionHandle = SQL_NULL_HANDLE; m_sURL = url; - m_aInfo = info; + setConnectionInfo(info); // Connection allozieren N3SQLAllocHandle(SQL_HANDLE_DBC,m_pDriverHandleCopy,&m_aConnectionHandle); @@ -301,7 +300,6 @@ m_nTextEncoding = RTL_TEXTENCODING_DONTKNOW; if(m_nTextEncoding == RTL_TEXTENCODING_DONTKNOW) m_nTextEncoding = osl_getThreadTextEncoding(); - } } m_sUser = aUID; @@ -545,6 +543,7 @@ ::connectivity::ORowSetValue aValue; ::std::vector<sal_Int32> aTypes; Reference<XResultSetMetaData> xResultSetMetaData = Reference<XResultSetMetaDataSupplier>(xRs,UNO_QUERY)->getMetaData(); + sal_Int32 nCount = xResultSetMetaData->getColumnCount(); // Loop on the result set until we reach end of file while (xRs->next ()) { @@ -552,7 +551,6 @@ sal_Int32 nPos = 1; if ( aTypes.empty() ) { - sal_Int32 nCount = xResultSetMetaData->getColumnCount(); if ( nCount < 1 ) nCount = 18; aTypes.reserve(nCount+1); @@ -605,9 +603,12 @@ ++nPos; aValue.fill(nPos,aTypes[nPos],xRow); aInfo.nMaximumScale = aValue; + if ( nCount >= 18 ) + { nPos = 18; aValue.fill(nPos,aTypes[nPos],xRow); aInfo.nNumPrecRadix = aValue; + } // check if values are less than zero like it happens in a oracle jdbc driver if( aInfo.nPrecision < 0) @@ -638,15 +639,7 @@ { ::osl::MutexGuard aGuard(m_aMutex); - - // m_aTables.disposing(); - for (OWeakRefArray::iterator i = m_aStatements.begin(); m_aStatements.end() != i; ++i) - { - Reference< XComponent > xComp(i->get(), UNO_QUERY); - if (xComp.is()) - xComp->dispose(); - } - m_aStatements.clear(); + OConnection_BASE::disposing(); for (::std::map< SQLHANDLE,OConnection*>::iterator aConIter = m_aConnections.begin();aConIter != m_aConnections.end();++aConIter ) aConIter->second->dispose(); @@ -656,10 +649,8 @@ if(!m_bClosed) N3SQLDisconnect(m_aConnectionHandle); m_bClosed = sal_True; - m_xMetaData = ::com::sun::star::uno::WeakReference< ::com::sun::star::sdbc::XDatabaseMetaData>(); dispose_ChildImpl(); - OConnection_BASE::disposing(); } // ----------------------------------------------------------------------------- OConnection* OConnection::cloneConnection() @@ -678,7 +669,7 @@ { OConnection* pConnection = cloneConnection(); pConnection->acquire(); - pConnection->Construct(m_sURL,m_aInfo); + pConnection->Construct(m_sURL,getConnectionInfo()); pConnectionTemp = pConnection; bNew = sal_True; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
