SQLRETURN SQL_API SQLParamOptions(SQLHSTMT StatementHandle, SQLULEN RowNumber, SQLULEN *RowNumberPtr) { ODBCStmt *stmt = (ODBCStmt *) StatementHandle; RETCODE rc; #ifdef ODBCDEBUG ODBCLOG("SQLParamOptions %p " ULENFMT "\n", StatementHandle, ULENCAST RowNumber); #endif /* use mapping as described in ODBC 3 SDK Help file */ rc = MNDBSetStmtAttr(stmt, SQL_ATTR_PARAMSET_SIZE, (SQLPOINTER) (uintptr_t) RowNumber, 0); if (SQL_SUCCEEDED(rc)) { rc = MNDBSetStmtAttr(stmt, SQL_ATTR_PARAMS_PROCESSED_PTR, RowNumberPtr, 0); } return rc; }
SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLULEN ValuePtr) { ODBCStmt *stmt = (ODBCStmt *) StatementHandle; #ifdef ODBCDEBUG ODBCLOG("SQLSetStmtOption " PTRFMT " %s " ULENFMT "\n", PTRFMTCAST StatementHandle, translateStmtOption(Option), ULENCAST ValuePtr); #endif if (!isValidStmt(stmt)) return SQL_INVALID_HANDLE; clearStmtErrors(stmt); switch (Option) { /* only the ODBC 1.0 and ODBC 2.0 options */ case SQL_ROWSET_SIZE: Option = SQL_ATTR_ROW_ARRAY_SIZE; /* fall through */ case SQL_QUERY_TIMEOUT: case SQL_MAX_ROWS: case SQL_NOSCAN: case SQL_MAX_LENGTH: case SQL_ASYNC_ENABLE: case SQL_BIND_TYPE: case SQL_CURSOR_TYPE: case SQL_CONCURRENCY: case SQL_KEYSET_SIZE: case SQL_SIMULATE_CURSOR: case SQL_RETRIEVE_DATA: case SQL_USE_BOOKMARKS: /* use mapping as described in ODBC 3.0 SDK Help */ return MNDBSetStmtAttr(stmt, Option, (SQLPOINTER) (uintptr_t) ValuePtr, SQL_NTS); default: /* Invalid attribute/option identifier */ addStmtError(stmt, "HY092", NULL, 0); break; } return SQL_ERROR; }