Jak Ustawianie opcji kursorów (ODBC)
Aby zestaw Call opcje kursora SQLSetStmtAttr Aby zestaw lub SQLGetStmtAttr Aby uzyskać odpowiednie opcje instrukcja sterowania zachowaniem się kursor.
Attribute |
Określa |
|---|---|
SQL_ATTR_CURSOR_TYPE |
Typ kursor tylko przesyłanie dalej, statyczny, dynamiczne lub opartej na zestaw kluczy |
SQL_ATTR_CONCURRENCY |
Współbieżność formant opcji tylko do odczytu, blokowania optymistycznego przy użyciu sygnatur czasowych lub optymistycznej przy użyciu wartości |
SQL_ATTR_ROW_ARRAY_SIZE |
Liczba wierszy pobieranych w każdej pobrania |
SQL_ATTR_CURSOR_SENSITIVITY |
Kursor jest lub nie pokazuje aktualizacje dokonane przez innych połączeń wierszy kursora |
SQL_ATTR_CURSOR_SCROLLABLE |
Kursor, które mogą być przewijane do przodu i Wstecz |
Domyślne wartości tych atrybutów (rozmiar zestawu zestaw wierszy tylko do przodu, tylko do odczytu, 1) nie używają serwera kursorów.Aby za pomocą serwera kursory, co najmniej jeden z tych atrybutów musi być ustawiona na wartość inną niż domyślna, a instrukcja wykonywany musi być pojedynczej instrukcji SELECT lub procedura przechowywana zawierającą pojedynczą instrukcją SELECT.W przypadku korzystania z serwera kursory, instrukcji SELECT, nie można używać klauzule, nie obsługiwana przez serwer kursorów: COMPUTE, COMPUTE BY, FOR BROWSE i INTO.
Można określić typ używany przez ustawienie SQL_ATTR_CURSOR_TYPE i SQL_ATTR_CONCURRENCY lub przez ustawienie SQL_ATTR_CURSOR_SENSITIVITY i SQL_ATTR_CURSOR_SCROLLABLE kursor.Nie należy mieszać dwie metody określania zachowania kursor.
Example
Poniższy przykład przydziela dojścia instrukcja, ustawia typ kursor dynamicznych z wiersza wersji optymistycznej współbieżność, a następnie wykonuje SELECT.
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER)SQL_CURSOR_DYNAMIC, _IS_INTEGER);
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CONCURRENCY, SQLPOINTER)SQL_CONCUR_ROWVER, _IS_INTEGER);
retcode = SQLExecDirect(hstmt1, SELECT au_lname FROM authors", SQL_NTS);
Poniższy przykład przydziela dojścia instrukcja, ustawia kursor przewijaną, wielkość liter, a następnie wykonuje SELECT
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);
// Set the cursor options and execute the statement.
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_SCROLLABLE, SQLPOINTER)SQL_SCROLLABLE, _IS_INTEGER);
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_SENSITIVITY, SQLPOINTER)SQL_INSENSITIVE, _IS_INTEGER);
retcode = SQLExecDirect(hstmt1, select au_lname from authors", SQL_NTS);
See Also