Tag: cws_src680_dba24d
User: oj      
Date: 2007-11-21 12:41:19+0000
Modified:
   dba/connectivity/source/drivers/odbc/OConnection.cxx
   dba/connectivity/source/drivers/odbc/ODatabaseMetaData.cxx

Log:
 #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.41.44.1
Delta lines:  +10 -19
---------------------
--- OConnection.cxx     2007-07-24 11:50:49+0000        1.41
+++ OConnection.cxx     2007-11-21 12:41:17+0000        1.41.44.1
@@ -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;
                }

File [changed]: ODatabaseMetaData.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/odbc/ODatabaseMetaData.cxx?r1=1.33&r2=1.33.116.1
Delta lines:  +19 -58
---------------------
--- ODatabaseMetaData.cxx       2006-12-13 16:21:45+0000        1.33
+++ ODatabaseMetaData.cxx       2007-11-21 12:41:17+0000        1.33.116.1
@@ -71,7 +71,7 @@
 using namespace com::sun::star::sdbc;
 
 ODatabaseMetaData::ODatabaseMetaData(const SQLHANDLE _pHandle,OConnection* 
_pCon)
-                                               : 
::connectivity::ODatabaseMetaDataBase(_pCon)
+                                               : 
::connectivity::ODatabaseMetaDataBase(_pCon,_pCon->getConnectionInfo())
                                                ,m_aConnectionHandle(_pHandle)
                                                ,m_pConnection(_pCon)
                                                ,m_bUseCatalog(sal_True)
@@ -92,14 +92,13 @@
                }
                osl_decrementInterlockedCount( &m_refCount );
        }
-    setConnectionInfo( _pCon->getConnectionInfo() );
 }
 // -------------------------------------------------------------------------
 ODatabaseMetaData::~ODatabaseMetaData()
 {
 }
 // -------------------------------------------------------------------------
-Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTypeInfo(  ) 
throw(SQLException, RuntimeException)
+Reference< XResultSet > ODatabaseMetaData::impl_getTypeInfo_throw(  )
 {
        Reference< XResultSet > xRef;
        try
@@ -110,9 +109,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setTypeInfoMap();
+        xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTypeInfo);
        }
 
        return xRef;
@@ -123,9 +120,7 @@
        Reference< XResultSet > xRef;
        if(!m_bUseCatalog)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setCatalogsMap();
+        xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eCatalogs);
        }
        else
        {
@@ -137,9 +132,7 @@
                }
                catch(SQLException&)
                {
-                       ::connectivity::ODatabaseMetaDataResultSet* pResult = 
new ::connectivity::ODatabaseMetaDataResultSet();
-                       xRef = pResult;
-                       pResult->setCatalogsMap();
+                       xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eCatalogs);
                }
        }
 
@@ -167,9 +160,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setSchemasMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eSchemas);
        }
        return xRef;
 }
@@ -187,9 +178,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setColumnPrivilegesMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eColumnPrivileges);
        }
        return xRef;
 }
@@ -207,9 +196,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setColumnsMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eColumns);
        }
        return xRef;
 }
@@ -227,9 +214,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setTablesMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTables);
        }
        return xRef;
 }
@@ -247,9 +232,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setProcedureColumnsMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eProcedureColumns);
        }
        return xRef;
 }
@@ -267,9 +250,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setProceduresMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eProcedures);
        }
        return xRef;
 }
@@ -295,9 +276,7 @@
 
     if ( !bSuccess )
     {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setVersionColumnsMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eVersionColumns);
     }
 
     return xRef;
@@ -399,9 +378,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setExportedKeysMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eExportedKeys);
        }
        return xRef;
 }
@@ -418,9 +395,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setImportedKeysMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eImportedKeys);
        }
        return xRef;
 }
@@ -437,9 +412,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setPrimaryKeysMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::ePrimaryKeys);
        }
        return xRef;
 }
@@ -457,9 +430,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setIndexInfoMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eIndexInfo);
        }
        return xRef;
 }
@@ -477,9 +448,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setBestRowIdentifierMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eBestRowIdentifier);
        }
        return xRef;
 }
@@ -512,9 +481,7 @@
        }
        catch(SQLException&)
        {
-               ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
-               xRef = pResult;
-               pResult->setCrossReferenceMap();
+               xRef = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eCrossReference);
        }
        return xRef;
 }
@@ -800,9 +767,8 @@
                ::rtl::OUString::createFromAscii("SYNONYM")
        };
        sal_Int32  nSize = sizeof(sTableTypes) / sizeof(::rtl::OUString);
-       ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet();
+       ::connectivity::ODatabaseMetaDataResultSet* pResult = new 
::connectivity::ODatabaseMetaDataResultSet(::connectivity::ODatabaseMetaDataResultSet::eTableTypes);
     Reference< XResultSet > xRef = pResult;
-       pResult->setTableTypes();
        SQLUINTEGER nValue = 0;
        try
        {
@@ -1799,10 +1765,5 @@
        return NULL;
 }
 // -------------------------------------------------------------------------
-Reference< XConnection > SAL_CALL ODatabaseMetaData::getConnection(  ) 
throw(SQLException, RuntimeException)
-{
-       return (Reference< XConnection >)m_pConnection;//new 
OConnection(m_aConnectionHandle);
-}
-// -------------------------------------------------------------------------
 
 




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

Reply via email to