다음을 통해 공유


문 핸들 할당

애플리케이션에서 문을 실행하려면 먼저 문 핸들을 할당해야 합니다. HandleType 매개 변수가 SQL_HANDLE_STMT 로 설정되고 InputHandle 이 연결 핸들을 가리키는 SQLAllocHandle을 호출하여 이 작업을 수행합니다.

문 특성은 문 핸들의 특성입니다. 문 특성의 예로는 책갈피 사용 여부 및 문의 결과 집합에 사용할 커서의 종류를 들 수 있습니다. 문 특성은 SQLSetStmtAttr로 설정되며 현재 설정은 SQLGetStmtAttr을 사용하여 검색됩니다. 애플리케이션에서 반드시 문 특성을 설정할 필요는 없습니다. 모든 문 특성에는 기본값이 있으며 일부 문 특성은 드라이버에 고유합니다.

몇 가지 ODBC 문 및 연결 옵션을 사용할 때는 주의를 기울여야 합니다. fOption이 SQL_ATTR_LOGIN_TIMEOUT 설정된 SQLSetConnectAttr를 호출하면 연결 설정 대기 동안 애플리케이션이 연결 시도 시간 초과를 기다리는 시간을 제어합니다(0은 무한 대기를 지정). 응답 시간이 느린 사이트의 경우 이 값을 높게 설정하여 연결을 완료하는 데 충분한 시간을 제공할 수 있습니다. 그러나 드라이버에서 연결할 수 없는 경우 사용자에게 적절한 시간 내에 응답되도록 간격을 항상 적절하게 설정해야 합니다.

fOption이 SQL_ATTR_QUERY_TIMEOUT 설정된 SQLSetStmtAttr을 호출하면 장기 실행 쿼리로부터 서버와 사용자를 보호하는 데 도움이 되는 쿼리 제한 시간 간격이 설정됩니다.

fOption이 SQL_ATTR_MAX_LENGTH 설정된 SQLSetStmtAttr을 호출하면 개별 문이 검색할 수 있는 텍스트이미지 데이터의 양이 제한됩니다. fOption이 SQL_ATTR_MAX_ROWS 설정된 SQLSetStmtAttr을 호출하면 모든 애플리케이션에 필요한 경우 행 집합이 첫 번째 n개 행으로 제한됩니다. SQL_ATTR_MAX_ROWS를 설정하면 드라이버가 서버에 대해 SET ROWCOUNT 문을 실행합니다. 이는 트리거 및 업데이트를 포함하여 모든 Microsoft SQL Server 문에 영향을 줍니다.

따라서 이러한 옵션을 설정할 때는 주의를 기울여야 합니다. 연결 핸들의 모든 문 핸들에 대한 SQL_ATTR_MAX_LENGTH 및 SQL_ATTR_MAX_ROWS 설정을 동일하게 지정하는 것이 좋습니다. 드라이버가 특정 문 핸들에서 이들 옵션 값이 다르게 설정된 다른 핸들로 전환하는 경우 설정을 변경하려면 드라이버가 적절한 SET TEXTSIZE 및 SET ROWCOUNT 문을 생성해야 합니다. 사용자 SQL 문은 일괄 처리의 첫 번째 문을 포함할 수 있으므로 드라이버는 이러한 문을 사용자 SQL 문과 동일한 일괄 처리에 배치할 수 없습니다. 드라이버는 SET TEXTSIZE 문과 SET ROWCOUNT 문을 별개의 일괄 처리로 보내야 하며 이 경우 추가 서버 왕복이 발생합니다.

참고 항목

쿼리 실행(ODBC)