문 핸들 할당

응용 프로그램에서 문을 실행하려면 먼저 문 핸들을 할당해야 합니다. 문 핸들은 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개의 행으로 제한됩니다(해당 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)