User: hr      
Date: 05/09/23 04:38:18

Modified:
 /dba/connectivity/source/drivers/ado/
  Awrapado.cxx

Log:
 INTEGRATION: CWS dba201b (1.14.122); FILE MERGED
 2005/09/21 07:22:49 oj 1.14.122.2: RESYNC: (1.14-1.15); FILE MERGED
 2005/07/11 13:56:38 fs 1.14.122.1: merging CWS dba201a into dba201b

File Changes:

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

File [changed]: Awrapado.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/ado/Awrapado.cxx?r1=1.15&r2=1.16
Delta lines:  +37 -24
---------------------
--- Awrapado.cxx        8 Sep 2005 05:33:14 -0000       1.15
+++ Awrapado.cxx        23 Sep 2005 11:38:15 -0000      1.16
@@ -41,6 +41,10 @@
 #ifndef _COMPHELPER_TYPES_HXX_
 #include <comphelper/types.hxx>
 #endif
+#ifndef _RTL_USTRBUF_HXX_
+#include <rtl/ustrbuf.hxx>
+#endif
+
 
 namespace connectivity
 {
@@ -1994,40 +1998,49 @@
 {
        // Create elements used in the array
        HRESULT hr = S_OK;
-       SAFEARRAYBOUND rgsabound[1];
-       SAFEARRAY *psa = NULL;
        OLEVariant varCriteria[4];
        
-       // Create SafeArray Bounds and initialize the array
-       rgsabound[0].lLbound   = 0;   
-       rgsabound[0].cElements = sizeof varCriteria / sizeof varCriteria[0];
-       psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
-
        sal_Int32 nPos=0;
-       if(catalog.hasValue())
-               varCriteria[nPos].setString(::comphelper::getString(catalog));
+    ::rtl::OUString sCatalog;
+       if ( catalog.hasValue() && (catalog >>= sCatalog) )
+               varCriteria[nPos].setString(sCatalog);
 
-       hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// 
TABLE_CATALOG
+    ++nPos;
        if(schemaPattern.getLength() && schemaPattern.toChar() != '%')
                varCriteria[nPos].setString(schemaPattern);
 
-       hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// 
TABLE_SCHEMA
+       ++nPos;
        if(tableNamePattern.toChar() != '%')
                varCriteria[nPos].setString(tableNamePattern);
-       hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// 
TABLE_NAME
 
-       ::rtl::OUString aTypes,aComma = ::rtl::OUString::createFromAscii(",");
-       const ::rtl::OUString* pBegin = types.getConstArray();
-       const ::rtl::OUString* pEnd = pBegin + types.getLength();
-       for(;pBegin != pEnd;++pBegin)
-               aTypes = aTypes + *pBegin + aComma;
-
-       if(aTypes.getLength())
-               varCriteria[nPos].setString(aTypes);
-       //      else
-               //      
varCriteria[nPos].setString(::rtl::OUString::createFromAscii("TABLE"));
+       ++nPos;
+       ::rtl::OUStringBuffer aTypes;
+    ::rtl::OUString aComma = ::rtl::OUString::createFromAscii(",");
+       const ::rtl::OUString* pIter = types.getConstArray();
+       const ::rtl::OUString* pEnd = pIter + types.getLength();
+       for( ; pIter != pEnd ; ++pIter)
+    {
+        if ( aTypes.getLength() )
+            aTypes.append(aComma);
+               aTypes.append(*pIter); 
+    }
+
+    ::rtl::OUString sTypeNames = aTypes.makeStringAndClear();
+       if ( sTypeNames.getLength() )
+               varCriteria[nPos].setString(sTypeNames);
 
-       hr = SafeArrayPutElement(psa,&nPos,&varCriteria[nPos]);nPos++;// 
TABLE_TYPE
+    // Create SafeArray Bounds and initialize the array
+    const sal_Int32 nCrit = sizeof varCriteria / sizeof varCriteria[0];
+    SAFEARRAYBOUND rgsabound[1];
+    rgsabound[0].lLbound   = 0;   
+    rgsabound[0].cElements = nCrit;
+    SAFEARRAY *psa         = SafeArrayCreate( VT_VARIANT, 1, rgsabound );
+
+    // Set the values for each element of the array
+    for( long i = 0 ; i < nCrit && SUCCEEDED( hr );i++)
+    {
+        hr  = SafeArrayPutElement(psa, &i,&varCriteria[i]); 
+    }
 
        OLEVariant  vtEmpty;
        vtEmpty.setNoArg();




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

Reply via email to