diff options
Diffstat (limited to 'connectivity/source/drivers/file')
17 files changed, 303 insertions, 363 deletions
diff --git a/connectivity/source/drivers/file/FCatalog.cxx b/connectivity/source/drivers/file/FCatalog.cxx index 5144486ac5..ad4430cb88 100644 --- a/connectivity/source/drivers/file/FCatalog.cxx +++ b/connectivity/source/drivers/file/FCatalog.cxx @@ -72,7 +72,7 @@ void OFileCatalog::refreshTables() TStringVector aVector; Sequence< ::rtl::OUString > aTypes; Reference< XResultSet > xResult = m_xMetaData->getTables(Any(), - ::rtl::OUString::createFromAscii("%"),::rtl::OUString::createFromAscii("%"),aTypes); + ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")),::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%")),aTypes); fillNames(xResult,aVector); if(m_pTables) diff --git a/connectivity/source/drivers/file/FColumns.cxx b/connectivity/source/drivers/file/FColumns.cxx index fb25c29700..ae1d119011 100644 --- a/connectivity/source/drivers/file/FColumns.cxx +++ b/connectivity/source/drivers/file/FColumns.cxx @@ -73,7 +73,7 @@ sdbcx::ObjectType OColumns::createObject(const ::rtl::OUString& _rName) sal_False, sal_False, sal_False, - m_pTable->getConnection()->getMetaData()->storesMixedCaseQuotedIdentifiers()); + m_pTable->getConnection()->getMetaData()->supportsMixedCaseQuotedIdentifiers()); xRet = pRet; break; } diff --git a/connectivity/source/drivers/file/FConnection.cxx b/connectivity/source/drivers/file/FConnection.cxx index 4d2df42be6..a24de50729 100644 --- a/connectivity/source/drivers/file/FConnection.cxx +++ b/connectivity/source/drivers/file/FConnection.cxx @@ -178,7 +178,7 @@ void OConnection::construct(const ::rtl::OUString& url,const Sequence< PropertyV // set fields to fetch Sequence< OUString > aProps(1); OUString* pProps = aProps.getArray(); - pProps[ 0 ] = OUString::createFromAscii( "Title" ); + pProps[ 0 ] = OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); try { @@ -198,7 +198,7 @@ void OConnection::construct(const ::rtl::OUString& url,const Sequence< PropertyV } else { - OSL_ENSURE(0,"OConnection::construct: ::ucbhelper::Content isn't a folde nor a document! How that?!"); + OSL_FAIL("OConnection::construct: ::ucbhelper::Content isn't a folde nor a document! How that?!"); throw SQLException(); } } @@ -405,7 +405,7 @@ Reference< XDynamicResultSet > OConnection::getDir() const Reference<XDynamicResultSet> xContent; Sequence< ::rtl::OUString > aProps(1); ::rtl::OUString* pProps = aProps.getArray(); - pProps[ 0 ] = ::rtl::OUString::createFromAscii( "Title" ); + pProps[ 0 ] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")); try { Reference<XContentIdentifier> xIdent = getContent()->getIdentifier(); diff --git a/connectivity/source/drivers/file/FDatabaseMetaData.cxx b/connectivity/source/drivers/file/FDatabaseMetaData.cxx index 470ad0c6fd..737e32d930 100644 --- a/connectivity/source/drivers/file/FDatabaseMetaData.cxx +++ b/connectivity/source/drivers/file/FDatabaseMetaData.cxx @@ -89,7 +89,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getColumns( const ::rtl::OUString& /*columnNamePattern*/ ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getColumns" ); - OSL_ENSURE(0,"Should be overloaded!"); + OSL_FAIL("Should be overloaded!"); return new ODatabaseMetaDataResultSet( ODatabaseMetaDataResultSet::eColumns ); } @@ -175,7 +175,7 @@ namespace } catch( const Exception& ) { - OSL_ENSURE( sal_False, "isCaseSensitiveParentFolder: caught an unexpected exception!" ); + OSL_FAIL( "isCaseSensitiveParentFolder: caught an unexpected exception!" ); } return nIsCS; @@ -197,7 +197,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables( // check if any type is given // when no types are given then we have to return all tables e.g. TABLE - static const ::rtl::OUString aTable(::rtl::OUString::createFromAscii("TABLE")); + static const ::rtl::OUString aTable(RTL_CONSTASCII_USTRINGPARAM("TABLE")); sal_Bool bTableFound = sal_True; sal_Int32 nLength = types.getLength(); @@ -221,7 +221,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables( Reference<XDynamicResultSet> xContent = m_pConnection->getDir(); Reference < XSortedDynamicResultSetFactory > xSRSFac( - m_pConnection->getDriver()->getFactory()->createInstance( ::rtl::OUString::createFromAscii("com.sun.star.ucb.SortedDynamicResultSetFactory") ), UNO_QUERY ); + m_pConnection->getDriver()->getFactory()->createInstance( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.ucb.SortedDynamicResultSetFactory")) ), UNO_QUERY ); Sequence< NumberedSortingInfo > aSortInfo( 1 ); NumberedSortingInfo* pInfo = aSortInfo.getArray(); @@ -291,7 +291,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables( { aName = aName.replaceAt(aName.getLength()-(aFilenameExtension.Len()+1),aFilenameExtension.Len()+1,::rtl::OUString()); sal_Unicode nChar = aName.toChar(); - if ( match(tableNamePattern,aName.getStr(),'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) ) + if ( match(tableNamePattern,aName,'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) ) { aRow.push_back(new ORowSetValueDecorator(aName)); bNewRow = sal_True; @@ -306,7 +306,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTables( if (!aURL.getExtension().getLength()) { sal_Unicode nChar = aURL.getBase().getStr()[0]; - if(match(tableNamePattern,aURL.getBase().getStr(),'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) ) + if(match(tableNamePattern,aURL.getBase(),'\0') && ( !bCheckEnabled || ( bCheckEnabled && ((nChar < '0' || nChar > '9')))) ) { aRow.push_back(new ORowSetValueDecorator(::rtl::OUString(aURL.getBase()))); bNewRow = sal_True; @@ -426,13 +426,13 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTablePrivileges( const ::rtl::OUString* pEnd = pBegin + aNames.getLength(); for(;pBegin != pEnd;++pBegin) { - if(match(tableNamePattern,pBegin->getStr(),'\0')) + if(match(tableNamePattern,*pBegin,'\0')) { static ODatabaseMetaDataResultSet::ORow aRow(8); aRow[2] = new ORowSetValueDecorator(*pBegin); aRow[6] = ODatabaseMetaDataResultSet::getSelectValue(); - aRow[7] = new ORowSetValueDecorator(::rtl::OUString::createFromAscii("NO")); + aRow[7] = new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("NO"))); aRows.push_back(aRow); Reference< XPropertySet> xTable; @@ -551,7 +551,7 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsNonNullableColumns( ) throw(SQLExc ::rtl::OUString ODatabaseMetaData::impl_getIdentifierQuoteString_throw( ) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::impl_getIdentifierQuoteString_throw" ); - static const ::rtl::OUString sQuote = ::rtl::OUString::createFromAscii("\""); + static const ::rtl::OUString sQuote(RTL_CONSTASCII_USTRINGPARAM("\"")); return sQuote; } // ------------------------------------------------------------------------- @@ -711,7 +711,7 @@ Reference< XResultSet > SAL_CALL ODatabaseMetaData::getTableTypes( ) throw(SQLE { ODatabaseMetaDataResultSet::ORow aRow; aRow.push_back(ODatabaseMetaDataResultSet::getEmptyValue()); - aRow.push_back(new ORowSetValueDecorator(::rtl::OUString::createFromAscii("TABLE"))); + aRow.push_back(new ORowSetValueDecorator(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("TABLE")))); aRows.push_back(aRow); } pResult->setRows(aRows); @@ -973,7 +973,7 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsANSI92IntermediateSQL( ) throw(SQL ::rtl::OUString SAL_CALL ODatabaseMetaData::getURL( ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "ODatabaseMetaData::getURL" ); - static const ::rtl::OUString aValue = ::rtl::OUString::createFromAscii("sdbc:file:"); + static const ::rtl::OUString aValue( RTL_CONSTASCII_USTRINGPARAM( "sdbc:file:" )); return aValue; } // ------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/file/FDateFunctions.cxx b/connectivity/source/drivers/file/FDateFunctions.cxx index a7a1bcc4d7..ac2b26d41c 100644 --- a/connectivity/source/drivers/file/FDateFunctions.cxx +++ b/connectivity/source/drivers/file/FDateFunctions.cxx @@ -70,7 +70,7 @@ ORowSetValue OOp_DayOfWeek::operate(const ORowSetValue& lhs) const nRet = 1; break; default: - OSL_ENSURE(0,"Error in enum values for date"); + OSL_FAIL("Error in enum values for date"); } return nRet; } @@ -136,7 +136,7 @@ ORowSetValue OOp_DayName::operate(const ORowSetValue& lhs) const sRet = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Sunday")); break; default: - OSL_ENSURE(0,"Error in enum values for date"); + OSL_FAIL("Error in enum values for date"); } return sRet; } diff --git a/connectivity/source/drivers/file/FDriver.cxx b/connectivity/source/drivers/file/FDriver.cxx index f04bd3f489..363c29cef5 100644 --- a/connectivity/source/drivers/file/FDriver.cxx +++ b/connectivity/source/drivers/file/FDriver.cxx @@ -75,14 +75,14 @@ void OFileDriver::disposing() //------------------------------------------------------------------------------ rtl::OUString OFileDriver::getImplementationName_Static( ) throw(RuntimeException) { - return rtl::OUString::createFromAscii("com.sun.star.sdbc.driver.file.Driver"); + return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdbc.driver.file.Driver")); } //------------------------------------------------------------------------------ Sequence< ::rtl::OUString > OFileDriver::getSupportedServiceNames_Static( ) throw (RuntimeException) { Sequence< ::rtl::OUString > aSNS( 2 ); - aSNS[0] = ::rtl::OUString::createFromAscii("com.sun.star.sdbc.Driver"); - aSNS[1] = ::rtl::OUString::createFromAscii("com.sun.star.sdbcx.Driver"); + aSNS[0] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdbc.Driver")); + aSNS[1] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.sdbcx.Driver")); return aSNS; } @@ -129,7 +129,7 @@ sal_Bool SAL_CALL OFileDriver::acceptsURL( const ::rtl::OUString& url ) throw(SQLException, RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileDriver::acceptsURL" ); - return (!url.compareTo(::rtl::OUString::createFromAscii("sdbc:file:"),10)); + return (!url.compareTo(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("sdbc:file:")),10)); } // -------------------------------------------------------------------------------- Sequence< DriverPropertyInfo > SAL_CALL OFileDriver::getPropertyInfo( const ::rtl::OUString& url, const Sequence< PropertyValue >& /*info*/ ) throw(SQLException, RuntimeException) diff --git a/connectivity/source/drivers/file/FNoException.cxx b/connectivity/source/drivers/file/FNoException.cxx index e092fb5ce8..93e7cb4b2a 100644 --- a/connectivity/source/drivers/file/FNoException.cxx +++ b/connectivity/source/drivers/file/FNoException.cxx @@ -89,28 +89,28 @@ void OPreparedStatement::scanParameter(OSQLParseNode* pParseNode,::std::vector< RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::scanParameter" ); DBG_ASSERT(pParseNode != NULL,"OResultSet: interner Fehler: ungueltiger ParseNode"); - // Parameter Name-Regel gefunden? + // found parameter Name-Rule? if (SQL_ISRULE(pParseNode,parameter)) { DBG_ASSERT(pParseNode->count() >= 1,"OResultSet: Parse Tree fehlerhaft"); DBG_ASSERT(pParseNode->getChild(0)->getNodeType() == SQL_NODE_PUNCTUATION,"OResultSet: Parse Tree fehlerhaft"); _rParaNodes.push_back(pParseNode); - // Weiterer Abstieg nicht erforderlich + // Further descend not nessesary return; } - // Weiter absteigen im Parse Tree - for (UINT32 i = 0; i < pParseNode->count(); i++) + // Further descend in Parse Tree + for (sal_uInt32 i = 0; i < pParseNode->count(); i++) scanParameter(pParseNode->getChild(i),_rParaNodes); } // ----------------------------------------------------------------------------- OKeyValue* OResultSet::GetOrderbyKeyValue(OValueRefRow& _rRow) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::GetOrderbyKeyValue" ); - UINT32 nBookmarkValue = Abs((sal_Int32)(_rRow->get())[0]->getValue()); + sal_uInt32 nBookmarkValue = Abs((sal_Int32)(_rRow->get())[0]->getValue()); - OKeyValue* pKeyValue = OKeyValue::createKeyValue((UINT32)nBookmarkValue); + OKeyValue* pKeyValue = OKeyValue::createKeyValue((sal_uInt32)nBookmarkValue); ::std::vector<sal_Int32>::iterator aIter = m_aOrderbyColumnNumber.begin(); for (;aIter != m_aOrderbyColumnNumber.end(); ++aIter) @@ -123,11 +123,4 @@ OKeyValue* OResultSet::GetOrderbyKeyValue(OValueRefRow& _rRow) } // ----------------------------------------------------------------------------- - - - - - - - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/connectivity/source/drivers/file/FPreparedStatement.cxx b/connectivity/source/drivers/file/FPreparedStatement.cxx index 700a8b9a69..9b797fb483 100644 --- a/connectivity/source/drivers/file/FPreparedStatement.cxx +++ b/connectivity/source/drivers/file/FPreparedStatement.cxx @@ -479,7 +479,7 @@ void OPreparedStatement::setParameter(sal_Int32 parameterIndex, const ORowSetVal *((m_aParameterRow->get())[parameterIndex]) = x; } // ----------------------------------------------------------------------------- -UINT32 OPreparedStatement::AddParameter(OSQLParseNode * pParameter, const Reference<XPropertySet>& _xCol) +sal_uInt32 OPreparedStatement::AddParameter(OSQLParseNode * pParameter, const Reference<XPropertySet>& _xCol) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OPreparedStatement::AddParameter" ); OSL_UNUSED( pParameter ); @@ -491,17 +491,17 @@ UINT32 OPreparedStatement::AddParameter(OSQLParseNode * pParameter, const Refere #endif ::rtl::OUString sParameterName; - // Parameter-Column aufsetzen: + // set up Parameter-Column: sal_Int32 eType = DataType::VARCHAR; - UINT32 nPrecision = 255; + sal_uInt32 nPrecision = 255; sal_Int32 nScale = 0; sal_Int32 nNullable = ColumnValue::NULLABLE; if (_xCol.is()) { - // Typ, Precision, Scale ... der angegebenen Column verwenden, - // denn dieser Column wird der Wert zugewiesen bzw. mit dieser - // Column wird der Wert verglichen. + // Use type, precision, scale ... from the given column, + // because this Column will get a value assigned or + // with this Column the value will be compared. _xCol->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)) >>= eType; _xCol->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_PRECISION)) >>= nPrecision; _xCol->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_SCALE)) >>= nScale; @@ -573,23 +573,22 @@ void OPreparedStatement::initializeResultSet(OResultSet* _pResult) m_pResultSet->setParameterColumns(m_xParamColumns); m_pResultSet->setParameterRow(m_aParameterRow); - // Parameter substituieren (AssignValues und Kriterien): + // Substitute parameter (AssignValues and criteria): if (!m_xParamColumns->get().empty()) { - // Zunaechst AssignValues - USHORT nParaCount=0; // gibt die aktuelle Anzahl der bisher gesetzen Parameter an + // begin with AssignValues + sal_uInt16 nParaCount=0; // gives the current number of previously set Parameters - // Nach zu substituierenden Parametern suchen: - size_t nCount = m_aAssignValues.is() ? m_aAssignValues->get().size() : 1; // 1 ist wichtig fuer die Kriterien + // search for parameters to be substituted: + size_t nCount = m_aAssignValues.is() ? m_aAssignValues->get().size() : 1; // 1 is important for the Criteria for (size_t j = 1; j < nCount; j++) { - UINT32 nParameter = (*m_aAssignValues).getParameterIndex(j); + sal_uInt32 nParameter = (*m_aAssignValues).getParameterIndex(j); if (nParameter == SQL_NO_PARAMETER) - continue; // dieser AssignValue ist kein Parameter + continue; // this AssignValue is no Parameter - ++nParaCount; // ab hier ist der Parameter gueltig - // Parameter ersetzen. Wenn Parameter nicht verfuegbar, - // Value auf NULL setzen. + ++nParaCount; // now the Parameter is valid + // Replace Parameter. If the Parameter isn't available, set value to NULL // (*m_aAssignValues)[j] = (*m_aParameterRow)[(UINT16)nParameter]; } @@ -627,8 +626,8 @@ void OPreparedStatement::parseParamterElem(const String& _sColumnName,OSQLParseN } if(nParameter == -1) nParameter = AddParameter(pRow_Value_Constructor_Elem,xCol); - // Nr. des Parameters in der Variablen merken: - SetAssignValue(_sColumnName, String(), TRUE, nParameter); + // Save number of parameter in the variable: + SetAssignValue(_sColumnName, String(), sal_True, nParameter); } // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/file/FResultSet.cxx b/connectivity/source/drivers/file/FResultSet.cxx index 72736cf0b8..71d2f3ecf7 100644 --- a/connectivity/source/drivers/file/FResultSet.cxx +++ b/connectivity/source/drivers/file/FResultSet.cxx @@ -75,13 +75,8 @@ using namespace com::sun::star::sdbc; using namespace com::sun::star::sdbcx; using namespace com::sun::star::container; -// Maximale Anzahl von Rows, die mit ORDER BY sortiert durchlaufen werden koennen: -#if defined (WIN) -#define MAX_KEYSET_SIZE 0x3ff0 // Etwas weniger als ein Segment, damit - // noch Platz fuer Memory Debug-Informationen -#else +// Maximal number of Rows, that can be processed being sorted with ORDER BY: #define MAX_KEYSET_SIZE 0x40000 // 256K -#endif namespace { @@ -144,7 +139,7 @@ OResultSet::OResultSet(OStatement_Base* pStmt,OSQLParseTreeIterator& _aSQLIterat m_nResultSetConcurrency = isCount() ? ResultSetConcurrency::READ_ONLY : ResultSetConcurrency::UPDATABLE; construct(); - m_aSkipDeletedSet.SetDeleted(m_bShowDeleted); + m_aSkipDeletedSet.SetDeletedVisible(m_bShowDeleted); osl_decrementInterlockedCount( &m_refCount ); } @@ -246,7 +241,6 @@ const ORowSetValue& OResultSet::getValue(sal_Int32 columnIndex ) throw(::com::su ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); - //columnIndex = mapColumn(columnIndex); checkIndex(columnIndex ); @@ -258,8 +252,7 @@ void OResultSet::checkIndex(sal_Int32 columnIndex ) throw(::com::sun::star::sdbc { //RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::checkIndex" ); if ( columnIndex <= 0 - // || columnIndex > (sal_Int32)m_xColumns->size() - || columnIndex >= m_nColumnCount ) + || columnIndex >= m_nColumnCount ) ::dbtools::throwInvalidIndexException(*this); } // ------------------------------------------------------------------------- @@ -651,7 +644,7 @@ void SAL_CALL OResultSet::insertRow( ) throw(SQLException, RuntimeException) // we know that we append new rows at the end // so we have to know where the end is m_aSkipDeletedSet.skipDeleted(IResultSetHelper::LAST,1,sal_False); - m_bRowInserted = m_pTable->InsertRow(*m_aInsertRow, TRUE, m_xColsIdx); + m_bRowInserted = m_pTable->InsertRow(*m_aInsertRow, sal_True, m_xColsIdx); if(m_bRowInserted && m_pFileSet.is()) { sal_Int32 nPos = (m_aInsertRow->get())[0]->getValue(); @@ -907,20 +900,20 @@ IPropertyArrayHelper & OResultSet::getInfoHelper() } //------------------------------------------------------------------ -BOOL OResultSet::ExecuteRow(IResultSetHelper::Movement eFirstCursorPosition, - INT32 nFirstOffset, - BOOL bEvaluate, - BOOL bRetrieveData) +sal_Bool OResultSet::ExecuteRow(IResultSetHelper::Movement eFirstCursorPosition, + sal_Int32 nFirstOffset, + sal_Bool bEvaluate, + sal_Bool bRetrieveData) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::ExecuteRow" ); OSL_ENSURE(m_pSQLAnalyzer,"OResultSet::ExecuteRow: Analyzer isn't set!"); - // Fuer weitere Fetch-Operationen werden diese Angaben ggf. veraendert ... + // For further Fetch-Operations this information may possibly be changed ... IResultSetHelper::Movement eCursorPosition = eFirstCursorPosition; - INT32 nOffset = nFirstOffset; + sal_Int32 nOffset = nFirstOffset; const OSQLColumns & rTableCols = *(m_pTable->getTableColumns()); - BOOL bHasRestriction = m_pSQLAnalyzer->hasRestriction(); + sal_Bool bHasRestriction = m_pSQLAnalyzer->hasRestriction(); again: // protect from reading over the end when someboby is inserting while we are reading @@ -935,7 +928,7 @@ again: return sal_False; } - if (!bEvaluate) // Laeuft keine Auswertung, dann nur Ergebniszeile fuellen + if (!bEvaluate) // If no evaluation runs, then just fill the results-row { m_pTable->fetchRow(m_aRow,rTableCols, sal_True,bRetrieveData); } @@ -943,11 +936,15 @@ again: { m_pTable->fetchRow(m_aEvaluateRow, rTableCols, sal_True,bRetrieveData || bHasRestriction); - if ( (!m_bShowDeleted && m_aEvaluateRow->isDeleted()) - || (bHasRestriction && //!bShowDeleted && m_aEvaluateRow->isDeleted() ||// keine Anzeige von geloeschten Saetzen - !m_pSQLAnalyzer->evaluateRestriction())) // Auswerten der Bedingungen - { // naechsten Satz auswerten - // aktuelle Zeile loeschen im Keyset + if ( ( !m_bShowDeleted + && m_aEvaluateRow->isDeleted() + ) + || ( bHasRestriction + && !m_pSQLAnalyzer->evaluateRestriction() + ) + ) + { // Evaluate the next record + // delete current row in Keyset if (m_pEvaluationKeySet) { ++m_aEvaluateIter; @@ -960,8 +957,7 @@ again: } else if (m_pFileSet.is()) { - OSL_ENSURE(//!m_pFileSet->IsFrozen() && - eCursorPosition == IResultSetHelper::NEXT, "Falsche CursorPosition!"); + OSL_ENSURE(eCursorPosition == IResultSetHelper::NEXT, "Falsche CursorPosition!"); eCursorPosition = IResultSetHelper::NEXT; nOffset = 1; } @@ -984,27 +980,27 @@ again: } else { - // aStatus.Set(SQL_STAT_NO_DATA_FOUND); return sal_False; } - // Nochmal probieren ... + // Try again ... goto again; } } - // Evaluate darf nur gesetzt sein, - // wenn der Keyset weiter aufgebaut werden soll - if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT && !isCount() && - (m_pFileSet.is() || m_pSortIndex) && bEvaluate) + // Evaluate may only be set, + // if the Keyset will be constructed further + if ( ( m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT ) + && !isCount() + && bEvaluate + ) { if (m_pSortIndex) { - OKeyValue* pKeyValue = GetOrderbyKeyValue(m_aEvaluateRow); + OKeyValue* pKeyValue = GetOrderbyKeyValue( m_aSelectRow ); m_pSortIndex->AddKeyValue(pKeyValue); } else if (m_pFileSet.is()) { - // OSL_ENSURE(!m_pFileSet->IsFrozen() , "Falsche CursorPosition!"); sal_uInt32 nBookmarkValue = Abs((sal_Int32)(m_aEvaluateRow->get())[0]->getValue()); m_pFileSet->get().push_back(nBookmarkValue); } @@ -1014,13 +1010,13 @@ again: sal_Bool bOK = sal_True; if (bEvaluate) { - // jetzt die eigentliche Ergebniszeile Lesen - bOK = m_pTable->fetchRow(m_aEvaluateRow, *(m_pTable->getTableColumns()), sal_True,TRUE); + // read the actual result-row + bOK = m_pTable->fetchRow(m_aEvaluateRow, *(m_pTable->getTableColumns()), sal_True,sal_True); } if (bOK) { - // Nur die zu aendernden Werte uebergeben: + // just give the values to be changed: if(!m_pTable->UpdateRow(*m_aAssignValues,m_aEvaluateRow, m_xColsIdx)) return sal_False; } @@ -1030,7 +1026,7 @@ again: sal_Bool bOK = sal_True; if (bEvaluate) { - bOK = m_pTable->fetchRow(m_aEvaluateRow, *(m_pTable->getTableColumns()), sal_True,TRUE); + bOK = m_pTable->fetchRow(m_aEvaluateRow, *(m_pTable->getTableColumns()), sal_True,sal_True); } if (bOK) { @@ -1042,21 +1038,21 @@ again: } //------------------------------------------------------------------- -BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, BOOL bRetrieveData) +sal_Bool OResultSet::Move(IResultSetHelper::Movement eCursorPosition, sal_Int32 nOffset, sal_Bool bRetrieveData) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::Move" ); //IgnoreDeletedRows: // - INT32 nTempPos = m_nRowPos; + sal_Int32 nTempPos = m_nRowPos; if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT && !isCount()) { - if (!m_pFileSet.is()) // kein Index verfuegbar + if (!m_pFileSet.is()) //no Index available { - // Normales FETCH - ExecuteRow(eCursorPosition,nOffset,FALSE,bRetrieveData); + // Normal FETCH + ExecuteRow(eCursorPosition,nOffset,sal_False,bRetrieveData); // now set the bookmark for outside this is the logical pos and not the file pos *(*m_aRow->get().begin()) = sal_Int32(m_nRowPos + 1); @@ -1076,7 +1072,6 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, m_nRowPos = 0; break; case IResultSetHelper::LAST: - // OSL_ENSURE(IsRowCountFinal(), "Fehler im Keyset!"); // muss eingefroren sein, sonst Fehler beim SQLCursor m_nRowPos = m_pFileSet->get().size() - 1; break; case IResultSetHelper::RELATIVE: @@ -1091,20 +1086,19 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, } // OffRange? - // Der FileCursor ist ausserhalb des gueltigen Bereichs, wenn + // The FileCursor is outside of the valid range, if: // a.) m_nRowPos < 1 - // b.) Ein KeySet besteht und m_nRowPos > m_pFileSet->size() - if (m_nRowPos < 0 || (m_pFileSet->isFrozen() && eCursorPosition != IResultSetHelper::BOOKMARK && m_nRowPos >= (INT32)m_pFileSet->get().size() )) // && m_pFileSet->IsFrozen() + // b.) a KeySet exists and m_nRowPos > m_pFileSet->size() + if (m_nRowPos < 0 || (m_pFileSet->isFrozen() && eCursorPosition != IResultSetHelper::BOOKMARK && m_nRowPos >= (sal_Int32)m_pFileSet->get().size() )) // && m_pFileSet->IsFrozen() { - // aStatus.Set(SQL_STAT_NO_DATA_FOUND); goto Error; } else { - if (m_nRowPos < (INT32)m_pFileSet->get().size()) + if (m_nRowPos < (sal_Int32)m_pFileSet->get().size()) { - // Fetch ueber Index - ExecuteRow(IResultSetHelper::BOOKMARK,(m_pFileSet->get())[m_nRowPos],FALSE,bRetrieveData); + // Fetch via Index + ExecuteRow(IResultSetHelper::BOOKMARK,(m_pFileSet->get())[m_nRowPos],sal_False,bRetrieveData); // now set the bookmark for outside *(*m_aRow->get().begin()) = sal_Int32(m_nRowPos + 1); @@ -1113,42 +1107,40 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, m_pSQLAnalyzer->setSelectionEvaluationResult(m_aSelectRow,m_aColMapping); } } - else // Index muss weiter aufgebaut werden + else // Index must be further constructed { - // Zunaechst auf die letzte bekannte Zeile setzen + // set first on the last known row if (!m_pFileSet->get().empty()) { m_aFileSetIter = m_pFileSet->get().end()-1; - // m_pFileSet->SeekPos(m_pFileSet->size()-1); m_pTable->seekRow(IResultSetHelper::BOOKMARK, *m_aFileSetIter, m_nFilePos); } sal_Bool bOK = sal_True; - // Ermitteln der Anzahl weiterer Fetches - while (bOK && m_nRowPos >= (INT32)m_pFileSet->get().size()) + // Determine the number of further Fetches + while (bOK && m_nRowPos >= (sal_Int32)m_pFileSet->get().size()) { if (m_pEvaluationKeySet) { - if (m_nRowPos >= (INT32)m_pEvaluationKeySet->size()) + if (m_nRowPos >= (sal_Int32)m_pEvaluationKeySet->size()) return sal_False; - // aStatus.Set(SQL_STAT_NO_DATA_FOUND); else if (m_nRowPos == 0) { m_aEvaluateIter = m_pEvaluationKeySet->begin(); - bOK = ExecuteRow(IResultSetHelper::BOOKMARK,*m_aEvaluateIter,TRUE, bRetrieveData); + bOK = ExecuteRow(IResultSetHelper::BOOKMARK,*m_aEvaluateIter,sal_True, bRetrieveData); } else { ++m_aEvaluateIter; - bOK = ExecuteRow(IResultSetHelper::BOOKMARK,*m_aEvaluateIter,TRUE, bRetrieveData); + bOK = ExecuteRow(IResultSetHelper::BOOKMARK,*m_aEvaluateIter,sal_True, bRetrieveData); } } else - bOK = ExecuteRow(IResultSetHelper::NEXT,1,TRUE, FALSE);//bRetrieveData); + bOK = ExecuteRow(IResultSetHelper::NEXT,1,sal_True, sal_False);//bRetrieveData); } if (bOK) { - // jetzt nochmal die Ergebnisse lesen + // read the results again m_pTable->fetchRow(m_aRow, *(m_pTable->getTableColumns()), sal_True,bRetrieveData); // now set the bookmark for outside @@ -1159,14 +1151,10 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, m_pSQLAnalyzer->setSelectionEvaluationResult(m_aSelectRow,m_aColMapping); } } - else if (!m_pFileSet->isFrozen()) // keinen gueltigen Satz gefunden + else if (!m_pFileSet->isFrozen()) // no valid record found { - //m_pFileSet->Freeze(); m_pFileSet->setFrozen(); - - // DELETEZ(m_pEvaluationKeySet); m_pEvaluationKeySet = NULL; - // aStatus.Set(SQL_STAT_NO_DATA_FOUND); goto Error; } } @@ -1175,7 +1163,7 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, } else if (m_aSQLIterator.getStatementType() == SQL_STATEMENT_SELECT && isCount()) { - // Fetch des COUNT(*) + // Fetch the COUNT(*) switch (eCursorPosition) { case IResultSetHelper::NEXT: @@ -1203,8 +1191,8 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, goto Error; else if (m_nRowPos == 0) { - // COUNT(*) in Ergebnisrow packen - // (muss die erste und einzige Variable in der Row sein) + // put COUNT(*) in result-row + // (must be the first and only variable in the row) if (m_aRow->get().size() >= 2) { *(m_aRow->get())[1] = m_nRowCountResult; @@ -1221,14 +1209,14 @@ BOOL OResultSet::Move(IResultSetHelper::Movement eCursorPosition, INT32 nOffset, } } else - // Fetch nur bei SELECT moeglich! + // Fetch only possible at SELECT! return sal_False; return sal_True; Error: - // steht der Cursor vor dem ersten Satz - // dann wird die position beibehalten + // is the Cursor positioned before the first row + // then the position will be maintained if (nTempPos == -1) m_nRowPos = nTempPos; else @@ -1249,12 +1237,9 @@ Error: m_nRowPos = -1; break; case IResultSetHelper::BOOKMARK: - m_nRowPos = nTempPos; // vorherige Position + m_nRowPos = nTempPos; // last Position } } - // delete pGuard; - // rMode = (!bShowDeleted && aStatus.IsSuccessful() && m_aRow->isDeleted()) ? // keine Anzeige von geloeschten Saetzen - // OCursor::SQL_MOD_INVALID : OCursor::SQL_MOD_NONE; return sal_False; } // ------------------------------------------------------------------------- @@ -1263,11 +1248,11 @@ void OResultSet::sortRows() RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::sortRows" ); if (!m_pSQLAnalyzer->hasRestriction() && m_aOrderbyColumnNumber.size() == 1) { - // Ist nur ein Feld fuer die Sortierung angegeben - // Und diese Feld ist indiziert, dann den Index ausnutzen + // is just one field given for sorting + // and this field is indexed, then the Index will be used Reference<XIndexesSupplier> xIndexSup; m_pTable->queryInterface(::getCppuType((const Reference<XIndexesSupplier>*)0)) >>= xIndexSup; - // Reference<XIndexesSupplier> xIndexSup(m_pTable,UNO_QUERY); + Reference<XIndexAccess> xIndexes; if(xIndexSup.is()) { @@ -1298,8 +1283,8 @@ void OResultSet::sortRows() ::std::vector<sal_Int32>::iterator aOrderByIter = m_aOrderbyColumnNumber.begin(); for (::std::vector<sal_Int16>::size_type i=0;aOrderByIter != m_aOrderbyColumnNumber.end(); ++aOrderByIter,++i) { - OSL_ENSURE((sal_Int32)m_aRow->get().size() > *aOrderByIter,"Invalid Index"); - switch ((*(m_aRow->get().begin()+*aOrderByIter))->getValue().getTypeKind()) + OSL_ENSURE((sal_Int32)m_aSelectRow->get().size() > *aOrderByIter,"Invalid Index"); + switch ((*(m_aSelectRow->get().begin()+*aOrderByIter))->getValue().getTypeKind()) { case DataType::CHAR: case DataType::VARCHAR: @@ -1322,13 +1307,13 @@ void OResultSet::sortRows() eKeyType[i] = SQL_ORDERBYKEY_DOUBLE; break; - // Andere Typen sind nicht implementiert (und damit immer FALSE) + // Other types aren't implemented (so they are always FALSE) default: eKeyType[i] = SQL_ORDERBYKEY_NONE; - OSL_ASSERT("OFILECursor::Execute: Datentyp nicht implementiert"); + OSL_FAIL("OFILECursor::Execute: Datentyp nicht implementiert"); break; } - (m_aEvaluateRow->get())[*aOrderByIter]->setBound(sal_True); + (m_aSelectRow->get())[*aOrderByIter]->setBound(sal_True); } m_pSortIndex = new OSortIndex(eKeyType,m_aOrderbyAscending); @@ -1339,31 +1324,33 @@ void OResultSet::sortRows() while (m_aEvaluateIter != m_pEvaluationKeySet->end()) { - ExecuteRow(IResultSetHelper::BOOKMARK,(*m_aEvaluateIter),TRUE); + ExecuteRow(IResultSetHelper::BOOKMARK,(*m_aEvaluateIter),sal_True); ++m_aEvaluateIter; } } else { - while (ExecuteRow(IResultSetHelper::NEXT,1,TRUE)) + while ( ExecuteRow( IResultSetHelper::NEXT, 1, sal_False, sal_True ) ) { + m_aSelectRow->get()[0]->setValue( m_aRow->get()[0]->getValue() ); + if ( m_pSQLAnalyzer->hasFunctions() ) + m_pSQLAnalyzer->setSelectionEvaluationResult( m_aSelectRow, m_aColMapping ); + const sal_Int32 nBookmark = (*m_aRow->get().begin())->getValue(); + ExecuteRow( IResultSetHelper::BOOKMARK, nBookmark, sal_True, sal_False ); } } - // Sortiertes Keyset erzeugen - // DELETEZ(m_pEvaluationKeySet); + // create sorted Keyset m_pEvaluationKeySet = NULL; m_pFileSet = NULL; m_pFileSet = m_pSortIndex->CreateKeySet(); - // if(!bDistinct) - // SetRowCount(pFileSet->count()); DELETEZ(m_pSortIndex); - // Nun kann ueber den Index sortiert zugegriffen werden. + // now access to a sorted set is possible via Index } // ------------------------------------------------------------------------- -BOOL OResultSet::OpenImpl() +sal_Bool OResultSet::OpenImpl() { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::OpenImpl" ); OSL_ENSURE(m_pSQLAnalyzer,"No analyzer set with setSqlAnalyzer!"); @@ -1398,11 +1385,10 @@ BOOL OResultSet::OpenImpl() m_nResultSetConcurrency = (m_pTable->isReadOnly() || isCount()) ? ResultSetConcurrency::READ_ONLY : ResultSetConcurrency::UPDATABLE; - // Neuen Index aufbauen: + // create new Index: m_pFileSet = NULL; - // DELETEZ(m_pEvaluationKeySet); - // An den Anfang positionieren + // position at the beginning m_nRowPos = -1; m_nFilePos = 0; m_nRowCountResult = -1; @@ -1419,8 +1405,8 @@ BOOL OResultSet::OpenImpl() lcl_throwError(STR_QUERY_COMPLEX_COUNT,*this); m_nRowCountResult = 0; - // Vorlaeufig einfach ueber alle Datensaetze iterieren und - // dabei die Aktionen bearbeiten (bzw. einfach nur zaehlen): + // for now simply iterate over all rows and + // do all actions (or just count) { sal_Bool bOK = sal_True; if (m_pEvaluationKeySet) @@ -1432,9 +1418,9 @@ BOOL OResultSet::OpenImpl() while (bOK) { if (m_pEvaluationKeySet) - ExecuteRow(IResultSetHelper::BOOKMARK,(*m_aEvaluateIter),TRUE); + ExecuteRow(IResultSetHelper::BOOKMARK,(*m_aEvaluateIter),sal_True); else - bOK = ExecuteRow(IResultSetHelper::NEXT,1,TRUE); + bOK = ExecuteRow(IResultSetHelper::NEXT,1,sal_True); if (bOK) { @@ -1447,17 +1433,15 @@ BOOL OResultSet::OpenImpl() } } - // Ergebnis von COUNT(*) in m_nRowCountResult merken. - // nRowCount, also die Anzahl der Rows in der Ergebnismenge, ist bei dieser - // Anfrage = 1! + // save result of COUNT(*) in m_nRowCountResult. + // nRowCount (number of Rows in the result) = 1 for this request! m_pEvaluationKeySet = NULL; - // DELETEZ(m_pEvaluationKeySet); } } else { - BOOL bDistinct = FALSE; - BOOL bWasSorted = FALSE; + sal_Bool bDistinct = sal_False; + sal_Bool bWasSorted = sal_False; OSQLParseNode *pDistinct = m_pParseTree->getChild(1); ::std::vector<sal_Int32> aOrderbyColumnNumberSave; ::std::vector<TAscendingOrder> aOrderbyAscendingSave; @@ -1467,18 +1451,17 @@ BOOL OResultSet::OpenImpl() // Sort on all columns, saving original order for later if(IsSorted()) { - aOrderbyColumnNumberSave = m_aOrderbyColumnNumber;// .assign(m_aOrderbyColumnNumber.begin(), m_aOrderbyColumnNumber.end()); + aOrderbyColumnNumberSave = m_aOrderbyColumnNumber; m_aOrderbyColumnNumber.clear(); aOrderbyAscendingSave.assign(m_aOrderbyAscending.begin(), m_aOrderbyAscending.end()); - bWasSorted = TRUE; + bWasSorted = sal_True; } // the first column is the bookmark column ::std::vector<sal_Int32>::iterator aColStart = (m_aColMapping.begin()+1); ::std::copy(aColStart, m_aColMapping.end(),::std::back_inserter(m_aOrderbyColumnNumber)); -// m_aOrderbyColumnNumber.assign(aColStart, m_aColMapping.end()); m_aOrderbyAscending.assign(m_aColMapping.size()-1, SQL_ASC); - bDistinct = TRUE; + bDistinct = sal_True; } if (IsSorted()) @@ -1489,9 +1472,8 @@ BOOL OResultSet::OpenImpl() m_pFileSet = new OKeySet(); if (!m_pSQLAnalyzer->hasRestriction()) - // jetzt kann das Keyset schon gefuellt werden! - // Aber Achtung: es wird davon ausgegangen, das die FilePositionen als Folge 1..n - // abgelegt werden! + // now the Keyset can be filled! + // But be careful: It is assumed, that the FilePositions will be stored as sequence 1..n { if ( m_nLastVisitedPos > 0) m_pFileSet->get().reserve( m_nLastVisitedPos ); @@ -1501,7 +1483,7 @@ BOOL OResultSet::OpenImpl() } OSL_ENSURE(m_pFileSet.is(),"Kein KeySet vorhanden! :-("); - if(bDistinct && m_pFileSet.is()) // sicher ist sicher + if(bDistinct && m_pFileSet.is()) { OValueRow aSearchRow = new OValueVector(m_aRow->get().size()); OValueRefVector::Vector::iterator aRowIter = m_aRow->get().begin(); @@ -1516,15 +1498,15 @@ BOOL OResultSet::OpenImpl() if (nMaxRow) { #if OSL_DEBUG_LEVEL > 1 - INT32 nFound=0; + sal_Int32 nFound=0; #endif - INT32 nPos; - INT32 nKey; + sal_Int32 nPos; + sal_Int32 nKey; for( size_t j = nMaxRow-1; j > 0; --j) { nPos = (m_pFileSet->get())[j]; - ExecuteRow(IResultSetHelper::BOOKMARK,nPos,FALSE); + ExecuteRow(IResultSetHelper::BOOKMARK,nPos,sal_False); m_pSQLAnalyzer->setSelectionEvaluationResult(m_aSelectRow,m_aColMapping); { // copy row values OValueRefVector::Vector::iterator copyFrom = m_aSelectRow->get().begin(); @@ -1533,12 +1515,11 @@ BOOL OResultSet::OpenImpl() copyFrom != m_aSelectRow->get().end(); ++copyFrom,++copyTo) *copyTo = *(*copyFrom); - // *aSearchRow = *m_aRow; } // compare with next row nKey = (m_pFileSet->get())[j-1]; - ExecuteRow(IResultSetHelper::BOOKMARK,nKey,FALSE); + ExecuteRow(IResultSetHelper::BOOKMARK,nKey,sal_False); m_pSQLAnalyzer->setSelectionEvaluationResult(m_aSelectRow,m_aColMapping); OValueRefVector::Vector::iterator loopInRow = m_aSelectRow->get().begin(); OValueVector::Vector::iterator existentInSearchRow = aSearchRow->get().begin(); @@ -1579,17 +1560,16 @@ BOOL OResultSet::OpenImpl() ::std::sort(m_pFileSet->get().begin(),m_pFileSet->get().end()); } } - // SetRowCount(m_pFileSet->count()); } } } break; case SQL_STATEMENT_UPDATE: case SQL_STATEMENT_DELETE: - // waehrend der Bearbeitung die Anzahl der bearbeiteten Rows zaehlen: + // during processing count the number of processed Rows m_nRowCountResult = 0; - // Vorlaeufig einfach ueber alle Datensaetze iterieren und - // dabei die Aktionen bearbeiten (bzw. einfach nur zaehlen): + // for now simply iterate over all rows and + // run the actions (or simply count): { sal_Bool bOK = sal_True; @@ -1602,9 +1582,9 @@ BOOL OResultSet::OpenImpl() while (bOK) { if (m_pEvaluationKeySet) - ExecuteRow(IResultSetHelper::BOOKMARK,(*m_aEvaluateIter),TRUE); + ExecuteRow(IResultSetHelper::BOOKMARK,(*m_aEvaluateIter),sal_True); else - bOK = ExecuteRow(IResultSetHelper::NEXT,1,TRUE); + bOK = ExecuteRow(IResultSetHelper::NEXT,1,sal_True); if (bOK) { @@ -1617,19 +1597,16 @@ BOOL OResultSet::OpenImpl() } } - // Ergebnis von COUNT(*) in nRowCountResult merken. - // nRowCount, also die Anzahl der Rows in der Ergebnismenge, ist bei dieser - // Anfrage = 1! - // DELETEZ(m_pEvaluationKeySet); + // save result of COUNT(*) in nRowCountResult. + // nRowCount (number of rows in the result-set) = 1 for this request! m_pEvaluationKeySet = NULL; } - // SetRowCount(1); break; case SQL_STATEMENT_INSERT: m_nRowCountResult = 0; OSL_ENSURE(m_aAssignValues.is(),"No assign values set!"); - if(!m_pTable->InsertRow(*m_aAssignValues, TRUE,m_xColsIdx)) + if(!m_pTable->InsertRow(*m_aAssignValues, sal_True,m_xColsIdx)) { m_nFilePos = 0; return sal_False; @@ -1638,11 +1615,11 @@ BOOL OResultSet::OpenImpl() m_nRowCountResult = 1; break; default: - OSL_ENSURE( false, "OResultSet::OpenImpl: unsupported statement type!" ); + OSL_FAIL( "OResultSet::OpenImpl: unsupported statement type!" ); break; } - // FilePos zuruecksetzen + // reset FilePos m_nFilePos = 0; return sal_True; @@ -1683,7 +1660,7 @@ void OResultSet::setBoundedColumns(const OValueRefRow& _rRow, ::std::vector<sal_Int32>& _rColMapping) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::setBoundedColumns" ); - ::comphelper::UStringMixEqual aCase(_xMetaData->storesMixedCaseQuotedIdentifiers()); + ::comphelper::UStringMixEqual aCase(_xMetaData->supportsMixedCaseQuotedIdentifiers()); Reference<XPropertySet> xTableColumn; ::rtl::OUString sTableColumnName, sSelectColumnRealName; @@ -1748,7 +1725,7 @@ void OResultSet::setBoundedColumns(const OValueRefRow& _rRow, } catch (Exception&) { - OSL_ENSURE(sal_False, "OResultSet::setBoundedColumns: caught an Exception!"); + OSL_FAIL("OResultSet::setBoundedColumns: caught an Exception!"); } } // in this case we got more select columns as columns exist in the table @@ -1884,7 +1861,6 @@ sal_Bool OResultSet::isRowDeleted() const void SAL_CALL OResultSet::disposing( const EventObject& Source ) throw (RuntimeException) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OResultSet::disposing" ); - // Reference<XInterface> xInt = m_pTable; Reference<XPropertySet> xProp = m_pTable; if(m_pTable && Source.Source == xProp) { diff --git a/connectivity/source/drivers/file/FStatement.cxx b/connectivity/source/drivers/file/FStatement.cxx index 1ccb031bba..78232769c2 100644 --- a/connectivity/source/drivers/file/FStatement.cxx +++ b/connectivity/source/drivers/file/FStatement.cxx @@ -430,41 +430,24 @@ void OStatement_Base::setOrderbyColumn( OSQLParseNode* pColumnRef, aColumnName = pColumnRef->getChild(0)->getTokenValue(); else if (pColumnRef->count() == 3) { - // Nur die Table Range-Variable darf hier vorkommen: -// if (!(pColumnRef->getChild(0)->getTokenValue() == aTableRange)) -// { -// aStatus.Set(SQL_STAT_ERROR, -// String::CreateFromAscii("S1000"), -// aStatus.CreateErrorMessage(String(SdbResId(STR_STAT_INVALID_RANGE_VAR))), -// 0, String() ); - // return; - // } pColumnRef->getChild(2)->parseNodeToStr( aColumnName, getOwnConnection(), NULL, sal_False, sal_False ); } else { - // aStatus.SetStatementTooComplex(); throw SQLException(); } Reference<XColumnLocate> xColLocate(m_xColNames,UNO_QUERY); if(!xColLocate.is()) return; - // Alles geprueft und wir haben den Namen der Column. - // Die wievielte Column ist das? - try - { - m_aOrderbyColumnNumber.push_back(xColLocate->findColumn(aColumnName)); - } - catch(Exception) - { - ::rtl::Reference<OSQLColumns> aSelectColumns = m_aSQLIterator.getSelectColumns(); - ::comphelper::UStringMixEqual aCase; - OSQLColumns::Vector::const_iterator aFind = ::connectivity::find(aSelectColumns->get().begin(),aSelectColumns->get().end(),aColumnName,aCase); - if ( aFind == aSelectColumns->get().end() ) - throw SQLException(); - m_aOrderbyColumnNumber.push_back((aFind - aSelectColumns->get().begin()) + 1); - } + // Everything tested and we have the name of the Column. + // What number is the Column? + ::rtl::Reference<OSQLColumns> aSelectColumns = m_aSQLIterator.getSelectColumns(); + ::comphelper::UStringMixEqual aCase; + OSQLColumns::Vector::const_iterator aFind = ::connectivity::find(aSelectColumns->get().begin(),aSelectColumns->get().end(),aColumnName,aCase); + if ( aFind == aSelectColumns->get().end() ) + throw SQLException(); + m_aOrderbyColumnNumber.push_back((aFind - aSelectColumns->get().begin()) + 1); // Ascending or Descending? m_aOrderbyAscending.push_back((SQL_ISTOKEN(pAscendingDescending,DESC)) ? SQL_DESC : SQL_ASC); @@ -579,7 +562,7 @@ void OStatement_Base::initializeResultSet(OResultSet* _pResult) _pResult->setSelectRow(m_aSelectRow); m_pSQLAnalyzer->bindSelectRow(m_aRow); - m_pEvaluationKeySet = m_pSQLAnalyzer->bindEvaluationRow(m_aEvaluateRow); // Werte im Code des Compilers setzen + m_pEvaluationKeySet = m_pSQLAnalyzer->bindEvaluationRow(m_aEvaluateRow); // Set values in the code of the Compiler _pResult->setEvaluationKeySet(m_pEvaluationKeySet); } // ----------------------------------------------------------------------------- @@ -593,11 +576,11 @@ void OStatement_Base::GetAssignValues() } if (SQL_ISRULE(m_pParseTree,select_statement)) - // Keine zu setzenden Werte bei SELECT + // no values have to be set for SELECT return; else if (SQL_ISRULE(m_pParseTree,insert_statement)) { - // Row fuer die zu setzenden Werte anlegen (Referenz durch new) + // Create Row for the values to be set (Reference trough new) if(m_aAssignValues.is()) m_aAssignValues->get().clear(); sal_Int32 nCount = Reference<XIndexAccess>(m_xColNames,UNO_QUERY)->getCount(); @@ -607,7 +590,7 @@ void OStatement_Base::GetAssignValues() m_aParameterIndexes.resize(nCount+1,SQL_NO_PARAMETER); - // Liste der Columns-Namen, die in der column_commalist vorkommen (mit ; getrennt): + // List of Column-Names, that exist in the column_commalist (seperated by ;): ::std::vector<String> aColumnNameList; OSL_ENSURE(m_pParseTree->count() >= 4,"OResultSet: Fehler im Parse Tree"); @@ -632,7 +615,7 @@ void OStatement_Base::GetAssignValues() OSL_ENSURE(SQL_ISRULE(pColumnCommalist,column_commalist),"OResultSet: Fehler im Parse Tree"); OSL_ENSURE(pColumnCommalist->count() > 0,"OResultSet: Fehler im Parse Tree"); - // Alle Columns in der column_commalist ... + // All Columns in the column_commalist ... for (sal_uInt32 i = 0; i < pColumnCommalist->count(); i++) { OSQLParseNode * pCol = pColumnCommalist->getChild(i); @@ -643,19 +626,19 @@ void OStatement_Base::GetAssignValues() if ( aColumnNameList.empty() ) throwFunctionSequenceException(*this); - // Werte ... + // Values ... OSQLParseNode * pValuesOrQuerySpec = m_pParseTree->getChild(4); OSL_ENSURE(pValuesOrQuerySpec != NULL,"OResultSet: pValuesOrQuerySpec darf nicht NULL sein!"); OSL_ENSURE(SQL_ISRULE(pValuesOrQuerySpec,values_or_query_spec),"OResultSet: ! SQL_ISRULE(pValuesOrQuerySpec,values_or_query_spec)"); OSL_ENSURE(pValuesOrQuerySpec->count() > 0,"OResultSet: pValuesOrQuerySpec->count() <= 0"); - // nur "VALUES" ist erlaubt ... + // just "VALUES" is allowed ... if (! SQL_ISTOKEN(pValuesOrQuerySpec->getChild(0),VALUES)) throwFunctionSequenceException(*this); OSL_ENSURE(pValuesOrQuerySpec->count() == 4,"OResultSet: pValuesOrQuerySpec->count() != 4"); - // Liste von Werten + // List of values OSQLParseNode * pInsertAtomCommalist = pValuesOrQuerySpec->getChild(2); OSL_ENSURE(pInsertAtomCommalist != NULL,"OResultSet: pInsertAtomCommalist darf nicht NULL sein!"); OSL_ENSURE(pInsertAtomCommalist->count() > 0,"OResultSet: pInsertAtomCommalist <= 0"); @@ -669,7 +652,7 @@ void OStatement_Base::GetAssignValues() OSL_ENSURE(pRow_Value_Const != NULL,"OResultSet: pRow_Value_Const darf nicht NULL sein!"); if(SQL_ISRULE(pRow_Value_Const,parameter)) { - ParseAssignValues(aColumnNameList,pRow_Value_Const,nIndex++); // kann nur ein Columnname vorhanden sein pro Schleife + ParseAssignValues(aColumnNameList,pRow_Value_Const,nIndex++); // only one Columnname allowed per loop } else if(pRow_Value_Const->isToken()) ParseAssignValues(aColumnNameList,pRow_Value_Const,static_cast<xub_StrLen>(i)); @@ -703,7 +686,7 @@ void OStatement_Base::GetAssignValues() OSL_ENSURE(SQL_ISRULE(pAssignmentCommalist,assignment_commalist),"OResultSet: Fehler im Parse Tree"); OSL_ENSURE(pAssignmentCommalist->count() > 0,"OResultSet: pAssignmentCommalist->count() <= 0"); - // Alle Zuweisungen (Kommaliste) bearbeiten ... + // work on all assignments (commalist) ... ::std::vector< String> aList(1); for (sal_uInt32 i = 0; i < pAssignmentCommalist->count(); i++) { @@ -720,7 +703,6 @@ void OStatement_Base::GetAssignValues() OSL_ENSURE(pComp->getNodeType() == SQL_NODE_EQUAL,"OResultSet: pComp->getNodeType() != SQL_NODE_COMPARISON"); if (pComp->getTokenValue().toChar() != '=') { - // aStatus.SetInvalidStatement(); throwFunctionSequenceException(*this); } @@ -745,61 +727,54 @@ void OStatement_Base::ParseAssignValues(const ::std::vector< String>& aColumnNam pRow_Value_Constructor_Elem->getNodeType() == SQL_NODE_INTNUM || pRow_Value_Constructor_Elem->getNodeType() == SQL_NODE_APPROXNUM) { - // Wert setzen: + // set value: SetAssignValue(aColumnName, pRow_Value_Constructor_Elem->getTokenValue()); } else if (SQL_ISTOKEN(pRow_Value_Constructor_Elem,NULL)) { - // NULL setzen - SetAssignValue(aColumnName, String(), TRUE); + // set NULL + SetAssignValue(aColumnName, String(), sal_True); } else if (SQL_ISRULE(pRow_Value_Constructor_Elem,parameter)) parseParamterElem(aColumnName,pRow_Value_Constructor_Elem); else { - // aStatus.SetStatementTooComplex(); throwFunctionSequenceException(*this); } } //------------------------------------------------------------------ void OStatement_Base::SetAssignValue(const String& aColumnName, const String& aValue, - BOOL bSetNull, - UINT32 nParameter) + sal_Bool bSetNull, + sal_uInt32 nParameter) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OStatement_Base::SetAssignValue" ); Reference<XPropertySet> xCol; m_xColNames->getByName(aColumnName) >>= xCol; sal_Int32 nId = Reference<XColumnLocate>(m_xColNames,UNO_QUERY)->findColumn(aColumnName); - // Kommt diese Column ueberhaupt in der Datei vor? + // does this column actually exist in the file? if (!xCol.is()) { - // Diese Column gibt es nicht! -// aStatus.Set(SQL_STAT_ERROR, -// String::CreateFromAscii("S0022"), -// aStatus.CreateErrorMessage(String(SdbResId(STR_STAT_COLUMN_NOT_FOUND))), -// 0, String() ); + // This Column doesn't exist! throwFunctionSequenceException(*this); } - // Value an die Row mit den zuzuweisenden Werten binden: - // const ODbVariantRef& xValue = (*aAssignValues)[pFileColumn->GetId()]; - // Alles geprueft und wir haben den Namen der Column. - // Jetzt eine Value allozieren, den Wert setzen und die Value an die Row binden. + // Everything tested and we have the names of the Column. + // Now allocate one Value, set the value and tie the value to the Row. if (bSetNull) (m_aAssignValues->get())[nId]->setNull(); else { switch (::comphelper::getINT32(xCol->getPropertyValue(OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_TYPE)))) { - // Kriterium je nach Typ als String oder double in die Variable packen ... + // put criteria depending on the Type as String or double in the variable case DataType::CHAR: case DataType::VARCHAR: case DataType::LONGVARCHAR: *(m_aAssignValues->get())[nId] = ORowSetValue(aValue); - // Zeichensatz ist bereits konvertiert, da ja das gesamte Statement konvertiert wurde + //Characterset is already converted, since the entire statement was converted break; case DataType::BIT: @@ -810,7 +785,6 @@ void OStatement_Base::SetAssignValue(const String& aColumnName, *(m_aAssignValues->get())[nId] = sal_False; else { - // aStatus.Set(SQL_STAT_ERROR); // nyi: genauer! throwFunctionSequenceException(*this); } } @@ -826,24 +800,15 @@ void OStatement_Base::SetAssignValue(const String& aColumnName, case DataType::TIME: case DataType::TIMESTAMP: { - *(m_aAssignValues->get())[nId] = ORowSetValue(aValue); // .ToDouble -// try -// { -// double n = xValue->toDouble(); -// xValue->setDouble(n); -// } -// catch ( ... ) -// { -// aStatus.SetDriverNotCapableError(); -// } + *(m_aAssignValues->get())[nId] = ORowSetValue(aValue); } break; default: throwFunctionSequenceException(*this); } } - // Parameter-Nr. merken (als User Data) - // SQL_NO_PARAMETER = kein Parameter. + // save Parameter-No. (as User Data) + // SQL_NO_PARAMETER = no Parameter. m_aAssignValues->setParameterIndex(nId,nParameter); if(nParameter != SQL_NO_PARAMETER) m_aParameterIndexes[nParameter] = nId; diff --git a/connectivity/source/drivers/file/FTable.cxx b/connectivity/source/drivers/file/FTable.cxx index edcf565aa9..892a57ca35 100644 --- a/connectivity/source/drivers/file/FTable.cxx +++ b/connectivity/source/drivers/file/FTable.cxx @@ -51,7 +51,7 @@ using namespace ::com::sun::star::container; DBG_NAME( file_OFileTable ) OFileTable::OFileTable(sdbcx::OCollection* _pTables,OConnection* _pConnection) -: OTable_TYPEDEF(_pTables,_pConnection->getMetaData()->storesMixedCaseQuotedIdentifiers()) +: OTable_TYPEDEF(_pTables,_pConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers()) ,m_pConnection(_pConnection) ,m_pFileStream(NULL) ,m_nFilePos(0) @@ -73,7 +73,7 @@ OFileTable::OFileTable( sdbcx::OCollection* _pTables,OConnection* _pConnection, const ::rtl::OUString& _Description , const ::rtl::OUString& _SchemaName, const ::rtl::OUString& _CatalogName - ) : OTable_TYPEDEF(_pTables,_pConnection->getMetaData()->storesMixedCaseQuotedIdentifiers(), + ) : OTable_TYPEDEF(_pTables,_pConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers(), _Name, _Type, _Description, @@ -103,7 +103,7 @@ void OFileTable::refreshColumns() RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::refreshColumns" ); TStringVector aVector; Reference< XResultSet > xResult = m_pConnection->getMetaData()->getColumns(Any(), - m_SchemaName,m_Name,::rtl::OUString::createFromAscii("%")); + m_SchemaName,m_Name,::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("%"))); if(xResult.is()) { @@ -205,19 +205,19 @@ void SAL_CALL OFileTable::release() throw() OTable_TYPEDEF::release(); } // ----------------------------------------------------------------------------- -BOOL OFileTable::InsertRow(OValueRefVector& /*rRow*/, BOOL /*bFlush*/,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& /*_xCols*/) +sal_Bool OFileTable::InsertRow(OValueRefVector& /*rRow*/, sal_Bool /*bFlush*/,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& /*_xCols*/) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::InsertRow" ); return sal_False; } // ----------------------------------------------------------------------------- -BOOL OFileTable::DeleteRow(const OSQLColumns& /*_rCols*/) +sal_Bool OFileTable::DeleteRow(const OSQLColumns& /*_rCols*/) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::DeleteRow" ); return sal_False; } // ----------------------------------------------------------------------------- -BOOL OFileTable::UpdateRow(OValueRefVector& /*rRow*/, OValueRefRow& /*pOrgRow*/,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& /*_xCols*/) +sal_Bool OFileTable::UpdateRow(OValueRefVector& /*rRow*/, OValueRefRow& /*pOrgRow*/,const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>& /*_xCols*/) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::UpdateRow" ); return sal_False; @@ -226,13 +226,13 @@ BOOL OFileTable::UpdateRow(OValueRefVector& /*rRow*/, OValueRefRow& /*pOrgRow*/, void OFileTable::addColumn(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet>& /*descriptor*/) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::addColumn" ); - OSL_ENSURE( false, "OFileTable::addColumn: not implemented!" ); + OSL_FAIL( "OFileTable::addColumn: not implemented!" ); } // ----------------------------------------------------------------------------- void OFileTable::dropColumn(sal_Int32 /*_nPos*/) { RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "file", "Ocke.Janssen@sun.com", "OFileTable::dropColumn" ); - OSL_ENSURE( false, "OFileTable::addColumn: not implemented!" ); + OSL_FAIL( "OFileTable::addColumn: not implemented!" ); } // ----------------------------------------------------------------------------- diff --git a/connectivity/source/drivers/file/fanalyzer.cxx b/connectivity/source/drivers/file/fanalyzer.cxx index 773b24b277..cbff002d24 100644 --- a/connectivity/source/drivers/file/fanalyzer.cxx +++ b/connectivity/source/drivers/file/fanalyzer.cxx @@ -104,7 +104,26 @@ void OSQLAnalyzer::start(OSQLParseNode* pSQLParseNode) m_pConnection->throwGenericSQLException(STR_QUERY_COMPLEX_COUNT,NULL); } else - m_aSelectionEvaluations.push_back( TPredicates() ); + { + if ( SQL_ISPUNCTUATION( pColumnRef, "*" ) + || ( SQL_ISRULE( pColumnRef, column_ref ) + && ( pColumnRef->count() == 3 ) + && ( pColumnRef->getChild(0)->getNodeType() == SQL_NODE_NAME ) + && SQL_ISPUNCTUATION( pColumnRef->getChild(1), "." ) + && SQL_ISRULE( pColumnRef->getChild(2), column_val ) + && SQL_ISPUNCTUATION( pColumnRef->getChild(2)->getChild(0), "*" ) + ) + ) + { + // push one element for each column of our table + const Reference< XNameAccess > xColumnNames( m_aCompiler->getOrigColumns() ); + const Sequence< ::rtl::OUString > aColumnNames( xColumnNames->getElementNames() ); + for ( sal_Int32 j=0; j<aColumnNames.getLength(); ++j ) + m_aSelectionEvaluations.push_back( TPredicates() ); + } + else + m_aSelectionEvaluations.push_back( TPredicates() ); + } } } } @@ -115,10 +134,9 @@ void OSQLAnalyzer::start(OSQLParseNode* pSQLParseNode) //------------------------------------------------------------------ void OSQLAnalyzer::bindRow(OCodeList& rCodeList,const OValueRefRow& _pRow,OEvaluateSetList& _rEvaluateSetList) { - // Zaehlen, wieviele Kriterien - // wenn nur ein Kriterium, und das entsprechende Feld ist indiziert - // dann wird der Index verwendet - + // count criteria + // if only one criterion, and the corresponding field is indexed + // then the index will be used OEvaluateSet* pEvaluateSet = NULL; for (OCodeList::iterator aIter = rCodeList.begin(); aIter != rCodeList.end(); ++aIter) @@ -166,10 +184,10 @@ void OSQLAnalyzer::bindSelectRow(const OValueRefRow& _pRow) ::std::vector<sal_Int32>* pKeySet = NULL; OEvaluateSet* pEvaluateSet = NULL; - // Keyset erzeugen mit kleinster Liste + // create Keyset with smallest list if(!aEvaluateSetList.empty()) { - // welche Liste hat den kleinsten count ? + // which list has the smallest count? OEvaluateSetList::iterator i = aEvaluateSetList.begin(); pEvaluateSet = *(i); for(++i; i != aEvaluateSetList.end();++i) @@ -188,7 +206,7 @@ void OSQLAnalyzer::bindSelectRow(const OValueRefRow& _pRow) (*pKeySet)[k] = j->second; } - // alle loeschen + // delete all for(i = aEvaluateSetList.begin(); i != aEvaluateSetList.end();++i) delete (*i); } @@ -203,20 +221,20 @@ void OSQLAnalyzer::describeParam(::rtl::Reference<OSQLColumns> rParameterColumns OCodeStack aCodeStack; if (!rCodeList.size()) - return; // kein Praedikat + return; // no predicate if (!rParameterColumns->get().size()) - return; // keine Parameter + return; // no parameters - // Anlegen von Columns, die eine genauere Beschreibung fuer die enthalten + // Create columns, that have a more precise description for the included ::rtl::Reference<OSQLColumns> aNewParamColumns = new OSQLColumns(*rParameterColumns); - // Anlegen einer Testzeile, wird benoetigt um die Parameter zu beschreiben + // Create a Test-row, is needed to describe the parameters OValueRefRow aParameterRow = new OValueRefVector(rParameterColumns->get().size()); bindParameterRow(aParameterRow); OValueRefRow aTestRow = new OValueRefVector(Reference< XIndexAccess>(m_aCompiler->getOrigColumns(),UNO_QUERY)->getCount()); - delete bindEvaluationRow(aTestRow); // Binden der Attribute an die Values + delete bindEvaluationRow(aTestRow); // Bind the attributes to the values for(OCodeList::iterator aIter = rCodeList.begin(); aIter != rCodeList.end(); ++aIter) { @@ -226,10 +244,10 @@ void OSQLAnalyzer::describeParam(::rtl::Reference<OSQLColumns> rParameterColumns aCodeStack.push(pOperand); else { - if (pOperator->getRequestedOperands() == 2) // bei zwei Operatoren ist es moeglich - { // einen Parameter weiter zu spezifizieren + if (pOperator->getRequestedOperands() == 2) // with two Operands it is possible + { // to specify one parameter better OOperandParam *pParam = PTR_CAST(OOperandParam,aCodeStack.top()); - if (pParam) // Anpassen des ParameterTyps, wenn der linke Operand ein Attribut ist + if (pParam) // adjust the Parameter-types, if the left Operand is an attribute { OOperandAttr *pLeft = PTR_CAST(OOperandAttr,*(rCodeList.end() - 2)); if (pLeft) @@ -252,10 +270,9 @@ void OSQLAnalyzer::describeParam(::rtl::Reference<OSQLColumns> rParameterColumns if (IS_TYPE(OOperandResult,pOperand)) delete pOperand; else - OSL_ENSURE(0,"Illegal here!"); + OSL_FAIL("Illegal here!"); rParameterColumns = aNewParamColumns; - // m_aCompiler->setParameterColumns(rParameterColumns); } // ----------------------------------------------------------------------------- @@ -266,12 +283,12 @@ OOperandAttr* OSQLAnalyzer::createOperandAttr(sal_Int32 _nPos, return new OOperandAttr(static_cast<sal_uInt16>(_nPos),_xCol); } // ----------------------------------------------------------------------------- -BOOL OSQLAnalyzer::hasRestriction() const +sal_Bool OSQLAnalyzer::hasRestriction() const { return m_aCompiler->hasCode(); } // ----------------------------------------------------------------------------- -BOOL OSQLAnalyzer::hasFunctions() const +sal_Bool OSQLAnalyzer::hasFunctions() const { if ( m_bSelectionFirstTime ) { @@ -292,11 +309,12 @@ void OSQLAnalyzer::setSelectionEvaluationResult(OValueRefRow& _pRow,const ::std: { if ( aIter->second.is() ) { - sal_Int32 map = nPos; // the first column (index 0) is for convenience only. The first real select column is no 1. - if ( (nPos > 0) && (nPos < static_cast<sal_Int32>(_rColumnMapping.size())) ) + sal_Int32 map = nPos; + if ( nPos < static_cast< sal_Int32 >( _rColumnMapping.size() ) ) map = _rColumnMapping[nPos]; - aIter->second->startSelection((_pRow->get())[map]); + if ( map > 0 ) + aIter->second->startSelection( (_pRow->get())[map] ); } } } diff --git a/connectivity/source/drivers/file/fcode.cxx b/connectivity/source/drivers/file/fcode.cxx index bb48041a30..ad8662c7d0 100644 --- a/connectivity/source/drivers/file/fcode.cxx +++ b/connectivity/source/drivers/file/fcode.cxx @@ -43,13 +43,8 @@ using namespace ::comphelper; using namespace connectivity; using namespace connectivity::file; -//using namespace ::com::sun::star::uno; -//using namespace ::com::sun::star::lang; using namespace ::com::sun::star::sdbc; using namespace ::com::sun::star::sdb; -//using namespace ::com::sun::star::container; -//using namespace ::com::sun::star::beans; -//using namespace ::com::sun::star::sdbcx; TYPEINIT0(OCode); TYPEINIT1(OOperand, OCode); @@ -135,7 +130,7 @@ sal_Bool OOperandAttr::isIndexed() const } //------------------------------------------------------------------ OOperandParam::OOperandParam(OSQLParseNode* pNode, sal_Int32 _nPos) - : OOperandRow(static_cast<sal_uInt16>(_nPos), DataType::VARCHAR) // Standard-Typ + : OOperandRow(static_cast<sal_uInt16>(_nPos), DataType::VARCHAR) // Standard-Type { OSL_ENSURE(SQL_ISRULE(pNode,parameter),"Argument ist kein Parameter"); OSL_ENSURE(pNode->count() > 0,"Fehler im Parse Tree"); @@ -148,20 +143,18 @@ OOperandParam::OOperandParam(OSQLParseNode* pNode, sal_Int32 _nPos) aParameterName = pNode->getChild(1)->getTokenValue(); else { - OSL_ASSERT("Fehler im Parse Tree"); + OSL_FAIL("Fehler im Parse Tree"); } - // Parameter-Column aufsetzen mit defult typ, kann zu einem spaeteren Zeitpunkt ueber DescribeParameter - // genauer spezifiziert werden + // set up Parameter-Column with default type, can be specified more precisely later using Describe-Parameter - // Identitaet merken (hier eigentlich nicht erforderlich, aber aus - // Symmetriegruenden ...) + // save Identity (not escpecially necessary here, just for the sake of symmetry) // todo // OColumn* pColumn = new OFILEColumn(aParameterName,eDBType,255,0,SQL_FLAGS_NULLALLOWED); // rParamColumns->AddColumn(pColumn); - // der Wert wird erst kurz vor der Auswertung gesetzt + // the value will be set just before the evaluation } @@ -207,7 +200,7 @@ OOperandConst::OOperandConst(const OSQLParseNode& rColumnRef, const rtl::OUStrin } else { - OSL_ASSERT("Parse Error"); + OSL_FAIL("Parse Error"); } m_aValue.setBound(sal_True); } @@ -348,7 +341,7 @@ sal_Bool OOp_COMPARE::operate(const OOperand* pLeft, const OOperand* pRight) con sal_Bool bResult = sal_False; sal_Int32 eDBType = pLeft->getDBType(); - // Vergleich (je nach Datentyp): + // Comparison (depending on Data-type): switch (eDBType) { case DataType::CHAR: @@ -356,7 +349,7 @@ sal_Bool OOp_COMPARE::operate(const OOperand* pLeft, const OOperand* pRight) con case DataType::LONGVARCHAR: { rtl::OUString sLH = aLH, sRH = aRH; - INT32 nRes = rtl_ustr_compareIgnoreAsciiCase_WithLength + sal_Int32 nRes = rtl_ustr_compareIgnoreAsciiCase_WithLength ( sLH.pData->buffer, sLH.pData->length, diff --git a/connectivity/source/drivers/file/fcomp.cxx b/connectivity/source/drivers/file/fcomp.cxx index 9e05f9a91f..d054360d0f 100644 --- a/connectivity/source/drivers/file/fcomp.cxx +++ b/connectivity/source/drivers/file/fcomp.cxx @@ -58,10 +58,9 @@ using namespace ::com::sun::star::util; DBG_NAME(OPredicateCompiler) //------------------------------------------------------------------ OPredicateCompiler::OPredicateCompiler(OSQLAnalyzer* pAnalyzer)//,OCursor& rCurs) - // : m_rCursor(rCurs) : m_pAnalyzer(pAnalyzer) , m_nParamCounter(0) - , m_bORCondition(FALSE) + , m_bORCondition(sal_False) { DBG_CTOR(OPredicateCompiler,NULL); } @@ -79,17 +78,15 @@ void OPredicateCompiler::dispose() m_orgColumns = NULL; m_xIndexes.clear(); } -//------------------------------------------------------------------ -// inline OCursor& OPredicateCompiler::Cursor() const {return m_rCursor;} -//------------------------------------------------------------------ + void OPredicateCompiler::start(OSQLParseNode* pSQLParseNode) { if (!pSQLParseNode) return; m_nParamCounter = 0; - // Parse Tree analysieren (je nach Statement-Typ) - // und Zeiger auf WHERE-Klausel setzen: + // analyse Parse Tree (depending on Statement-type) + // and set pointer on WHERE-clause: OSQLParseNode * pWhereClause = NULL; OSQLParseNode * pOrderbyClause = NULL; @@ -119,6 +116,7 @@ void OPredicateCompiler::start(OSQLParseNode* pSQLParseNode) pWhereClause = pTableExp->getChild(1); pOrderbyClause = pTableExp->getChild(4); + (void)pOrderbyClause; } else if (SQL_ISRULE(pSQLParseNode,update_statement_searched)) { @@ -131,12 +129,12 @@ void OPredicateCompiler::start(OSQLParseNode* pSQLParseNode) pWhereClause = pSQLParseNode->getChild(3); } else - // Anderes Statement. Keine Selektionskriterien. + // Other Statement. no selection-criteria return; if (SQL_ISRULE(pWhereClause,where_clause)) { - // Wenn es aber eine where_clause ist, dann darf sie nicht leer sein: + // a where-clause is not allowed to be empty: DBG_ASSERT(pWhereClause->count() == 2,"OFILECursor: Fehler im Parse Tree"); OSQLParseNode * pComparisonPredicate = pWhereClause->getChild(1); @@ -146,8 +144,7 @@ void OPredicateCompiler::start(OSQLParseNode* pSQLParseNode) } else { - // Die Where Clause ist meistens optional, d. h. es koennte sich auch - // um "optional_where_clause" handeln. + // The where-clause is optionally in the majority of cases, i.e. it might be an "optional-where-clause". DBG_ASSERT(SQL_ISRULE(pWhereClause,opt_where_clause),"OPredicateCompiler: Fehler im Parse Tree"); } } @@ -156,18 +153,18 @@ void OPredicateCompiler::start(OSQLParseNode* pSQLParseNode) OOperand* OPredicateCompiler::execute(OSQLParseNode* pPredicateNode) { OOperand* pOperand = NULL; - if (pPredicateNode->count() == 3 && // Ausdruck is geklammert + if (pPredicateNode->count() == 3 && // Expression is bracketed SQL_ISPUNCTUATION(pPredicateNode->getChild(0),"(") && SQL_ISPUNCTUATION(pPredicateNode->getChild(2),")")) { execute(pPredicateNode->getChild(1)); } else if ((SQL_ISRULE(pPredicateNode,search_condition) || (SQL_ISRULE(pPredicateNode,boolean_term))) - && // AND/OR-Verknuepfung: + && // AND/OR-linkage: pPredicateNode->count() == 3) { - execute(pPredicateNode->getChild(0)); // Bearbeiten des linken Zweigs - execute(pPredicateNode->getChild(2)); // Bearbeiten des rechten Zweigs + execute(pPredicateNode->getChild(0)); // process the left branch + execute(pPredicateNode->getChild(2)); // process the right branch if (SQL_ISTOKEN(pPredicateNode->getChild(1),OR)) // OR-Operator { @@ -178,7 +175,7 @@ OOperand* OPredicateCompiler::execute(OSQLParseNode* pPredicateNode) m_aCodeList.push_back(new OOp_AND()); else { - DBG_ERROR("OPredicateCompiler: Fehler im Parse Tree"); + OSL_FAIL("OPredicateCompiler: Fehler im Parse Tree"); } } else if (SQL_ISRULE(pPredicateNode,boolean_factor)) @@ -204,8 +201,8 @@ OOperand* OPredicateCompiler::execute(OSQLParseNode* pPredicateNode) } else if(SQL_ISRULE(pPredicateNode,num_value_exp)) { - execute(pPredicateNode->getChild(0)); // Bearbeiten des linken Zweigs - execute(pPredicateNode->getChild(2)); // Bearbeiten des rechten Zweigs + execute(pPredicateNode->getChild(0)); // process the left branch + execute(pPredicateNode->getChild(2)); // process the right branch if (SQL_ISPUNCTUATION(pPredicateNode->getChild(1),"+")) { m_aCodeList.push_back(new OOp_ADD()); @@ -214,13 +211,13 @@ OOperand* OPredicateCompiler::execute(OSQLParseNode* pPredicateNode) m_aCodeList.push_back(new OOp_SUB()); else { - DBG_ERROR("OPredicateCompiler: Fehler im Parse Tree num_value_exp"); + OSL_FAIL("OPredicateCompiler: Fehler im Parse Tree num_value_exp"); } } else if(SQL_ISRULE(pPredicateNode,term)) { - execute(pPredicateNode->getChild(0)); // Bearbeiten des linken Zweigs - execute(pPredicateNode->getChild(2)); // Bearbeiten des rechten Zweigs + execute(pPredicateNode->getChild(0)); // process the left branch + execute(pPredicateNode->getChild(2)); // process the right branch if (SQL_ISPUNCTUATION(pPredicateNode->getChild(1),"*")) { m_aCodeList.push_back(new OOp_MUL()); @@ -229,11 +226,11 @@ OOperand* OPredicateCompiler::execute(OSQLParseNode* pPredicateNode) m_aCodeList.push_back(new OOp_DIV()); else { - DBG_ERROR("OPredicateCompiler: Fehler im Parse Tree num_value_exp"); + OSL_FAIL("OPredicateCompiler: Fehler im Parse Tree num_value_exp"); } } else - pOperand = execute_Operand(pPredicateNode); // jetzt werden nur einfache Operanden verarbeitet + pOperand = execute_Operand(pPredicateNode); // now only simple operands will be processed return pOperand; } @@ -277,7 +274,7 @@ OOperand* OPredicateCompiler::execute_COMPARE(OSQLParseNode* pPredicateNode) th else if (pPrec->getNodeType() == SQL_NODE_GREAT) ePredicateType = SQLFilterOperator::GREATER; else - OSL_ENSURE( false, "OPredicateCompiler::execute_COMPARE: unexpected node type!" ); + OSL_FAIL( "OPredicateCompiler::execute_COMPARE: unexpected node type!" ); execute(pPredicateNode->getChild(0)); execute(pPredicateNode->getChild(2)); @@ -464,7 +461,7 @@ OOperand* OPredicateCompiler::execute_Operand(OSQLParseNode* pPredicateNode) thr pOperand = m_pAnalyzer->createOperandAttr(Reference< XColumnLocate>(m_orgColumns,UNO_QUERY)->findColumn(aColumnName),xCol,m_xIndexes); } else - {// Column existiert nicht im Resultset + {// Column doesn't exist in the Result-set const ::rtl::OUString sError( m_pAnalyzer->getConnection()->getResources().getResourceStringWithSubstitution( STR_INVALID_COLUMNNAME, "$columnname$", aColumnName @@ -474,7 +471,7 @@ OOperand* OPredicateCompiler::execute_Operand(OSQLParseNode* pPredicateNode) thr } catch(Exception &) { - OSL_ENSURE(0,"OPredicateCompiler::execute_Operand Exception"); + OSL_FAIL("OPredicateCompiler::execute_Operand Exception"); } } else if (SQL_ISRULE(pPredicateNode,parameter)) @@ -494,7 +491,7 @@ OOperand* OPredicateCompiler::execute_Operand(OSQLParseNode* pPredicateNode) thr else if((pPredicateNode->count() == 2) && (SQL_ISPUNCTUATION(pPredicateNode->getChild(0),"+") || SQL_ISPUNCTUATION(pPredicateNode->getChild(0),"-")) && pPredicateNode->getChild(1)->getNodeType() == SQL_NODE_INTNUM) - { // falls -1 bzw. +1 vorhanden ist + { // if -1 or +1 is there ::rtl::OUString aValue(pPredicateNode->getChild(0)->getTokenValue()); aValue += pPredicateNode->getChild(1)->getTokenValue(); pOperand = new OOperandConst(*pPredicateNode->getChild(1), aValue); @@ -560,7 +557,7 @@ sal_Bool OPredicateInterpreter::evaluate(OCodeList& rCodeList) OCodeList::iterator aIter = rCodeList.begin(); if (!(*aIter)) - return sal_True; // kein Praedikat + return sal_True; // no Predicate for(;aIter != rCodeList.end();++aIter) { @@ -587,7 +584,7 @@ void OPredicateInterpreter::evaluateSelection(OCodeList& rCodeList,ORowSetValueD { OCodeList::iterator aIter = rCodeList.begin(); if (!(*aIter)) - return ; // kein Praedikat + return ; // no Predicate for(;aIter != rCodeList.end();++aIter) { @@ -781,7 +778,7 @@ OOperand* OPredicateCompiler::executeFunction(OSQLParseNode* pPredicateNode) thr pOperator = new OOp_Second(); break; default: - OSL_ENSURE(0,"Error in switch!"); + OSL_FAIL("Error in switch!"); } break; case SQL_TOKEN_CHAR: @@ -869,7 +866,7 @@ OOperand* OPredicateCompiler::executeFunction(OSQLParseNode* pPredicateNode) thr pOperator = new OOp_Week(); break; default: - OSL_ENSURE(0,"Error in switch!"); + OSL_FAIL("Error in switch!"); } } break; diff --git a/connectivity/source/drivers/file/file.xml b/connectivity/source/drivers/file/file.xml index b3b681c305..b3b681c305 100644..100755 --- a/connectivity/source/drivers/file/file.xml +++ b/connectivity/source/drivers/file/file.xml diff --git a/connectivity/source/drivers/file/makefile.mk b/connectivity/source/drivers/file/makefile.mk index 41f061de80..41f061de80 100644..100755 --- a/connectivity/source/drivers/file/makefile.mk +++ b/connectivity/source/drivers/file/makefile.mk diff --git a/connectivity/source/drivers/file/quotedstring.cxx b/connectivity/source/drivers/file/quotedstring.cxx index 5847b94e88..c71afa3d41 100644 --- a/connectivity/source/drivers/file/quotedstring.cxx +++ b/connectivity/source/drivers/file/quotedstring.cxx @@ -45,48 +45,48 @@ namespace connectivity return 0; xub_StrLen nTokCount = 1; - BOOL bStart = TRUE; // Stehen wir auf dem ersten Zeichen im Token? - BOOL bInString = FALSE; // Befinden wir uns INNERHALB eines (cStrDel delimited) String? + sal_Bool bStart = sal_True; // Are we on the first character in the Token? + sal_Bool bInString = sal_False; // Are we WITHIN a (cStrDel delimited) String? - // Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen + // Search for String-end after the first not matching character for( xub_StrLen i = 0; i < nLen; ++i ) { const sal_Unicode cChar = m_sString.GetChar(i); if (bStart) { - bStart = FALSE; - // Erstes Zeichen ein String-Delimiter? + bStart = sal_False; + // First character a String-Delimiter? if ( cChar == cStrDel ) { - bInString = TRUE; // dann sind wir jetzt INNERHALB des Strings! - continue; // dieses Zeichen ueberlesen! + bInString = sal_True; // then we are now WITHIN the string! + continue; // skip this character! } } if (bInString) { - // Wenn jetzt das String-Delimiter-Zeichen auftritt ... + // when now the String-Delimiter-character occurs ... if ( cChar == cStrDel ) { if ((i+1 < nLen) && (m_sString.GetChar(i+1) == cStrDel)) { - // Verdoppeltes String-Delimiter-Zeichen: - ++i; // kein String-Ende, naechstes Zeichen ueberlesen. + // double String-Delimter-character: + ++i; // no string-end, skip next character. } else { - // String-Ende - bInString = FALSE; + // String-End + bInString = sal_False; } } } // if (bInString) else { - // Stimmt das Tokenzeichen ueberein, dann erhoehe TokCount + // does the Token-character match, then raise TokCount if ( cChar == cTok ) { ++nTokCount; - bStart = TRUE; + bStart = sal_True; } } } @@ -103,58 +103,57 @@ namespace connectivity const xub_StrLen nLen = m_sString.Len(); if ( nLen ) { - BOOL bInString = (nStartPos < nLen) && (m_sString.GetChar(nStartPos) == cStrDel); // Befinden wir uns INNERHALB eines (cStrDel delimited) String? + sal_Bool bInString = (nStartPos < nLen) && (m_sString.GetChar(nStartPos) == cStrDel); // are we WITHIN a (cStrDel delimited) String? - // Erstes Zeichen ein String-Delimiter? + // First character a String-Delimiter? if (bInString ) - ++nStartPos; // dieses Zeichen ueberlesen! + ++nStartPos; // skip this character! if ( nStartPos >= nLen ) return; sal_Unicode* pData = _rStr.AllocBuffer( nLen - nStartPos + 1 ); const sal_Unicode* pStart = pData; - // Suche bis Stringende nach dem ersten nicht uebereinstimmenden Zeichen + // Search until end of string for the first not matching character for( xub_StrLen i = nStartPos; i < nLen; ++i ) { const sal_Unicode cChar = m_sString.GetChar(i); if (bInString) { - // Wenn jetzt das String-Delimiter-Zeichen auftritt ... + // when now the String-Delimiter-character occurs ... if ( cChar == cStrDel ) { if ((i+1 < nLen) && (m_sString.GetChar(i+1) == cStrDel)) { - // Verdoppeltes String-Delimiter-Zeichen: - // kein String-Ende, naechstes Zeichen ueberlesen. + // double String Delimiter-character + // no end of string, skip next character. ++i; - *pData++ = m_sString.GetChar(i); // Zeichen gehoert zum Resultat-String + *pData++ = m_sString.GetChar(i); // character belongs to Result-String } else { - // String-Ende - bInString = FALSE; + //end of String + bInString = sal_False; *pData = 0; } } else { - *pData++ = cChar; // Zeichen gehoert zum Resultat-String + *pData++ = cChar; // character belongs to Result-String } } else { - // Stimmt das Tokenzeichen ueberein, dann erhoehe nTok + // does the Token-sign match, then raise nTok if ( cChar == cTok ) { - // Vorzeitiger Abbruch der Schleife moeglich, denn - // wir haben, was wir wollten. + // premature break of loop possible, because we found what we were looking for nStartPos = i+1; break; } else { - *pData++ = cChar; // Zeichen gehoert zum Resultat-String + *pData++ = cChar; // character belongs to Result-String } } } // for( xub_StrLen i = nStartPos; i < nLen; ++i ) |