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]
