커서 특성 및 커서 유형
애플리케이션은 커서 형식(정방향 전용, 정적, 키 집합 기반 또는 동적)을 지정하는 대신 커서의 특성을 지정할 수 있습니다. 이를 위해 애플리케이션은 문 핸들에서 커서를 열기 전에 커서의 스크롤 가능성(SQL_ATTR_CURSOR_SCROLLABLE 문 특성을 설정하여)과 민감도(SQL_ATTR_CURSOR_SENSITIVITY 문 특성을 설정)를 선택합니다. 그런 다음 드라이버는 애플리케이션이 요청한 특성을 가장 효율적으로 제공하는 커서 유형을 선택합니다.
애플리케이션이 문 특성 SQL_ATTR_CONCURRENCY, SQL_ATTR_CURSOR_SCROLLABLE, SQL_ATTR_CURSOR_SENSITIVITY 또는 SQL_ATTR_CURSOR_TYPE 설정할 때마다 드라이버는 값이 일관성을 기본 있도록 이 네 가지 특성 집합의 다른 문 특성을 변경해야 합니다. 따라서 애플리케이션에서 커서 특성을 지정하면 드라이버는 이 암시적 선택에 따라 커서 유형을 나타내는 특성을 변경할 수 있습니다. 애플리케이션이 형식을 지정하면 드라이버는 선택한 형식의 특성과 일치하도록 다른 특성을 변경할 수 있습니다. 이러한 문 특성에 대한 자세한 내용은 SQLSetStmtAttr 함수 설명을 참조하세요.
커서 유형과 커서 특성을 모두 지정하도록 문 특성을 설정하는 애플리케이션은 애플리케이션의 요구 사항을 충족하는 드라이버에서 사용할 수 있는 가장 효율적인 방법이 아닌 커서를 가져올 위험이 있습니다.
문 특성의 암시적 설정은 다음 규칙을 따라야 한다는 점을 제외하고 드라이버 정의입니다.
앞으로만 사용할 수 있는 커서는 스크롤할 수 없습니다. SQLSetStmtAttr에서 SQL_ATTR_CURSOR_SCROLLABLE 정의를 참조하세요.
민감하지 않은 커서는 절대로 호환되지 않습니다(따라서 동시성은 읽기 전용임). ISO SQL 표준의 구분되지 않는 커서 정의에 기반합니다.
따라서 다음 표에 설명된 경우 문 특성의 암시적 설정이 발생합니다.
애플리케이션에서 특성을 로 설정합니다. | 암시적으로 설정된 다른 특성 |
---|---|
SQL_ATTR_CONCURRENCY to SQL_CONCUR_READ_ONLY | SQL_INSENSITIVE SQL_ATTR_CURSOR_SENSITIVITY. |
SQL_CONCUR_LOCK, SQL_CONCUR_ROWVER 또는 SQL_CONCUR_VALUES SQL_ATTR_CONCURRENCY | 드라이버에서 정의한 대로 SQL_UNSPECIFIED 또는 SQL_SENSITIVE SQL_ATTR_CURSOR_SENSITIVITY. 구분되지 않는 커서는 항상 읽기 전용이므로 SQL_INSENSITIVE 설정할 수 없습니다. |
SQL_ATTR_CURSOR_SCROLLABLE to SQL_NONSCROLLABLE | SQL_ATTR_CURSOR_TYPE to SQL_CURSOR_FORWARD_ONLY |
SQL_ATTR_CURSOR_SCROLLABLE to SQL_SCROLLABLE | 드라이버에서 지정한 대로 SQL_CURSOR_STATIC, SQL_CURSOR_KEYSET_DRIVEN 또는 SQL_CURSOR_DYNAMIC SQL_ATTR_CURSOR_TYPE. SQL_CURSOR_FORWARD_ONLY 설정되지 않습니다. |
SQL_ATTR_CURSOR_SENSITIVITY to SQL_INSENSITIVE | SQL_CONCUR_READ_ONLY SQL_ATTR_CONCURRENCY. SQL_CURSOR_STATIC SQL_ATTR_CURSOR_TYPE. |
SQL_ATTR_CURSOR_SENSITIVITY to SQL_SENSITIVE | 드라이버에서 지정한 대로 SQL_CONCUR_LOCK, SQL_CONCUR_ROWVER 또는 SQL_CONCUR_VALUES SQL_ATTR_CONCURRENCY. SQL_CONCUR_READ_ONLY 설정되지 않습니다. 드라이버에서 지정한 대로 SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_STATIC, SQL_CURSOR_KEYSET_DRIVEN 또는 SQL_CURSOR_DYNAMIC SQL_ATTR_CURSOR_TYPE. |
SQL_ATTR_CURSOR_SENSITIVITY to SQL_UNSPECIFIED | 드라이버에서 지정한 대로 SQL_CONCUR_READ_ONLY, SQL_CONCUR_LOCK, SQL_CONCUR_ROWVER 또는 SQL_CONCUR_VALUES SQL_ATTR_CONCURRENCY. 드라이버에서 지정한 대로 SQL_CURSOR_FORWARD_ONLY, SQL_CURSOR_STATIC, SQL_CURSOR_KEYSET_DRIVEN 또는 SQL_CURSOR_DYNAMIC SQL_ATTR_CURSOR_TYPE. |
SQL_ATTR_CURSOR_TYPE to SQL_CURSOR_DYNAMIC | SQL_SCROLLABLE SQL_ATTR_SCROLLABLE. SQL_SENSITIVE SQL_ATTR_CURSOR_SENSITIVITY. (그러나 SQL_ATTR_CONCURRENCY SQL_CONCUR_READ_ONLY 같지 않은 경우에만. 업데이터 가능한 동적 커서는 항상 자체 트랜잭션에서 변경된 내용에 민감합니다.) |
SQL_ATTR_CURSOR_TYPE to SQL_CURSOR_FORWARD_ONLY | SQL_NONSCROLLABLE SQL_ATTR_CURSOR_SCROLLABLE. |
SQL_ATTR_CURSOR_TYPE to SQL_CURSOR_KEYSET_DRIVEN | SQL_SCROLLABLE SQL_ATTR_SCROLLABLE. SQL_UNSPECIFIED 또는 SQL_SENSITIVE SQL_ATTR_SENSITIVITY(드라이버 정의 기준에 따라 SQL_ATTR_CONCURRENCY SQL_CONCUR_READ_ONLY 않은 경우). |
SQL_ATTR_CURSOR_TYPE to SQL_CURSOR_STATIC | SQL_SCROLLABLE SQL_ATTR_SCROLLABLE. SQL_INSENSITIVE SQL_ATTR_SENSITIVITY(SQL_ATTR_CONCURRENCY SQL_CONCUR_READ_ONLY 경우). SQL_UNSPECIFIED 또는 SQL_SENSITIVE SQL_ATTR_SENSITIVITY(SQL_ATTR_CONCURRENCY SQL_CONCUR_READ_ONLY 않은 경우). |
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기