Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zgodność
Wprowadzona wersja: Zgodność z normami ODBC 3.0: ISO 92
Podsumowanie
SQLCloseCursor zamyka kursor, który został otwarty na wyrażeniu, i odrzuca oczekujące wyniki.
Syntax
SQLRETURN SQLCloseCursor(
SQLHSTMT StatementHandle);
Arguments
StatementHandle
[Dane wejściowe] Uchwyt instrukcji.
Zwroty
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR lub SQL_INVALID_HANDLE.
Diagnostyka
Gdy SQLCloseCursor zwraca SQL_ERROR lub SQL_SUCCESS_WITH_INFO, można uzyskać powiązaną wartość SQLSTATE, wywołując SQLGetDiagRec z HandleType SQL_HANDLE_STMT oraz HandleStatementHandle. Poniższa tabela przedstawia wartości SQLSTATE najczęściej zwracane przez SQLCloseCursor i wyjaśnia każdą z nich w kontekście tej funkcji; notacja "(DM)" poprzedza opisy stanów SQL zwracanych przez Menedżera Sterowników. Kod zwracany skojarzony z każdą wartością SQLSTATE jest SQL_ERROR, chyba że określono inaczej.
| SQLSTATE | Error | Description |
|---|---|---|
| 01000 | Ostrzeżenie ogólne | Komunikat informacyjny specyficzny dla sterownika. (Funkcja zwraca SQL_SUCCESS_WITH_INFO). |
| 24000 | Nieprawidłowy stan kursora | Na StatementHandle nie było otwartego kursora. (Zwraca się tylko przez ODBC 3. x driver.) |
| HY000 | Błąd ogólny | Wystąpił błąd, dla którego nie było określonego stanu SQLSTATE i dla którego nie zdefiniowano parametru SQLSTATE specyficznego dla implementacji. Komunikat o błędzie zwrócony przez element SQLGetDiagRec w buforze *MessageText opisuje błąd i jego przyczynę. |
| HY001 | Błąd alokacji pamięci | Sterownik nie może przydzielić pamięci wymaganej do obsługi wykonywania lub ukończenia funkcji. |
| HY010 | Błąd sekwencji funkcji | (DM) Funkcja wykonująca się asynchronicznie została wywołana dla uchwytu połączenia powiązanego z CommandHandle i nadal działała, gdy ta funkcja została wywołana. (DM) Funkcja wykonująca asynchronicznie została wywołana dla CommandHandle i nadal działała, gdy ta funkcja została wywołana. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations lub SQLSetPos został wywołany dla instrukcjiHandle i zwrócił SQL_NEED_DATA. Ta funkcja została wywołana przed wysłaniem danych dla wszystkich parametrów wykonywania danych lub kolumn. |
| HY013 | Błąd zarządzania pamięcią | Nie można przetworzyć wywołania funkcji, ponieważ nie można uzyskać dostępu do bazowych obiektów pamięci, prawdopodobnie z powodu niskich warunków pamięci. |
| HY117 | Połączenie jest zawieszone z powodu nieznanego stanu transakcji. Dozwolone są tylko funkcje rozłączania i tylko do odczytu. | (DM) Aby uzyskać więcej informacji na temat stanu wstrzymania, zobacz SQLEndTran, funkcja. |
| HYT01 | Upłynął limit czasu połączenia | Okres przekroczenia limitu czasu połączenia wygasł, zanim źródło danych odpowiedziało na żądanie. Limit czasu połączenia jest ustawiany za pomocą parametru SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. |
| IM001 | Sterownik nie obsługuje tej funkcji | (DM) Sterownik skojarzony z instrukcją StatementHandle nie obsługuje funkcji. |
Comments
SQLCloseCursor zwraca SQLSTATE 24000 (Nieprawidłowy stan kursora), jeśli żaden kursor nie jest otwarty. Wywołanie SQLCloseCursor jest równoważne wywołaniu SQLFreeStmt z opcją SQL_CLOSE, z tą różnicą, że SQLFreeStmt z SQL_CLOSE nie wpływa na aplikację, jeśli na instrukcji nie ma otwartego kursora, podczas gdy SQLCloseCursor zwraca SQLSTATE 24000 (Nieprawidłowy stan kursora).
Note
Jeśli ODBC 3. x aplikacja pracująca z ODBC 2. x sterownik wywołuje SQLCloseCursor , gdy żaden kursor nie jest otwarty, SQLSTATE 24000 (Nieprawidłowy stan kursora) nie jest zwracany, ponieważ Driver Manager mapuje SQLCloseCursor na SQLFreeStmt z SQL_CLOSE.
Więcej informacji można znaleźć w artykule Zamknięcie kursora.
Przykład kodu
Zobacz funkcje SQLBrowseConnect oraz funkcje SQLConnect.
Powiązane funkcje
| Aby uzyskać informacje o | Zobacz |
|---|---|
| Anulowanie przetwarzania instrukcji | SQLCancel, funkcja |
| Uwalnianie uchwytu | Funkcja SQLFreeHandle |
| Przetwarzanie wielu zestawów wyników | Funkcja SQLMoreResults |