문 핸들 할당
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
애플리케이션에서 문을 실행하려면 먼저 문 핸들을 할당해야 합니다. 이 작업은 SQL_HANDLE_STMT 설정되고 InputHandle이 연결 핸들을 가리키는 HandleType 매개 변수로 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 문을 별도의 일괄 처리로 보내야 하며, 이 문은 서버에 대한 추가 왕복을 자동으로 생성합니다.