문 전환
ODBC 문에는 다음과 같은 상태가 있습니다.
시 | 설명 |
---|---|
S0 | 할당되지 않은 문입니다. 연결 상태는 C4, C5 또는 C6이어야 합니다. 자세한 내용은 연결 전환을 참조 하세요.) |
S1 | 할당된 문입니다. |
S2 | 준비된 문입니다. 결과 집합이 만들어지지 않습니다. |
S3 | 준비된 문입니다. (비어 있을 수 있음) 결과 집합이 만들어집니다. |
S4 | 문이 실행되었고 결과 집합이 만들어지지 않았습니다. |
S5 | 문이 실행되고(비어 있을 수 있음) 결과 집합이 생성되었습니다. 커서가 열려 있고 결과 집합의 첫 번째 행 앞에 배치됩니다. |
S6 | SQLFetch 또는 SQLFetchScroll을 사용하여 배치된 커서입니다. |
S7 | SQLExtendedFetch를 사용하여 커서를 배치합니다. |
S8 | 함수에는 데이터가 필요합니다. SQLParamData 가 호출되지 않았습니다. |
S9 | 함수에는 데이터가 필요합니다. SQLPutData 가 호출되지 않았습니다. |
S10 | 함수에는 데이터가 필요합니다. SQLPutData 가 호출되었습니다. |
S11 | 여전히 실행 중입니다. 비동기적으로 실행되는 함수가 SQL_STILL_EXECUTING 반환한 후 문이 이 상태로 남습니다. 문 핸들을 허용하는 함수가 실행되는 동안 문이 일시적으로 이 상태에 있습니다. 상태 S11의 임시 거주는 SQLCancel에 대한 상태 테이블을 제외한 모든 상태 테이블에 표시되지 않습니다. 문이 일시적으로 상태 S11에 있는 동안 다른 스레드에서 SQLCancel을 호출하여 함수를 취소할 수 있습니다. |
S12 | 비동기 실행이 취소되었습니다. S12에서 애플리케이션은 SQL_STILL_EXECUTING 이외의 값을 반환할 때까지 취소된 함수를 호출해야 합니다. 함수가 SQL_ERROR 및 SQLSTATE HY008(작업이 취소됨)을 반환하는 경우에만 함수가 성공적으로 취소되었습니다. SQL_SUCCESS 같은 다른 값을 반환하는 경우 취소 작업이 실패하고 함수가 정상적으로 실행됩니다. |
상태 S2 및 S3은 준비된 상태라고 하며, S5~S7을 커서 상태로, S8~S10을 필요한 데이터 상태로, S11 및 S12를 비동기 상태로 표시합니다. 이러한 각 그룹에서 전환은 그룹의 각 상태에 대해 서로 다른 경우에만 개별적으로 표시됩니다. 대부분의 경우 각 그룹의 각 상태에 대한 전환은 동일합니다.
다음 표에서는 각 ODBC 함수가 문 상태에 미치는 영향을 보여 줍니다.
SQLAllocHandle
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1], [5], [6] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
--[2], [5] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
S1[3] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
--[4], [5] | --[5] | --[5] | --[5] | --[5] | --[5] | --[5] |
[1] 이 행은 HandleType이 SQL_HANDLE_ENV 때 전환을 표시합니다.
[2] 이 행은 HandleType이 SQL_HANDLE_DBC 때 전환을 표시합니다.
[3] 이 행은 HandleType이 SQL_HANDLE_STMT 때 전환을 표시합니다.
[4] 이 행은 HandleType이 SQL_HANDLE_DESC 때 전환을 표시합니다.
[5] OutputHandlePtr을 사용하여 SQLAllocHandle을 호출하면 해당 핸들에 대한 이전 내용과 관계없이 처리되는 유효한 핸들 덮어쓰기가 덮어쓰여지고 ODBC 드라이버에 문제가 발생할 수 있습니다. 다시 할당하기 전에 핸들을 해제하기 위해 SQLFreeHandle을 호출하지 않고 *OutputHandlePtr에 대해 정의된 동일한 애플리케이션 변수로 SQLAllocHandle을 두 번 호출하는 것은 잘못된 ODBC 애플리케이션 프로그래밍입니다. 이러한 방식으로 ODBC 핸들을 덮어쓰면 ODBC 드라이버에서 일관되지 않은 동작 또는 오류가 발생할 수 있습니다.
Sqlbindcol
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLBindParameter
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLBrowseConnect, SQLConnect 및 SQLDriverConnect
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
08002 | 08002 | 08002 | 08002 | 08002 | 08002 | 08002 |
SQLBulkOperations
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | 다음 표 참조 | HY010 | NS [c] HY010 o |
SQLBulkOperations(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
-- [s] S8 [d] S11 [x] | -- [s] S8 [d] S11 [x] | HY010 |
SQLCancel
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | S1[1] S2 [nr] 및 [2] S3 [r]과 [2] S5[3] 및 [5] S6([3] 또는 [4]) 및 [6] S7[4] 및 [7] | 다음 표 참조 |
[1] SQLExecDirect가 SQL_NEED_DATA 반환했습니다 .
[2] SQLExecute 가 SQL_NEED_DATA 반환했습니다.
[3] SQLBulkOperations가 SQL_NEED_DATA 반환했습니다 .
[4] SQLSetPos가 SQL_NEED_DATA 반환했습니다 .
[5] SQLFetch, SQLFetchScroll 또는 SQLExtendedFetch 가 호출되지 않았습니다.
[6] SQLFetch 또는 SQLFetchScroll 이 호출되었습니다.
[7] SQLExtendedFetch 가 호출되었습니다.
SQLCancel(비동기 상태)
S11 계속 실행 중 |
S12 비동기 취소됨 |
---|---|
NS[1] S12[2] | S12 |
[1] 함수가 실행되는 동안 문이 일시적으로 S11 상태였습니다. SQLCancel 은 다른 스레드에서 호출되었습니다.
[2] 비동기적으로 호출된 함수가 SQL_STILL_EXECUTING 반환되었기 때문에 문이 S11 상태였습니다.
SQLCloseCursor
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | 24000 | 24000 | 24000 | S1 [np] S3 [p] | HY010 | HY010 |
SQLColAttribute
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | 다음 표 참조 | 24000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLColAttribute(준비된 상태)
S2 결과 없음 |
S3 결과 |
---|---|
--[1] 07005[2] | -- [s] S11 x |
[1] FieldIdentifier 가 SQL_DESC_COUNT.
[2] FieldIdentifier 가 SQL_DESC_COUNT 않았습니다.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges 및 SQLTables
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S5 [s] S11 [x] | S1 [e] S5 [s] S11 [x] | S1 [e] 및 [1] S5 [s] 및 [1] S11 [x] 및 [1] 24000[2] | 다음 표 참조 | HY010 | NS [c] HY010 o |
[1] 현재 결과가 마지막 또는 유일한 결과이거나 현재 결과가 없습니다. 여러 결과에 대한 자세한 내용은 여러 결과를 참조하세요.
[2] 현재 결과가 마지막 결과가 아닙니다.
SQLColumnPrivileges, SQLColumns, SQLForeignKeys, SQLGetTypeInfo, SQLPrimaryKeys, SQLProcedureColumns, SQLProcedures, SQLSpecialColumns, SQLStatistics, SQLTablePrivileges 및 SQLTables(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | 24000[1] | 24000 |
[1] SQLFetch 또는 SQLFetchScroll이 SQL_NO_DATA 반환하지 않고 SQLFetch 또는 SQLFetchScroll이 SQL_NO_DATA 반환한 경우 드라이버에서 이 오류가 반환됩니다.
SQLCopyDesc
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | NS [c] 및 [3] HY010 [o] 또는 [4] |
IH[2] | HY010 | 다음 표 참조 | 24000 | -- [s] S11 x | HY010 | NS [c] 및 [3] HY010 [o] 또는 [4] |
[1] SourceDescHandle 인수가 ARD, APD 또는 IPD인 경우 이 행은 전환을 표시합니다.
[2] SourceDescHandle 인수가 IRD인 경우 이 행은 전환을 표시합니다.
[3] SourceDescHandle 및 TargetDescHandle 인수는 비동기적으로 실행되는 SQLCopyDesc 함수와 동일합니다.
[4] SourceDescHandle 인수 또는 TargetDescHandle 인수(또는 둘 다)가 비동기적으로 실행되는 SQLCopyDesc 함수와 다릅니다.
SQLCopyDesc(준비된 상태)
S2 결과 없음 |
S3 결과 |
---|---|
24000[1] | -- [s] S11 [x] |
[1] 이 행은 SourceDescHandle 인수가 IRD인 경우의 전환을 보여 줍니다.
SQLDataSources 및 SQLDrivers
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLDescribeCol
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | 다음 표 참조 | 24000 | -- [s] S11 [x] | HY010 | NS [c] HY010 o |
SQLDescribeCol(준비된 상태)
S2 결과 없음 |
S3 결과 |
---|---|
07005 | -- [s] S11 [x] |
SQLDescribeParam
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | HY010 | HY010 | HY010 | NS [c] HY010 [o] |
SQLDisconnect
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | S0[1] | S0[1] | S0[1] | S0[1] | (HY010) | (HY010) |
[1] SQLDisconnect를 호출하면 연결과 연결된 모든 문이 해제됩니다. 또한 C2에 대한 연결 상태를 반환합니다. 문 상태가 S0이 되기 전에 연결 상태는 C4여야 합니다.
SQLEndTran
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | --[2] 또는 [3] S1[1] | --[3] S1 [np] 및 ([1] 또는 [2]) S1 [p] 및 [1] S2 [p] 및 [2] | --[3] S1 [np] 및 ([1] 또는 [2]) S1 [p] 및 [1] S3 [p] 및 [2] | (HY010) | (HY010) |
[1] CompletionType 인수가 SQL_COMMIT SQLGetInfo 는 SQL_CURSOR_COMMIT_BEHAVIOR 정보 형식에 대한 SQL_CB_DELETE 반환하거나 CompletionType 인수가 SQL_ROLLBACK SQLGetInfo는 SQL_CURSOR_ROLLBACK_BEHAVIOR 정보 형식에 대한 SQL_CB_DELETE 반환합니다.
[2] CompletionType 인수가 SQL_COMMIT SQLGetInfo 는 SQL_CURSOR_COMMIT_BEHAVIOR 정보 형식에 대한 SQL_CB_CLOSE 반환하거나 CompletionType 인수가 SQL_ROLLBACK SQLGetInfo는 SQL_CURSOR_ROLLBACK_BEHAVIOR 정보 형식에 대한 SQL_CB_CLOSE 반환합니다.
[3] CompletionType 인수가 SQL_COMMIT SQLGetInfo 는 SQL_CURSOR_COMMIT_BEHAVIOR 정보 형식에 대한 SQL_CB_PRESERVE 반환하거나 CompletionType 인수가 SQL_ROLLBACK SQLGetInfo는 SQL_CURSOR_ROLLBACK_BEHAVIOR 정보 형식에 대한 SQL_CB_PRESERVE 반환합니다.
SQLExecDirect
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S4 [s] 및 [nr] S5 [s] 및 [r] S8 [d] S11 [x] | -- [e] 및 [1] S1 [e] 및 [2] S4 [s] 및 [nr] S5 [s] 및 [r] S8 [d] S11 [x] | -- [e], [1] 및 [3] S1 [e], [2] 및 [3] S4 [s], [nr] 및 [3] S5 [s], [r] 및 [3] S8 [d] 및 [3] S11 [x] 및 [3] 24000 [4] | 다음 표 참조 | HY010 | NS [c] HY010 [o] |
[1] 드라이버 관리자가 오류를 반환했습니다.
[2] 드라이버 관리자가 오류를 반환하지 않았습니다.
[3] 현재 결과가 마지막 또는 유일한 결과이거나 현재 결과가 없습니다. 여러 결과에 대한 자세한 내용은 여러 결과를 참조하세요.
[4] 현재 결과가 마지막 결과가 아닙니다.
SQLExecDirect(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | 24000 [1] | 24000 |
[1] SQLFetch 또는 SQLFetchScroll이 SQL_NO_DATA 반환하지 않고 SQLFetch 또는 SQLFetchScroll이 SQL_NO_DATA 반환한 경우 드라이버 관리자가 이 오류를 반환합니다.
SQLExecute
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | (HY010) | 다음 표 참조 | S2 [e], p 및 [1] S4 [s], [p], [nr] 및 [1] S5 [s], [p], [r] 및 [1] S8 [d], [p] 및 [1] S11 [x], [p] 및 [1] 24000 [p] 및 [2] HY010 [np] | 커서 상태 테이블 참조 | HY010 | NS [c] HY010 [o] |
[1] 현재 결과가 마지막 또는 유일한 결과이거나 현재 결과가 없습니다. 여러 결과에 대한 자세한 내용은 여러 결과를 참조하세요.
[2] 현재 결과가 마지막 결과가 아닙니다.
SQLExecute(준비된 상태)
S2 결과 없음 |
S3 결과 |
---|---|
S4 [s] S8 [d] S11 [x] | S5 [s] S8 [d] S11 [x] |
SQLExecute(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 [p] HY010 [np] | 24000 [p], [1] HY010 [np] | 24000 [p] HY010 [np] |
[1] SQLFetch 또는 SQLFetchScroll이 SQL_NO_DATA 반환하지 않고 SQLFetch 또는 SQLFetchScroll이 SQL_NO_DATA 반환한 경우 드라이버 관리자가 이 오류를 반환합니다.
SQLExtendedFetch
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | S1010 | S1010 | 24000 | 다음 표 참조 | S1010 | NS [c] S1010 [o] |
SQLExtendedFetch(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
S7 [s] 또는 [nf] S11 [x] | S1010 | -- [s] 또는 [nf] S11 [x] |
SQLFetch 및 SQLFetchScroll
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | 다음 표 참조 | HY010 | NS [c] HY010 [o] |
SQLFetch 및 SQLFetchScroll(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
S6 [s] 또는 [nf] S11 [x] | -- [s] 또는 [nf] S11 [x] | HY010 |
SQLFreeHandle
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- [1] | HY010 | HY010 | HY010 | HY010 | HY010 | HY010 |
IH [2] | S0 | S0 | S0 | S0 | HY010 | HY010 |
-- [3] | -- | -- | -- | -- | -- | -- |
[1] 이 행은 HandleType이 SQL_HANDLE_ENV 또는 SQL_HANDLE_DBC 때 전환을 표시합니다.
[2] 이 행은 HandleType이 SQL_HANDLE_STMT 때 전환을 표시합니다.
[3] 이 행은 HandleType이 SQL_HANDLE_DESC 설명자가 명시적으로 할당되었을 때의 전환을 보여 줍니다.
SQLFreeStmt
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH [1] | -- | -- | S1 [np] S2 [p] | S1 [np] S3 [p] | HY010 | HY010 |
IH [2] | -- | -- | -- | -- | HY010 | HY010 |
[1] 이 행은 Option이 SQL_CLOSE 때 전환을 표시합니다.
[2] 이 행은 Option이 SQL_UNBIND 또는 SQL_RESET_PARAMS 때 전환을 표시합니다. Option 인수가 SQL_DROP 기본 드라이버가 ODBC 3*.x* 드라이버인 경우 드라이버 관리자는 이를 handleType이 SQL_HANDLE_STMT 설정하여 SQLFreeHandle호출에 매핑합니다. 자세한 내용은 SQLFreeHandle에 대한 전환 테이블을 참조하세요.
SQLGetConnectAttr
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetCursorName
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | -- | -- | HY010 | HY010 |
SQLGetData
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | 다음 표 참조 | HY010 | NS [c] HY010 [o] |
SQLGetData(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | -- [s] 또는 [nf] S11 [x] 24000 [b] HY109 [i] | -- [s] 또는 [nf] S11 [x] 24000 [b] HY109 [i] |
SQLGetDescField 및 SQLGetDescRec
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- [1] 또는 [2] HY010 [3] | 다음 표 참조 | -- [1] 또는 [2] 24000 [3] | -- [1], [2] 또는 [3] S11 [3] 및 [x] | HY010 | NS [c] 또는 [4] HY010 [o] 및 [5] |
[1] DescriptorHandle 인수가 APD 또는 ARD였습니다.
[2] DescriptorHandle 인수가 IPD였습니다.
[3] DescriptorHandle 인수가 IRD였습니다.
[4] DescriptorHandle 인수는 비동기적으로 실행되는 SQLGetDescField 또는 SQLGetDescRec 함수의 DescriptorHandle 인수와 동일합니다.
[5] DescriptorHandle 인수가 비동기적으로 실행되는 SQLGetDescField 또는 SQLGetDescRec 함수의 DescriptorHandle 인수와 다릅니다.
SQLGetDescField 및 SQLGetDescRec(준비된 상태)
S2 결과 없음 |
S3 결과 |
---|---|
--[1], [2] 또는 [3] S11[2] 및 [x] | --[1], [2] 또는 [3] S11 [x] |
[1] DescriptorHandle 인수가 APD 또는 ARD였습니다.
[2] DescriptorHandle 인수가 IPD였습니다.
[3] DescriptorHandle 인수가 IRD였습니다. DescriptorHandle이 IRD인 경우 이러한 함수는 항상 S2 상태에서 SQL_NO_DATA 반환합니다.
SQLGetDiagField 및 SQLGetDiagRec
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | -- | -- | -- |
IH[2] | --[3] | --[3] | -- | -- | --[3] | --[3] |
[1] 이 행은 HandleType이 SQL_HANDLE_ENV, SQL_HANDLE_DBC 또는 SQL_HANDLE_DESC 전환이 표시됩니다.
[2] 이 행은 HandleType이 SQL_HANDLE_STMT 때 전환을 표시합니다.
[3] DiagIdentifier가 SQL_DIAG_ROW_COUNT 때 SQLGetDiagField는 항상 이 상태에서 오류를 반환합니다.
SQLGetEnvAttr
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetFunctions
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
Sqlgetinfo
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLGetStmtAttr
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | --[1] 24000[2] | --[1] 24000[2] | --[1] 24000[2] | 다음 표 참조 | HY010 | HY010 |
[1] 문 특성이 SQL_ATTR_ROW_NUMBER 않았습니다.
[2] 문 특성이 SQL_ATTR_ROW_NUMBER.
SQLGetStmtAttr(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
--[1] 24000[2] | --[1] 또는 ([v] 및 [2]) 24000 [b] 및 [2] HY109 [i] 및 [2] | -- [i] 또는 ([v] 및 [2]) 24000 [b] 및 [2] HY109[1] 및 [2] |
[1] 특성 인수가 SQL_ATTR_ROW_NUMBER 않았습니다.
[2] 특성 인수가 SQL_ATTR_ROW_NUMBER.
SQLMoreResults
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | --[1] | --[1] | -- [s] 및 [2] S1 [nf], [np] 및 [4] S2 [nf], [p] 및 [4] S5 [s] 및 [3] S11 [x] | S1 [nf], [np] 및 [4] S3 [nf], [p] 및 [4] S4 [s] 및 [2] S5 [s] 및 [3] S11 [x] | HY010 | NS [c] HY010 [o] |
[1] 함수는 항상 이 상태의 SQL_NO_DATA 반환합니다.
[2] 다음 결과는 행 수입니다.
[3] 다음 결과는 결과 집합입니다.
[4] 현재 결과가 마지막 결과입니다.
SQLNativeSql
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- | -- |
SQLNumParams
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLNumResultCols
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | -- [s] S11 [x] | -- [s] S11 [x] | -- [s] S11 [x] | HY010 | NS [c] HY010 [o] |
SQLParamData
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | HY010 | HY010 | 다음 표 참조 | NS [c] HY010 [o] |
SQLParamData(데이터 상태 필요)
S8 데이터 필요 |
S9 반드시 넣어야 합니다. |
S10 넣을 수 있습니다. |
---|---|---|
S1 [e] 및 [1] S2 [e], [nr], [2] S3 [e], [r] 및 [2] S5 [e] 및 [4] S6 [e] 및 [5] S7 [e] 및 [3] S9 [d] S11 [x] | HY010 | S1 [e] 및 [1] S2 [e], [nr] 및 [2] S3 [e], [r] 및 [2] S4 [s], [nr], ([1] 또는 [2]) S5 [s], [r], 및 ([1] 또는 [2]) S5 ([s] 또는 [e]) 및 [4] S6 ([s] 또는 [e]) 및 [5] S7 ([s] 또는 [e]) 및 [3] S9 [d] S11 [x] |
[1] SQLExecDirect가 SQL_NEED_DATA 반환했습니다 .
[2] SQLExecute 가 SQL_NEED_DATA 반환했습니다.
[3] SQLSetPos 가 상태 S7에서 호출되고 SQL_NEED_DATA 반환되었습니다.
[4] SQLBulkOperations 가 상태 S5에서 호출되고 SQL_NEED_DATA 반환되었습니다.
[5] SQLSetPos 또는 SQLBulkOperations 가 상태 S6에서 호출되고 SQL_NEED_DATA 반환되었습니다.
SQLPrepare
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | S2 [s] 및 [nr] S3 [s] 및 [r] S11 [x] | -- [s] 또는 ([e] 및 [1]) S1 [e] 및 [2] S11 [x] | S1 [e] 및 [3] S2 [s], [nr] 및 [3] S3 [s], [r] 및 [3] S11 [x] 및 [3] 24000[4] | 다음 표 참조 | HY010 | NS [c] HY010 [o] |
[1] 문의 유효성 검사 이외의 이유로 준비에 실패합니다(SQLSTATE가 HY009 [잘못된 인수 값] 또는 HY090 [잘못된 문자열 또는 버퍼 길이]였습니다).
[2] 문의 유효성을 검사하는 동안 준비에 실패합니다(SQLSTATE가 HY009 [잘못된 인수 값] 또는 HY090 [잘못된 문자열 또는 버퍼 길이]가 아님).
[3] 현재 결과가 마지막 또는 유일한 결과이거나 현재 결과가 없습니다. 여러 결과에 대한 자세한 내용은 여러 결과를 참조하세요.
[4] 현재 결과가 마지막 결과가 아닙니다.
SQLPrepare(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | 24000 | 24000 |
SQLPutData
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | HY010 | HY010 | 다음 표 참조 | NS [c] HY010 [o] |
SQLPutData(데이터 상태 필요)
S8 데이터 필요 |
S9 반드시 넣어야 합니다. |
S10 넣을 수 있습니다. |
---|---|---|
HY010 | S1 [e] 및 [1] S2 [e], [nr], [2] S3 [e], [r] 및 [2] S5 [e] 및 [4] S6 [e] 및 [5] S7 [e] 및 [3] S10 [s] S11 [x] | -- [s] S1 [e] 및 [1] S2 [e], [nr], [2] S3 [e], [r] 및 [2] S5 [e] 및 [4] S6 [e] 및 [5] S7 [e] 및 [3] S11 [x] HY011[6] |
[1] SQLExecDirect가 SQL_NEED_DATA 반환했습니다 .
[2] SQLExecute 가 SQL_NEED_DATA 반환했습니다.
[3] SQLSetPos 가 상태 S7에서 호출되고 SQL_NEED_DATA 반환되었습니다.
[4] SQLBulkOperations 가 상태 S5에서 호출되고 SQL_NEED_DATA 반환되었습니다.
[5] SQLSetPos 또는 SQLBulkOperations 가 상태 S6에서 호출되고 SQL_NEED_DATA 반환되었습니다.
[6] SQL_SUCCESS 반환된 단일 매개 변수에 대해 SQLPutData를 하나 이상 호출한 다음 StrLen_or_Ind SQL_NULL_DATA 설정된 동일한 매개 변수에 대해 SQLPutData를 호출했습니다.
SQLRowCount
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
(IH) | (HY010) | (HY010) | -- | -- | (HY010) | (HY010) |
SQLSetConnectAttr
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
--[1] | -- | -- | -- | --[2] 24000[3] | HY010 | HY010 |
[1] 이 행은 특성이 연결 특성일 때의 전환을 보여 줍니다. Attribute가 문 특성일 때의 전환은 SQLSetStmtAttr에 대한 문 전환 테이블을 참조하세요.
[2] 특성 인수가 SQL_ATTR_CURRENT_CATALOG 않았습니다.
[3] 특성 인수가 SQL_ATTR_CURRENT_CATALOG.
SQLSetCursorName
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | -- | 24000 | 24000 | HY010 | HY010 |
SQLSetDescField 및 SQLSetDescRec
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH[1] | -- | -- | -- | -- | HY010 | HY010 |
[1] 이 행은 FieldIdentifier 인수가 SQL_DESC_ARRAY_STATUS_PTR 또는 SQL_DESC_ROWS_PROCESSED_PTR 때 DescriptorHandle 인수가 ARD, APD, IPD 또는 (SQLSetDescField의 경우) IRD인 전환을 보여 줍니다. FieldIdentifier가 다른 값인 경우 IRD에 대해 SQLSetDescField를 호출하는 것은 오류입니다.
SQLSetEnvAttr
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
HY011 | HY011 | HY011 | HY011 | Y011 | HY01 | HY011 |
SQLSetPos
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | HY010 | HY010 | 24000 | 다음 표 참조 | HY010 | NS [c] HY010 [o] |
SQLSetPos(커서 상태)
S5 시작됨 |
S6 SQLFetch 또는 SQLFetchScroll |
S7 SQLExtendedFetch |
---|---|---|
24000 | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] | -- [s] S8 [d] S11 [x] 24000 [b] HY109 [i] |
SQLSetStmtAttr
S0 할당되지 않음 |
S1 Allocated |
S2-S3 준비된 |
S4 실행 |
S5-S7 커서 |
S8-S10 데이터 필요 |
S11-S12 Async |
---|---|---|---|---|---|---|
IH | -- | --[1] HY011[2] | --[1] 24000[2] | --[1] 24000[2] | HY010 [np] 또는 [1] HY011 [p] 및 [2] | HY010 [np] 또는 [1] HY011 [p] 및 [2] |
[1] 특성 인수가 SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE 또는 SQL_ATTR_CURSOR_SENSITIVITY 아닙니다.
[2] 특성 인수가 SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, SQL_ATTR_USE_BOOKMARKS, SQL_ATTR_CURSOR_SCROLLABLE 또는 SQL_ATTR_CURSOR_SENSITIVITY.