summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBill King <bking@trolltech.com>2009-09-17 03:15:40 (GMT)
committerJason McDonald <jason.mcdonald@nokia.com>2009-09-21 04:40:34 (GMT)
commit0b8c1e5e79ec34f6f43a74b48b69252c6631de45 (patch)
treee47f0395b0758936b29f0de9cab40a148b74364c /src
parent7ac647db42a43c30f30df7a371fe998bea2febbc (diff)
downloadQt-0b8c1e5e79ec34f6f43a74b48b69252c6631de45.zip
Qt-0b8c1e5e79ec34f6f43a74b48b69252c6631de45.tar.gz
Qt-0b8c1e5e79ec34f6f43a74b48b69252c6631de45.tar.bz2
Fixes issue of forward only datasets failing when not set so.
Previously you had to set forward only on non-scrollable datasets explicitly. This queries ODBC, to determine if it's a scrollable dataset, and sets forwardOnly to false if it isn't. Task-number: QT-353 Reviewed-by: Justin McPherson (cherry picked from commit 18c0fec3afba909faa341c766f31d679892021db)
Diffstat (limited to 'src')
-rw-r--r--src/sql/drivers/odbc/qsql_odbc.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp
index 76e4231..a6abd5c 100644
--- a/src/sql/drivers/odbc/qsql_odbc.cpp
+++ b/src/sql/drivers/odbc/qsql_odbc.cpp
@@ -781,6 +781,11 @@ bool QODBCResult::reset (const QString& query)
return false;
}
+ SQLINTEGER isScrollable, bufferLength;
+ r = SQLGetStmtAttr(d->hStmt, SQL_ATTR_CURSOR_SCROLLABLE, &isScrollable, SQL_IS_INTEGER, &bufferLength);
+ if(r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
+ setForwardOnly(isScrollable==SQL_NONSCROLLABLE);
+
SQLSMALLINT count;
SQLNumResultCols(d->hStmt, &count);
if (count) {
@@ -1407,6 +1412,11 @@ bool QODBCResult::exec()
return false;
}
+ SQLINTEGER isScrollable, bufferLength;
+ r = SQLGetStmtAttr(d->hStmt, SQL_ATTR_CURSOR_SCROLLABLE, &isScrollable, SQL_IS_INTEGER, &bufferLength);
+ if(r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO)
+ setForwardOnly(isScrollable==SQL_NONSCROLLABLE);
+
SQLSMALLINT count;
SQLNumResultCols(d->hStmt, &count);
if (count) {