Jak Ustaw opcje kursora (ODBC)
Aby zestaw kursor opcje wywołania SQLSetStmtAttr do zestaw lub SQLGetStmtAttr uzyskać opcje instrukcja, które kontrolują zachowanie kursor.
Attribute |
Określa |
---|---|
SQL_ATTR_CURSOR_TYPE |
Typ kursora tylko do przodu, statyczny, dynamiczny lub napędzane zestawu kluczy |
SQL_ATTR_CONCURRENCY |
Współbieżności opcja formant tylko do odczytu, blokowania optymistycznego przy użyciu sygnatury czasowe lub optymistycznego przy użyciu wartości |
SQL_ATTR_ROW_ARRAY_SIZE |
Liczba wierszy pobieranych w każdego pobrania |
SQL_ATTR_CURSOR_SENSITIVITY |
Kursor lub nie Pokaż aktualizacje do wierszy kursor przez innych połączeń |
SQL_ATTR_CURSOR_SCROLLABLE |
Kursor, który może być przewijana 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 kursory.Aby korzystać z kursorów serwera, co najmniej jeden z tych atrybutów musi być zestaw na wartość inną niż domyślna i instrukcja wykonywany musi być pojedynczą instrukcję SELECT lub procedura składowana zawierającą pojedynczą instrukcję SELECT.Podczas korzystania z serwera kursory instrukcji SELECT nie można używać klauzul, które nie są obsługiwane przez serwer kursory: KOMPUTEROWE, COMPUTE BY, aby PRZEGLĄDAĆ i INTO.
Można kontrolować typ kursor używanego przez ustawienie SQL_ATTR_CURSOR_TYPE i SQL_ATTR_CONCURRENCY lub ustawiając SQL_ATTR_CURSOR_SENSITIVITY i SQL_ATTR_CURSOR_SCROLLABLE.Nie należy mieszać dwóch metod określania zachowania kursor.
Przykład
Poniższy przykładowy przydziela dojścia instrukcja, zestawy kursor dynamiczny wpisz optymistycznej współbieżność versioning wiersz, a następnie wykonuje SELECT.
retcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc1, &hstmt1);
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_TYPE, (SQLPOINTER)SQL_CURSOR_DYNAMIC, SQL_IS_INTEGER);
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CONCURRENCY, SQLPOINTER)SQL_CONCUR_ROWVER, SQL_IS_INTEGER);
retcode = SQLExecDirect(hstmt1, SELECT au_lname FROM authors", SQL_NTS);
Poniższy przykładowy przydziela dojścia instrukcja, ustawia przewijaną, wrażliwy kursor, 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, SQL_IS_INTEGER);
retcode = SQLSetStmtAttr(hstmt1, SQL_ATTR_CURSOR_SENSITIVITY, SQLPOINTER)SQL_INSENSITIVE, SQL_IS_INTEGER);
retcode = SQLExecDirect(hstmt1, select au_lname from authors", SQL_NTS);