Modified:
trunk/SDK/MYSQLPlus/Library/Library.pro
trunk/SDK/MYSQLPlus/Library/MInternal.h
trunk/SDK/MYSQLPlus/Library/MResult.cpp
trunk/SDK/MYSQLPlus/Library/MResult.h
trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp
trunk/SDK/MYSQLPlus/Library/MResultPlus.h
trunk/SDK/MYSQLPlus/Library/MResultRes.cpp
trunk/SDK/MYSQLPlus/Library/MResultRes.h
Log:
- changes/additions for block-cursor support
Modified: trunk/SDK/MYSQLPlus/Library/Library.pro
===================================================================
--- trunk/SDK/MYSQLPlus/Library/Library.pro 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/Library.pro 2006-09-13 22:12:39 UTC (rev 543)
@@ -7,7 +7,7 @@
include( ../../../common.pri )
include( ../../../config.pri )
include( ../../../defines.pri )
-CONFIG += staticlib
+CONFIG += staticlib MResultPlus
# CONFIG += staticlib ResultPlus ResultRes ResultStmt
INCLUDEPATH += ../../C/include
INCLUDEPATH += ../../Dbg/include
Modified: trunk/SDK/MYSQLPlus/Library/MInternal.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MInternal.h 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/MInternal.h 2006-09-13 22:12:39 UTC (rev 543)
@@ -50,6 +50,9 @@
SQL_ROW_UPDATED - row exists and has been updated
SQL_ROW_DELETED - row exists but has been deleted
SQL_ROW_ADDED - row exists and is a newly added row
+
+ \sa SQL_ATTR_CURSOR_SENSITIVITY
+ CURSOR_SENSITIVITY
*/
/*@{*/
SQLUSMALLINT nStatus;
Modified: trunk/SDK/MYSQLPlus/Library/MResult.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResult.cpp 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/MResult.cpp 2006-09-13 22:12:39 UTC (rev 543)
@@ -688,6 +688,26 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
+/*!
+ \brief Use this to reset the result-set to start state.
+
+ This clears the result-set (if any) and the prepare (if any).
+
+ \return SQLRETURN
+
+ \sa doDelete
+ doInsert
+*/
+SQLRETURN MResult::doClear()
+{
+ MYODBCDbgEnter();
+
+ if ( getState() > STATE_INITIALIZED )
+ MYODBCDbgReturn( doStateRollBack( STATE_INITIALIZED ) );
+
+ MYODBCDbgReturn( SQL_SUCCESS );
+}
+
/*!
\brief Aligns the RowSet with the first row in ResultSet.
Modified: trunk/SDK/MYSQLPlus/Library/MResult.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResult.h 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/MResult.h 2006-09-13 22:12:39 UTC (rev 543)
@@ -324,7 +324,7 @@
/* doers */
virtual SQLRETURN doAppend() = 0;
- virtual SQLRETURN doClear() = 0;
+ virtual SQLRETURN doClear(); /*!<
reinit ourself */
virtual SQLRETURN doCommit() = 0;
virtual SQLRETURN doDelete() = 0; /*!<
Operates on RowSetRow. */
virtual SQLRETURN doExecute() = 0; /*!<
Execute the prepared command. */
Modified: trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/MResultPlus.cpp 2006-09-13 22:12:39 UTC (rev 543)
@@ -103,16 +103,6 @@
MYODBCDbgReturn( SQL_SUCCESS );
}
-SQLRETURN MResultPlus::doClear()
-{
- MYODBCDbgEnter();
-
- if ( getState() > STATE_INITIALIZED )
- MYODBCDbgReturn( doStateRollBack( STATE_INITIALIZED ) );
-
- MYODBCDbgReturn( SQL_SUCCESS );
-}
-
SQLRETURN MResultPlus::doDelete()
{
MYODBCDbgEnter();
Modified: trunk/SDK/MYSQLPlus/Library/MResultPlus.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultPlus.h 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/MResultPlus.h 2006-09-13 22:12:39 UTC (rev 543)
@@ -45,14 +45,12 @@
/* getters */
/* doers */
- SQLRETURN doPrepare( MCommand *pCommand );
- SQLRETURN doExecute();
SQLRETURN doAppend();
- SQLRETURN doClear();
+ SQLRETURN doCommit();
SQLRETURN doDelete();
+ SQLRETURN doExecute();
SQLRETURN doInsert();
- SQLRETURN doCommit();
- SQLRETURN doRefresh();
+ SQLRETURN doPrepare( MCommand *pCommand );
/*!
\name Catalog
Modified: trunk/SDK/MYSQLPlus/Library/MResultRes.cpp
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultRes.cpp 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/MResultRes.cpp 2006-09-13 22:12:39 UTC (rev 543)
@@ -14,7 +14,6 @@
pRes = NULL;
pCommand = NULL;
- setState( STATE_INITIALIZED );
MYODBCDbgReturn2();
}
@@ -60,64 +59,6 @@
}
/*!
- \brief Use this to get a column value.
-
- This will get the value of a cell in the result-set - for the current row.
-
- Getting the value in a QVariant defers some of the nuances of data conversion
to
- Qt including unicode strings and locales.
-
- Basically; we use QVariant as the hub in a spoke & hub solution to data
conversion.
-
- \param nColumn Desired column.
- \param variantData The column value is return here.
-
- \return SQLRETURN
-
- \sa doGetData
- doBindCol
- doRefresh
-*/
-SQLRETURN MResultRes::getData( SQLUSMALLINT nColumn, QVariant &variantData )
-{
- MYODBCDbgEnter();
-
- if ( getState() < STATE_EXECUTED )
- MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY010 ) );
-
- if ( !isValidRowSetRow() )
- MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("Invalid row.") ) );
-
- if ( !isValidColumn( nColumn ) )
- MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("Invalid column.") ) );
-
- /*!
- \internal MYSQLPlus RULE
-
- Keep it simple for now - use row number as bookmark.
- */
- if ( nColumn == 0 )
- variantData = getResultSetRow() - 1 + getRowSetRow() - 1;
- else
- {
- switch ( getBuffered() )
- {
- case BUFFERED_UNBUFFERED:
- case BUFFERED_MYSQL_CLIENT:
- variantData = listRows[ getRowSetRow() - 1 ][ nColumn - 1 ];
- break;
- case BUFFERED_MYSQL_PLUS:
- variantData = listRows[ getResultSetRow() - 1 + getRowSetRow() - 1 ][
nColumn - 1 ];
- break;
- default:
- MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("Invalid buffer type.") ) );
- }
- }
-
- MYODBCDbgReturn( SQL_SUCCESS );
-}
-
-/*!
\brief Use this to append a new, blank, row.
This will append a new blank row at the end of the RowSet and make it the
@@ -146,30 +87,6 @@
MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY000, 0,
tr("doAppend() not supported in this context") ) );
}
-/*!
- \brief Use this to reset the result-set to start state.
-
- This clears the result-set (if any) and the prepare (if any).
-
- \return SQLRETURN
-
- \sa doDelete
- doInsert
-*/
-SQLRETURN MResultRes::doClear()
-{
- MYODBCDbgEnter();
-
- if ( getState() > STATE_INITIALIZED )
- MYODBCDbgReturn( doStateRollBack( STATE_INITIALIZED ) );
-
- /* we failed to init in constructor */
- if ( getState() == STATE_UNINITIALIZED )
- MYODBCDbgReturn( getDiagnostic()->doAppend( MDiagnostic::DIA_HY001, 0,
tr("mysql_init() failed") ) );
-
- MYODBCDbgReturn( SQL_SUCCESS );
-}
-
SQLRETURN MResultRes::doCommit()
{
MYODBCDbgEnter();
Modified: trunk/SDK/MYSQLPlus/Library/MResultRes.h
===================================================================
--- trunk/SDK/MYSQLPlus/Library/MResultRes.h 2006-09-13 19:40:44 UTC (rev 542)
+++ trunk/SDK/MYSQLPlus/Library/MResultRes.h 2006-09-13 22:12:39 UTC (rev 543)
@@ -28,25 +28,21 @@
SQLRETURN setData( SQLUSMALLINT nColumn, const QVariant &variantData );
/* getters */
- SQLRETURN getData( SQLUSMALLINT nColumn, QVariant &variantData );
/* do'ers */
SQLRETURN doAppend();
- SQLRETURN doClear();
- SQLRETURN doCommit();
+ SQLRETURN doCommit();
SQLRETURN doDelete();
SQLRETURN doExecute();
+ SQLRETURN doFirst( BOOLEAN bRefresh = true );
+ SQLRETURN doGoto( qulonglong nRow, BOOLEAN bRefresh = true );
+ SQLRETURN doInsert();
+ SQLRETURN doLast( BOOLEAN bRefresh = true );
+ SQLRETURN doNext( BOOLEAN bRefresh = true );
SQLRETURN doPrepare( MCommand *pCommand );
- SQLRETURN doFirst();
+ SQLRETURN doPrev( BOOLEAN bRefresh = true );
+ SQLRETURN doSkip( qlonglong nRowSets, BOOLEAN bRefresh = true );
- SQLRETURN doInsert();
- SQLRETURN doLast();
- SQLRETURN doNext();
- SQLRETURN doPrev();
- SQLRETURN doSkip( qlonglong nRows );
- SQLRETURN doGoto( qulonglong nRow );
- SQLRETURN doRefresh();
-
protected:
/* doers */
@@ -57,25 +53,6 @@
MCommand * pCommand; /*!< the command we are supporting
*/
MYSQL_RES * pRes; /*!< current resultset as per
mysql_use_result() / mysql_store_result() */
- /*!
- \name listRows
-
- IF BUFFERED_UNBUFFERED THEN
- listRows contains RowSet only
- ELSE IF BUFFERED_MYSQL_CLIENT THEN
- listRows contains RowSet only but we can scroll backward and/or seek
- ELSE IF BUFFERED_MYSQL_PLUS THEN
- listRows is loaded, as needed, with entire ResultSet, we can
scroll/seek and data can be updated
- ENDIF
- */
- /*@{*/
-#if defined(_WIN32) && _MSC_VER < 1400
- QList<MResultRow> listRows;
-#else
- QList<QVector<QVariant>> listRows;
-#endif
- /*@}*/
-
/* setters */
/* getters */
| Thread |
|---|
| • Connector/ODBC 5 commit: r543 - trunk/SDK/MYSQLPlus/Library | pharvey | 14 Sep |