summaryrefslogtreecommitdiff
path: root/ext/pdo_odbc/odbc_stmt.c
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2005-01-12 05:58:19 +0000
committerWez Furlong <wez@php.net>2005-01-12 05:58:19 +0000
commitb2fe67563698b4ab0b40743295ab19d0c7ed421d (patch)
tree8dd5a9802935f539e352efb9a80106e96b202845 /ext/pdo_odbc/odbc_stmt.c
parent459b4f85d36f50a54f8a12232fb2fd27cb1d01a9 (diff)
downloadphp-git-b2fe67563698b4ab0b40743295ab19d0c7ed421d.tar.gz
Support scrollable cursors
Diffstat (limited to 'ext/pdo_odbc/odbc_stmt.c')
-rwxr-xr-xext/pdo_odbc/odbc_stmt.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/ext/pdo_odbc/odbc_stmt.c b/ext/pdo_odbc/odbc_stmt.c
index 7c901ebef7..870efd1879 100755
--- a/ext/pdo_odbc/odbc_stmt.c
+++ b/ext/pdo_odbc/odbc_stmt.c
@@ -141,12 +141,25 @@ static int odbc_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *p
return 1;
}
-static int odbc_stmt_fetch(pdo_stmt_t *stmt TSRMLS_DC)
+static int odbc_stmt_fetch(pdo_stmt_t *stmt,
+ enum pdo_fetch_orientation ori, long offset TSRMLS_DC)
{
pdo_odbc_stmt *S = (pdo_odbc_stmt*)stmt->driver_data;
RETCODE rc;
-
+ SQLSMALLINT odbcori;
+#if 0
rc = SQLFetch(S->stmt);
+#else
+ switch (ori) {
+ case PDO_FETCH_ORI_NEXT: odbcori = SQL_FETCH_NEXT; break;
+ case PDO_FETCH_ORI_PRIOR: odbcori = SQL_FETCH_PRIOR; break;
+ case PDO_FETCH_ORI_FIRST: odbcori = SQL_FETCH_FIRST; break;
+ case PDO_FETCH_ORI_LAST: odbcori = SQL_FETCH_LAST; break;
+ case PDO_FETCH_ORI_ABS: odbcori = SQL_FETCH_ABSOLUTE; break;
+ case PDO_FETCH_ORI_REL: odbcori = SQL_FETCH_RELATIVE; break;
+ }
+ rc = SQLFetchScroll(S->stmt, odbcori, offset);
+#endif
if (rc == SQL_SUCCESS || rc == SQL_SUCCESS_WITH_INFO) {
return 1;