Tag: cws_dev300_dba30c User: oj Date: 2008-05-08 07:15:44+0000 Modified: dba/connectivity/source/drivers/adabas/BKeys.cxx
Log: #i87131# collect keys only once, getKeys always refetch keys File Changes: Directory: /dba/connectivity/source/drivers/adabas/ =================================================== File [changed]: BKeys.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/adabas/BKeys.cxx?r1=1.24.10.1&r2=1.24.10.2 Delta lines: +11 -6 -------------------- --- BKeys.cxx 2008-05-05 10:57:50+0000 1.24.10.1 +++ BKeys.cxx 2008-05-08 07:15:41+0000 1.24.10.2 @@ -7,7 +7,7 @@ * OpenOffice.org - a multi-platform office productivity suite * * $RCSfile: BKeys.cxx,v $ - * $Revision: 1.24.10.1 $ + * $Revision: 1.24.10.2 $ * * This file is part of OpenOffice.org. * @@ -96,14 +96,18 @@ } aSql = aSql.replaceAt(aSql.getLength()-1,1,::rtl::OUString::createFromAscii(")")); + sal_Int32 nUpdateRule = 0, nDeleteRule = 0; + ::rtl::OUString sReferencedName; + if(nKeyType == KeyType::FOREIGN) { - sal_Int32 nDeleteRule = getINT32(descriptor->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DELETERULE))); + nDeleteRule = getINT32(descriptor->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_DELETERULE))); - ::rtl::OUString aName,aSchema,aRefTable = getString(descriptor->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_REFERENCEDTABLE))); - sal_Int32 nLen = aRefTable.indexOf('.'); - aSchema = aRefTable.copy(0,nLen); - aName = aRefTable.copy(nLen+1); + ::rtl::OUString aName,aSchema; + sReferencedName = getString(descriptor->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_REFERENCEDTABLE))); + sal_Int32 nLen = sReferencedName.indexOf('.'); + aSchema = sReferencedName.copy(0,nLen); + aName = sReferencedName.copy(nLen+1); aSql += ::rtl::OUString::createFromAscii(" REFERENCES ") + aQuote + aSchema + aQuote + sDot + aQuote + aName + aQuote; aSql += ::rtl::OUString::createFromAscii(" ("); @@ -167,6 +171,7 @@ } } + getTable()->addKey(sNewName,sdbcx::TKeyProperties(new sdbcx::KeyProperties(sReferencedName,nKeyType,nUpdateRule,nDeleteRule))); return createObject( sNewName ); } // ------------------------------------------------------------------------- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
