User: obo Date: 2006/07/10 07:29:40 Modified: dba/connectivity/source/drivers/mozab/MResultSet.cxx
Log: INTEGRATION: CWS qiq (1.25.26); FILE MERGED 2006/06/30 13:17:59 fs 1.25.26.4: during #i51143#: PROPERTY_ID_HY0000 superseded by StandardSQLState.SQL_GENERAL_ERROR 2006/06/28 08:45:21 fs 1.25.26.3: #i10000# 2006/06/27 14:40:38 fs 1.25.26.2: RESYNC: (1.25-1.26); FILE MERGED 2006/05/10 10:52:23 fs 1.25.26.1: #i51443# changed API of the OSQLParseIterator File Changes: Directory: /dba/connectivity/source/drivers/mozab/ ================================================== File [changed]: MResultSet.cxx Url: http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/mozab/MResultSet.cxx?r1=1.26&r2=1.27 Delta lines: +54 -63 --------------------- --- MResultSet.cxx 20 Jun 2006 01:44:18 -0000 1.26 +++ MResultSet.cxx 10 Jul 2006 14:29:37 -0000 1.27 @@ -136,7 +136,7 @@ } // ------------------------------------------------------------------------- -OResultSet::OResultSet(OStatement_Base* pStmt, connectivity::OSQLParseTreeIterator& _aSQLIterator ) +OResultSet::OResultSet(OStatement_Base* pStmt, const ::boost::shared_ptr< connectivity::OSQLParseTreeIterator >& _pSQLIterator ) : OResultSet_BASE(m_aMutex) ,OPropertySetHelper(OResultSet_BASE::rBHelper) ,m_pStatement(pStmt) @@ -148,8 +148,8 @@ ,m_nResultSetType(ResultSetType::SCROLL_INSENSITIVE) ,m_nFetchDirection(FetchDirection::FORWARD) ,m_nResultSetConcurrency(ResultSetConcurrency::UPDATABLE) - ,m_aSQLIterator(_aSQLIterator) - ,m_pParseTree(_aSQLIterator.getParseTree()) + ,m_pSQLIterator( _pSQLIterator ) + ,m_pParseTree( _pSQLIterator->getParseTree() ) ,m_aQuery(pStmt->getOwnConnection()->getColumnAlias().getAliasMap()) ,m_pTable(NULL) ,m_CurrentRowCount(0) @@ -315,7 +315,7 @@ if(!m_xMetaData.is()) m_xMetaData = new OResultSetMetaData( - m_aSQLIterator.getSelectColumns(), m_aSQLIterator.getTables().begin()->first ,m_pTable,determineReadOnly()); + m_pSQLIterator->getSelectColumns(), m_pSQLIterator->getTables().begin()->first ,m_pTable,determineReadOnly()); return m_xMetaData; } // ------------------------------------------------------------------------- @@ -803,8 +803,7 @@ } void OResultSet::analyseWhereClause( const OSQLParseNode* parseTree, - MQueryExpression &queryExpression, - connectivity::OSQLParseTreeIterator& aSQLIterator) + MQueryExpression &queryExpression) { ::rtl::OUString columnName; MQueryOp::cond_type op( MQueryOp::Is ); @@ -813,8 +812,8 @@ if ( parseTree == NULL ) return; - if ( aSQLIterator.getParseTree() != NULL ) { - ::vos::ORef<OSQLColumns> xColumns = aSQLIterator.getParameters(); + if ( m_pSQLIterator->getParseTree() != NULL ) { + ::vos::ORef<OSQLColumns> xColumns = m_pSQLIterator->getParameters(); if(xColumns.isValid()) { ::rtl::OUString aTabName,aColName,aParameterName,aParameterValue; @@ -846,7 +845,7 @@ OSL_TRACE("analyseSQL : Got WHERE clause\n"); // Reset Parameter Counter resetParameters(); - analyseWhereClause( parseTree->getChild( 1 ), queryExpression, aSQLIterator); + analyseWhereClause( parseTree->getChild( 1 ), queryExpression ); } else if ( parseTree->count() == 3 && // Handle ()'s SQL_ISPUNCTUATION(parseTree->getChild(0),"(") && @@ -855,7 +854,7 @@ OSL_TRACE("analyseSQL : Got Punctuation ()\n"); MQueryExpression *subExpression = new MQueryExpression(); - analyseWhereClause( parseTree->getChild( 1 ), *subExpression, aSQLIterator ); + analyseWhereClause( parseTree->getChild( 1 ), *subExpression ); queryExpression.getExpressions().push_back( subExpression ); } else if ((SQL_ISRULE(parseTree,search_condition) || (SQL_ISRULE(parseTree,boolean_term))) @@ -865,8 +864,8 @@ OSL_TRACE("analyseSQL : Got AND/OR clause\n"); // TODO - Need to take care or AND, for now match is always OR - analyseWhereClause( parseTree->getChild( 0 ), queryExpression, aSQLIterator ); - analyseWhereClause( parseTree->getChild( 2 ), queryExpression, aSQLIterator ); + analyseWhereClause( parseTree->getChild( 0 ), queryExpression ); + analyseWhereClause( parseTree->getChild( 2 ), queryExpression ); if (SQL_ISTOKEN(parseTree->getChild(1),OR)) { // OR-Operator queryExpression.setExpressionCondition( MQueryExpression::OR ); @@ -903,7 +902,7 @@ ::rtl::OUString sTableRange; if(SQL_ISRULE(parseTree->getChild(0),column_ref)) - aSQLIterator.getColumnRange(parseTree->getChild(0),columnName,sTableRange); + m_pSQLIterator->getColumnRange(parseTree->getChild(0),columnName,sTableRange); else if(parseTree->getChild(0)->isToken()) columnName = parseTree->getChild(0)->getTokenValue(); @@ -960,7 +959,7 @@ ::rtl::OUString sTableRange; if(SQL_ISRULE(pColumn,column_ref)) - aSQLIterator.getColumnRange(pColumn,columnName,sTableRange); + m_pSQLIterator->getColumnRange(pColumn,columnName,sTableRange); OSL_TRACE("ColumnName = %s\n", OUtoCStr( columnName ) ); @@ -1081,7 +1080,7 @@ op = MQueryOp::Exists; ::rtl::OUString sTableRange; - aSQLIterator.getColumnRange(parseTree->getChild(0),columnName,sTableRange); + m_pSQLIterator->getColumnRange(parseTree->getChild(0),columnName,sTableRange); queryExpression.getExpressions().push_back( new MQueryExpressionString( columnName, op )); } @@ -1104,7 +1103,7 @@ MQueryExpression queryExpression; OConnection* xConnection = static_cast<OConnection*>(m_pStatement->getConnection().get()); - m_xColumns = m_aSQLIterator.getSelectColumns(); + m_xColumns = m_pSQLIterator->getSelectColumns(); OSL_ENSURE(m_xColumns.isValid(), "Need the Columns!!"); @@ -1124,7 +1123,7 @@ // Generate Match Conditions for Query - const OSQLParseNode* pParseTree = m_aSQLIterator.getWhereTree(); + const OSQLParseNode* pParseTree = m_pSQLIterator->getWhereTree(); // const OSQLParseNode* pParseTree = NULL; @@ -1135,7 +1134,7 @@ OSL_TRACE("\tHave a Where Clause\n"); - analyseWhereClause( pParseTree, queryExpression, m_aSQLIterator); + analyseWhereClause( pParseTree, queryExpression ); } else { @@ -1237,11 +1236,11 @@ OSL_ENSURE( m_pTable, "Need a Table object"); if(!m_pTable) { - const OSQLTables& xTabs = m_aSQLIterator.getTables(); + const OSQLTables& xTabs = m_pSQLIterator->getTables(); if ((xTabs.begin() == xTabs.end()) || !xTabs.begin()->second.is()) ::dbtools::throwGenericSQLException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("The statement is invalid.")), static_cast<XWeak*>(this), - makeAny(m_aSQLIterator.getWarning()) + makeAny( m_pSQLIterator->getErrors() ) ); m_pTable = static_cast< OTable* > ((xTabs.begin()->second).get()); @@ -1258,7 +1257,7 @@ // initializeRow(m_aRow,nColumnCount); // initializeRow(m_aEvaluateRow,nColumnCount); - switch(m_aSQLIterator.getStatementType()) + switch( m_pSQLIterator->getStatementType() ) { case SQL_STATEMENT_SELECT: { @@ -1403,9 +1402,6 @@ } } break; - case SQL_STATEMENT_SELECT_COUNT: - ::dbtools::throwFunctionNotSupportedException(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("COUNT() - Driver does not support this function.")), NULL); - break; case SQL_STATEMENT_UPDATE: case SQL_STATEMENT_DELETE: case SQL_STATEMENT_INSERT: @@ -1732,9 +1728,7 @@ const ::rtl::OUString errorMsg=::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(" Please commit row ")) + ::rtl::OUString::valueOf(nCurrentRow) + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(" before update rows or insert new rows. ")) ; - throw SQLException(errorMsg,*this - ,OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_HY0000) - ,1000,Any()); + ::dbtools::throwGenericSQLException( errorMsg, *this ); } } @@ -1919,16 +1913,13 @@ OSL_TRACE("deleteRow, m_nRowPos = %u", m_nRowPos ); ResultSetEntryGuard aGuard( *this ); if (rowDeleted()) - throw SQLException(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Row Already deleted")) ,*this - ,OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_HY0000) - ,1000,Any()); + ::dbtools::throwGenericSQLException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("Row Already deleted")), *this ); const sal_Int32 nCurrentRow = getCurrentCardNumber(); //fetchRow(nCurrentRow); if (!nCurrentRow) - throw SQLException(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(" Can't get Current Row")) ,*this - ,OMetaConnection::getPropMap().getNameByIndex(PROPERTY_ID_HY0000) - ,1000,Any()); + ::dbtools::throwGenericSQLException( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(" Can't get Current Row")), *this ); + sal_Bool m_bRowDeleted = ( m_aQuery.deleteRow( nCurrentRow ) > 0 ); if (!m_bRowDeleted) m_pStatement->getOwnConnection()->throwGenericSQLException( m_aQuery.getErrorResourceId() ); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
