User: obo Date: 05/03/18 01:56:57 Modified: /dba/connectivity/source/commontools/ TIndexes.cxx
Log: INTEGRATION: CWS dba25 (1.3.46); FILE MERGED 2005/03/14 13:10:52 fs 1.3.46.2: RESYNC: (1.3-1.4); FILE MERGED 2005/03/08 07:57:06 oj 1.3.46.1: #i44320# correct the get for unique File Changes: Directory: /dba/connectivity/source/commontools/ ================================================ File [changed]: TIndexes.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/commontools/TIndexes.cxx?r1=1.4&r2=1.5 Delta lines: +27 -20 --------------------- --- TIndexes.cxx 10 Mar 2005 15:17:33 -0000 1.4 +++ TIndexes.cxx 18 Mar 2005 09:56:54 -0000 1.5 @@ -85,6 +85,9 @@ #ifndef _COMPHELPER_EXTRACT_HXX_ #include <comphelper/extract.hxx> #endif +#ifndef _RTL_USTRBUF_HXX_ +#include <rtl/ustrbuf.hxx> +#endif using namespace connectivity; using namespace connectivity::sdbcx; @@ -169,13 +172,13 @@ if(!m_pTable->isNew()) { - ::rtl::OUString aSql = ::rtl::OUString::createFromAscii("CREATE "); + ::rtl::OUStringBuffer aSql( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("CREATE "))); ::rtl::OUString aQuote = m_pTable->getMetaData()->getIdentifierQuoteString( ); ::rtl::OUString aDot = ::rtl::OUString::createFromAscii("."); - if(comphelper::getINT32(descriptor->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_ISUNIQUE)))) - aSql = aSql + ::rtl::OUString::createFromAscii("UNIQUE "); - aSql = aSql + ::rtl::OUString::createFromAscii("INDEX "); + if(comphelper::getBOOL(descriptor->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_ISUNIQUE)))) + aSql.appendAscii("UNIQUE "); + aSql.appendAscii("INDEX "); ::rtl::OUString aCatalog,aSchema,aTable; @@ -185,35 +188,37 @@ dbtools::composeTableName(m_pTable->getMetaData(),aCatalog,aSchema,aTable,aComposedName,sal_True,::dbtools::eInIndexDefinitions); if ( aName.getLength() ) { - aSql = aSql + ::dbtools::quoteName( aQuote,aName ) - + ::rtl::OUString::createFromAscii(" ON ") - + aComposedName - + ::rtl::OUString::createFromAscii(" ( "); + aSql.append(::dbtools::quoteName( aQuote,aName )); + aSql.appendAscii(" ON "); + aSql.append(aComposedName); + aSql.appendAscii(" ( "); Reference<XColumnsSupplier> xColumnSup(descriptor,UNO_QUERY); Reference<XIndexAccess> xColumns(xColumnSup->getColumns(),UNO_QUERY); Reference< XPropertySet > xColProp; - for(sal_Int32 i=0;i<xColumns->getCount();++i) + sal_Bool bAddIndexAppendix = ::dbtools::isDataSourcePropertyEnabled(m_pTable->getConnection(),::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AddIndexAppendix")),sal_True); + sal_Int32 nCount = xColumns->getCount(); + for(sal_Int32 i = 0 ; i < nCount; ++i) { - ::cppu::extractInterface(xColProp,xColumns->getByIndex(i)); - aSql = aSql + ::dbtools::quoteName( aQuote,comphelper::getString(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME)))); + xColProp.set(xColumns->getByIndex(i),UNO_QUERY); + aSql.append(::dbtools::quoteName( aQuote,comphelper::getString(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME))))); - if ( ::dbtools::isDataSourcePropertyEnabled(m_pTable->getConnection(),::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AddIndexAppendix")),sal_True) ) + if ( bAddIndexAppendix ) { - aSql += (any2bool(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_ISASCENDING))) + aSql.appendAscii(any2bool(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_ISASCENDING))) ? - ::rtl::OUString::createFromAscii(" ASC") + " ASC" : - ::rtl::OUString::createFromAscii(" DESC")); + " DESC"); } - aSql += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(",")); + aSql.appendAscii(","); } - aSql = aSql.replaceAt(aSql.getLength()-1,1,::rtl::OUString::createFromAscii(")")); + aSql.setCharAt(aSql.getLength()-1,')'); } else { - aSql = aSql + aComposedName; + aSql.append(aComposedName); Reference<XColumnsSupplier> xColumnSup(descriptor,UNO_QUERY); Reference<XIndexAccess> xColumns(xColumnSup->getColumns(),UNO_QUERY); @@ -223,13 +228,15 @@ xColumns->getByIndex(0) >>= xColProp; - aSql = aSql + aDot + ::dbtools::quoteName( aQuote,comphelper::getString(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME)))); + aSql.append(aDot); + aSql.append(::dbtools::quoteName( aQuote,comphelper::getString(xColProp->getPropertyValue(rPropMap.getNameByIndex(PROPERTY_ID_NAME))))); } Reference< XStatement > xStmt = m_pTable->getConnection()->createStatement( ); if ( xStmt.is() ) { - xStmt->execute(aSql); + ::rtl::OUString sSql = aSql.makeStringAndClear(); + xStmt->execute(sSql); ::comphelper::disposeComponent(xStmt); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
