SQLAllocHandle 함수

규칙
도입된 버전: ODBC 3.0 표준 준수: ISO 92

요약
SQLAllocHandle 은 환경, 연결, 문 또는 설명자 핸들을 할당합니다.

참고 항목

이 함수는 ODBC 2.0 함수 SQLAllocConnect, SQLAllocEnvSQLAllocStmt를 대체하는 핸들을 할당하기 위한 제네릭 함수입니다. SQLAllocHandle을 호출하는 애플리케이션이 ODBC 2에서 작동하도록 허용합니다.x 드라이버, SQLAllocHandle에 대한 호출은 드라이버 관리자에서 SQLAllocConnect, SQLAllocEnv 또는 SQLAllocStmt에 적절하게 매핑됩니다. 자세한 내용은 "설명"을 참조하세요. 드라이버 관리자가 이 함수를 ODBC 3에 매핑하는 항목에 대한 자세한 내용을 보려면x 애플리케이션이 ODBC 2에서 작동합니다.x 드라이버는 애플리케이션의 이전 버전과의 호환성을 위한 대체 함수 매핑을 참조 하세요.

구문

  
SQLRETURN SQLAllocHandle(  
      SQLSMALLINT   HandleType,  
      SQLHANDLE     InputHandle,  
      SQLHANDLE *   OutputHandlePtr);  

인수

HandleType
[입력] SQLAllocHandle에서 할당 할 핸들의 형식입니다. 다음 값 중 하나여야 합니다.

  • SQL_HANDLE_DBC

  • SQL_HANDLE_DBC_INFO_TOKEN

  • SQL_HANDLE_DESC

  • SQL_HANDLE_ENV

  • SQL_HANDLE_STMT

SQL_HANDLE_DBC_INFO_TOKEN 핸들은 드라이버 관리자 및 드라이버에서만 사용됩니다. 애플리케이션은 이 핸들 형식을 사용하면 안 됩니다. SQL_HANDLE_DBC_INFO_TOKEN 대한 자세한 내용은 ODBC 드라이버에서 연결 풀 인식 개발을 참조 하세요.

InputHandle
[입력] 컨텍스트에서 새 핸들을 할당할 입력 핸들입니다. HandleType이 SQL_HANDLE_ENV 경우 SQL_NULL_HANDLE. HandleType이 SQL_HANDLE_DBC 경우 환경 핸들이어야 하며, SQL_HANDLE_STMT 또는 SQL_HANDLE_DESC 경우 연결 핸들이어야 합니다.

OutputHandlePtr
[출력] 핸들을 새로 할당된 데이터 구조로 반환할 버퍼에 대한 포인터입니다.

반품

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE 또는 SQL_ERROR.

환경 핸들 이외의 핸들을 할당할 때 SQLAllocHandle이 SQL_ERROR 반환하는 경우 출력 인수가 null 포인터가 아닌 한 HandleType에 따라 OutputHandlePtr을 SQL_NULL_HDBC, SQL_NULL_HSTMT 또는 SQL_NULL_HDESC 설정합니다. 그런 다음 애플리케이션은 InputHandle 인수의 핸들과 연결된 진단 데이터 구조에서 추가 정보를 가져올 수 있습니다.

환경 핸들 할당 오류

환경 할당은 드라이버 관리자 내에서 그리고 각 드라이버 내에서 발생합니다. SQL_HANDLE_ENV HandleType을 사용하여 SQLAllocHandle에서 반환하는 오류는 오류가 발생한 수준에 따라 달라집니다.

HandleType이 SQL_HANDLE_ENV 있는 SQLAllocHandle이 호출되거나 애플리케이션이 OutputHandlePtr 에 대해 null 포인터를 제공하는 경우 드라이버 관리자가 *OutputHandlePtr에 대한 메모리를 할당할 수 없는 경우 SQLAllocHandle은 SQL_ERROR 반환합니다. 드라이버 관리자는 *OutputHandlePtr 를 SQL_NULL_HENV 설정합니다(애플리케이션이 SQL_ERROR 반환하는 null 포인터를 제공하지 않는 한). 추가 진단 정보를 연결할 핸들이 없습니다.

드라이버 관리자는 애플리케이션이 SQLConnect, SQLBrowseConnect 또는 SQLDriverConnect를 호출할 때까지 드라이버 수준 환경 핸들 할당 함수를 호출하지 않습니다. 드라이버 수준 SQLAllocHandle 함수에서 오류가 발생하면 드라이버 관리자 수준 SQLConnect, SQLBrowseConnect 또는 SQLDriverConnect 함수가 SQL_ERROR 반환합니다. 진단 데이터 구조에는 SQLSTATE IM004(드라이버의 SQLAllocHandle 실패)가 포함됩니다. 연결 핸들에 오류가 반환됩니다.

드라이버 관리자와 드라이버 간의 함수 호출 흐름에 대한 자세한 내용은 SQLConnect 함수를 참조하세요.

진단

SQLAllocHandle이 SQL_ERROR 또는 SQL_SUCCESS_WITH_INFO 반환하는 경우 적절한 HandleTypeHandle이 InputHandle 값으로 설정된 SQLGetDiagRec를 호출하여 연결된 SQLSTATE 값을 가져올 수 있습니다. SQL_SUCCESS_WITH_INFO(SQL_ERROR 아님)는 OutputHandle 인수에 대해 반환될 수 있습니다. 다음 표에서는 일반적으로 SQLAllocHandle에서 반환되는 SQLSTATE 값을 나열하고 이 함수의 컨텍스트에서 각 값을 설명합니다. 표기법 "(DM)"은 드라이버 관리자가 반환한 SQLSTATE에 대한 설명 앞에 나와 있습니다. 달리 명시되지 않는 한 각 SQLSTATE 값과 연결된 반환 코드는 SQL_ERROR.

SQLSTATE Error 설명
01000 일반 경고 드라이버 관련 정보 메시지입니다. 함수는 SQL_SUCCESS_WITH_INFO 반환합니다.
08003 연결이 열리지 않음 (DM) HandleType 인수가 SQL_HANDLE_STMT 또는 SQL_HANDLE_DESC InputHandle 인수로 지정된 연결이 열려 있지 않습니다. 드라이버가 문 또는 설명자 핸들을 할당하려면 연결 프로세스를 성공적으로 완료하고 연결이 열려 있어야 합니다.
HY000 일반 오류 특정 SQLSTATE가 없고 구현별 SQLSTATE가 정의되지 않은 오류가 발생했습니다. *MessageText 버퍼의 SQLGetDiagRec에서 반환된 오류 메시지는 오류와 그 원인을 설명합니다.
HY001 메모리 할당 오류 (DM) 드라이버 관리자가 지정된 핸들에 대한 메모리를 할당할 수 없습니다.

드라이버가 지정된 핸들에 대한 메모리를 할당할 수 없습니다.
HY009 null 포인터를 잘못 사용했습니다. (DM) OutputHandlePtr 인수가 null 포인터였습니다.
HY010 함수 시퀀스 오류 (DM) HandleType 인수가 SQL_HANDLE_DBC SQLSetEnvAttr 가 호출되어 SQL_ODBC_VERSION 환경 특성을 설정하지 않았습니다.

(DM) InputHandle에 대해 비동기적으로 실행되는 함수가 호출되었고, HandleType이 SQL_HANDLE_STMT 또는 SQL_HANDLE_DESC 설정하여 SQLAllocHandle 함수를 호출했을 때에도 여전히 실행 중입니다.
HY013 메모리 관리 오류 HandleType 인수는 SQL_HANDLE_DBC, SQL_HANDLE_STMT 또는 SQL_HANDLE_DESC;이며 메모리가 부족하여 기본 메모리 개체에 액세스할 수 없기 때문에 함수 호출을 처리할 수 없습니다.
HY014 초과된 핸들 수에 대한 제한 HandleType 인수로 표시된 핸들 형식에 할당할 수 있는 핸들 수에 대한 드라이버 정의 제한에 도달했습니다.
HY092 잘못된 특성/옵션 식별자 (DM) HandleType 인수가 SQL_HANDLE_ENV, SQL_HANDLE_DBC, SQL_HANDLE_STMT 또는 SQL_HANDLE_DESC 아닙니다.
HY117 알 수 없는 트랜잭션 상태로 인해 연결이 일시 중단됩니다. 연결 끊기 및 읽기 전용 함수만 허용됩니다. (DM) 일시 중단 상태에 대한 자세한 내용은 SQLEndTran 함수를 참조 하세요.
HYC00 선택적 기능이 구현되지 않음 HandleType 인수가 SQL_HANDLE_DESC 드라이버가 ODBC 2였습니다.x 드라이버입니다.
HYT01 연결 제한 시간이 만료됨 데이터 원본이 요청에 응답하기 전에 연결 제한 시간이 만료되었습니다. 연결 제한 시간은 SQL_ATTR_CONNECTION_TIMEOUT SQLSetConnectAttr를 통해 설정됩니다.
IM001 드라이버는 이 함수를 지원하지 않습니다. (DM) HandleType 인수가 SQL_HANDLE_STMT 드라이버가 유효한 ODBC 드라이버가 아닙니다.

(DM) HandleType 인수가 SQL_HANDLE_DESC 드라이버에서 설명자 핸들 할당을 지원하지 않습니다.

주석

SQLAllocHandle 은 다음 섹션에 설명된 대로 환경, 연결, 문 및 설명자에 대한 핸들을 할당하는 데 사용됩니다. 핸들에 대한 일반적인 내용은 핸들을 참조 하세요.

드라이버에서 여러 할당을 지원하는 경우 애플리케이션에서 한 번에 둘 이상의 환경, 연결 또는 문 핸들을 할당할 수 있습니다. ODBC에서는 한 번에 할당할 수 있는 환경, 연결, 문 또는 설명자 핸들 수에 제한이 정의되지 않습니다. 드라이버는 한 번에 할당할 수 있는 특정 유형의 핸들 수에 제한을 적용할 수 있습니다. 자세한 내용은 드라이버 설명서를 참조하세요.

애플리케이션이 이미 존재하는 환경, 연결, 문 또는 설명자 핸들로 설정된 *OutputHandlePtr로 SQLAllocHandle 을 호출하는 경우 애플리케이션이 연결 풀링을 사용하지 않는 한 드라이버가 핸들연결된 정보를 덮어씁니다(이 섹션의 뒷부분에 있는 "연결 풀링에 대한 환경 특성 할당" 참조). 드라이버 관리자는 *OutputHandlePtr입력된 핸들이 이미 사용되고 있는지 여부를 확인하지 않으며 덮어쓰기 전에 핸들의 이전 내용을 확인하지도 않습니다.

참고 항목

다시 할당하기 전에 핸들을 해제하기 위해 SQLFreeHandle을 호출하지 않고 *OutputHandlePtr에 대해 정의된 동일한 애플리케이션 변수로 SQLAllocHandle을 두 번 호출하는 것은 잘못된 ODBC 애플리케이션 프로그래밍입니다. 이러한 방식으로 ODBC 핸들을 덮어쓰면 ODBC 드라이버에서 일관되지 않은 동작 또는 오류가 발생할 수 있습니다.

여러 스레드를 지원하는 운영 체제에서 애플리케이션은 서로 다른 스레드에서 동일한 환경, 연결, 문 또는 설명자 핸들을 사용할 수 있습니다. 따라서 드라이버는 이 정보에 대한 안전한 다중 스레드 액세스를 지원해야 합니다. 예를 들어 이 작업을 수행하는 한 가지 방법은 중요한 섹션 또는 세마포를 사용하는 것입니다. 스레딩에 대한 자세한 내용은 다중 스레딩을 참조 하세요.

SQLAllocHandle은 환경 핸들을 할당하기 위해 호출될 때 SQL_ATTR_ODBC_VERSION 환경 특성을 설정하지 않습니다. 애플리케이션에서 환경 특성을 설정해야 합니다. 또는 SQLAllocHandle을 호출하여 연결 핸들을 할당할 때 SQLSTATE HY010(함수 시퀀스 오류)이 반환됩니다.

표준 규격 애플리케이션의 경우 SQLAllocHandle은 컴파일 시간에 SQLAllocHandleStd에 매핑됩니다. 이러한 두 함수의 차이점은 SQLAllocHandleStdSQL_HANDLE_ENV HandleType 인수를 사용하여 호출될 때 SQL_ATTR_ODBC_VERSION 환경 특성을 SQL_OV_ODBC3 설정한다는 것입니다. 표준 규격 애플리케이션은 항상 ODBC 3이므로 이 작업이 수행됩니다.x 애플리케이션. 또한 표준은 애플리케이션 버전을 등록할 필요가 없습니다. 이 두 함수 간의 유일한 차이점은 다음과 같습니다. 그렇지 않으면 동일합니다. SQLAllocHandleStd는 드라이버 관리자 내의 SQLAllocHandle에 매핑됩니다. 따라서 타사 드라이버는 SQLAllocHandleStd를 구현할 필요가 없습니다.

ODBC 3.8 애플리케이션은 다음을 사용해야 합니다.

  • 환경 핸들을 할당하기 위해 SQLAllocHandleStd 가 아닌 SQLAllocHandle입니다.

  • SQL_ATTR_ODBC_VERSION 환경 특성을 SQL_OV_ODBC3_80 설정하기 위한 SQLSetEnvAttr 입니다.

환경 핸들 할당

환경 핸들은 유효한 연결 핸들 및 활성 연결 핸들과 같은 전역 정보에 대한 액세스를 제공합니다. 환경 핸들에 대한 일반적인 내용은 환경 핸들을 참조 하세요.

환경 핸들을 요청하기 위해 애플리케이션은 SQL_HANDLE_ENV HandleType 및 SQL_NULL_HANDLE InputHandle을 사용하여 SQLAllocHandle호출합니다. 드라이버는 환경 정보에 대한 메모리를 할당하고 연결된 핸들의 값을 *OutputHandlePtr 인수에 다시 전달합니다. 애플리케이션은 환경 핸들 인수가 필요한 모든 후속 호출에서 *OutputHandle 값을 전달합니다. 자세한 내용은 환경 핸들 할당을 참조 하세요.

드라이버 관리자의 환경 핸들 아래에 드라이버의 환경 핸들이 이미 있는 경우 연결이 이루어지면 SQL_HANDLE_ENV HandleType이 있는 SQLAllocHandle이 해당 드라이버에서 호출되지 않고 HandleType이 SQL_HANDLE_DBC SQLAllocHandle만 있습니다. 드라이버 관리자의 환경 핸들 아래에 드라이버 환경 핸들이 없으면 환경의 첫 번째 연결 핸들이 드라이버에 연결되면 SQL_HANDLE_ENV HandleType이 있는 SQLAllocHandle과 SQL_HANDLE_DBC HandleType이 있는 SQLAllocHandle이 드라이버에서 호출됩니다.

드라이버 관리자는 SQL_HANDLE_ENV HandleType을 사용하여 SQLAllocHandle 함수를 처리할 때 시스템 정보의 [ODBC] 섹션에서 Trace 키워드를 확인 합니다. 1로 설정된 경우 드라이버 관리자는 현재 애플리케이션에 대한 추적을 사용하도록 설정합니다. 추적 플래그가 설정되면 첫 번째 환경 핸들이 할당될 때 추적이 시작되고 마지막 환경 핸들이 해제될 때 종료됩니다. 자세한 내용은 데이터 원본 구성을 참조 하세요.

환경 핸들을 할당한 후 애플리케이션은 환경 핸들에서 SQLSetEnvAttr를 호출하여 SQL_ATTR_ODBC_VERSION 환경 특성을 설정해야 합니다. 환경에서 연결 핸들을 할당하기 위해 SQLAllocHandle을 호출하기 전에 이 특성을 설정하지 않으면 연결을 할당하는 호출은 SQLSTATE HY010(함수 시퀀스 오류)을 반환합니다. 자세한 내용은 애플리케이션의 ODBC 버전 선언을 참조 하세요.

연결 풀링을 위한 공유 환경 할당

단일 프로세스에서 여러 구성 요소 간에 환경을 공유할 수 있습니다. 공유 환경은 둘 이상의 구성 요소에서 동시에 사용할 수 있습니다. 구성 요소에서 공유 환경을 사용하는 경우 풀링된 연결을 사용하여 해당 연결을 다시 만들지 않고 기존 연결을 할당하고 사용할 수 있습니다.

연결 풀링에 사용할 수 있는 공유 환경을 할당하기 전에 애플리케이션에서 SQLSetEnvAttr를 호출하여 SQL_ATTR_CONNECTION_POOLING 환경 특성을 SQL_CP_ONE_PER_DRIVER 또는 SQL_CP_ONE_PER_HENV 설정해야 합니다. 이 경우 SQLSetEnvAttr는 EnvironmentHandle을 null로 설정하여 호출되므로 특성이 프로세스 수준 특성이 됩니다.

연결 풀링을 사용하도록 설정한 후 애플리케이션은 HandleType 인수를 SQL_HANDLE_ENV 설정하여 SQLAllocHandle 을 호출합니다. 연결 풀링을 사용하도록 설정했으므로 이 호출에 의해 할당된 환경은 암시적 공유 환경이 됩니다.

공유 환경이 할당되면 SQL_HANDLE_DBC HandleType을 사용하는 SQLAllocHandle 이 호출될 때까지 사용할 환경이 결정되지 않습니다. 이때 드라이버 관리자는 애플리케이션에서 요청한 환경 특성과 일치하는 기존 환경을 찾으려고 합니다. 이러한 환경이 없으면 공유 환경으로 만들어집니다. 드라이버 관리자는 각 공유 환경에 대한 참조 수를 유지 관리합니다. 환경이 처음 만들어지면 개수가 1로 설정됩니다. 일치하는 환경이 발견되면 해당 환경의 핸들이 애플리케이션에 반환되고 참조 수가 증가합니다. 이러한 방식으로 할당된 환경 핸들은 환경 핸들을 입력 인수로 허용하는 모든 ODBC 함수에서 사용할 수 있습니다.

연결 핸들 할당

연결 핸들은 연결에 대한 유효한 문 및 설명자 핸들 및 트랜잭션이 현재 열려 있는지 여부와 같은 정보에 대한 액세스를 제공합니다. 연결 핸들에 대한 일반적인 내용은 연결 핸들을 참조 하세요.

연결 핸들을 요청하기 위해 애플리케이션은 SQL_HANDLE_DBC HandleType을 사용하여 SQLAllocHandle호출합니다. InputHandle 인수는 해당 핸들을 할당한 SQLAllocHandle 호출에서 반환된 환경 핸들로 설정됩니다. 드라이버는 연결 정보에 대한 메모리를 할당하고 연결된 핸들의 값을 *OutputHandlePtr다시 전달합니다. 애플리케이션은 연결 핸들이 필요한 모든 후속 호출에서 *OutputHandlePtr 값을 전달합니다. 자세한 내용은 연결 핸들 할당을 참조 하세요.

드라이버 관리자는 SQLAllocHandle 함수를 처리하고 애플리케이션이 SQLConnect, SQLBrowseConnect 또는 SQLDriverConnect를 호출할 때 드라이버의 SQLAllocHandle 함수를 호출합니다. (자세한 내용은 를 참조하세요 .SQLConnect 함수.)

환경에 연결 핸들을 할당하기 위해 SQLAllocHandle을 호출하기 전에 SQL_ATTR_ODBC_VERSION 환경 특성이 설정되지 않은 경우 연결을 할당하는 호출은 SQLSTATE HY010(함수 시퀀스 오류)을 반환합니다.

애플리케이션에서 inputHandle 인수가 SQL_HANDLE_DBC 설정되고 공유 환경 핸들로 설정된 SQLAllocHandle 을 호출하는 경우 드라이버 관리자는 애플리케이션에서 설정한 환경 특성과 일치하는 기존 공유 환경을 찾으려고 시도합니다. 이러한 환경이 없으면 참조 횟수(드라이버 관리자가 유지 관리)가 1인 환경이 만들어집니다. 일치하는 공유 환경이 발견되면 해당 핸들이 애플리케이션에 반환되고 해당 참조 수가 증가합니다.

사용할 실제 연결은 SQLConnect 또는 SQLDriverConnect가 호출될 때까지 드라이버 관리자에 의해 결정되지 않습니다. 드라이버 관리자는 SQLConnect 호출의 연결 옵션(또는 SQLDriverConnect 호출의 연결 키워드)과 연결 할당 후 설정된 연결 특성을 사용하여 풀에서 사용해야 하는 연결을 결정합니다. 자세한 내용은 SQLConnect 함수를 참조 하세요.

문 핸들 할당

문 핸들은 SQL 문 처리에 대한 오류 메시지, 커서 이름 및 상태 정보와 같은 문 정보에 대한 액세스를 제공합니다. 문 핸들에 대한 일반적인 내용은 문 핸들을 참조 하세요.

문 핸들을 요청하기 위해 애플리케이션은 데이터 원본에 연결한 다음 SQL 문을 제출하기 전에 SQLAllocHandle을 호출합니다. 이 호출에서 HandleType은 SQL_HANDLE_STMT 설정해야 하며 InputHandle은 해당 핸들을 할당한 SQLAllocHandle 호출에서 반환된 연결 핸들로 설정해야 합니다. 드라이버는 문 정보에 대한 메모리를 할당하고, 문 핸들을 지정된 연결과 연결하고, 연결된 핸들의 값을 *OutputHandlePtr다시 전달합니다. 애플리케이션은 문 핸들이 필요한 모든 후속 호출에서 *OutputHandlePtr 값을 전달합니다. 자세한 내용은 문 핸들 할당을 참조 하세요.

문 핸들이 할당되면 드라이버는 자동으로 4개의 설명자 집합을 할당하고 이러한 설명자에 대한 핸들을 SQL_ATTR_APP_ROW_DESC, SQL_ATTR_APP_PARAM_DESC, SQL_ATTR_IMP_ROW_DESC 및 SQL_ATTR_IMP_PARAM_DESC 문 특성에 할당합니다. 이를 암시적으로 할당된 설명자라고 합니다. 애플리케이션 설명자를 명시적으로 할당하려면 다음 섹션인 "설명자 핸들 할당"을 참조하세요.

설명자 핸들 할당

애플리케이션이 SQL_HANDLE_DESC HandleType을 사용하여 SQLAllocHandle을 호출하면 드라이버는 애플리케이션 설명자를 할당합니다. 이를 명시적으로 할당된 설명자라고 합니다. 애플리케이션은 SQL_ATTR_APP_ROW_DESC 또는 SQL_ATTR_APP_PARAM_DESC 특성을 사용하여 SQLSetStmtAttr 함수를 호출하여 지정된 문 핸들에 자동으로 할당된 애플리케이션 설명자 대신 명시적으로 할당된 애플리케이션 설명자를 사용하도록 드라이버에 지시합니다. 구현 설명자는 명시적으로 할당할 수 없으며 SQLSetStmtAttr 함수 호출에서 구현 설명자를 지정할 수도 없습니다.

명시적으로 할당된 설명자는 자동으로 할당된 설명자로 문 핸들 대신 연결 핸들과 연결됩니다. 설명자는 애플리케이션이 실제로 데이터베이스에 연결된 경우에만 할당된 상태로 유지됩니다. 명시적으로 할당된 설명자는 연결 핸들과 연결되므로 애플리케이션은 명시적으로 할당된 설명자를 연결 내에서 둘 이상의 문과 연결할 수 있습니다. 반면에 암시적으로 할당된 애플리케이션 설명자는 둘 이상의 문 핸들과 연결할 수 없습니다. (할당된 문 핸들 이외의 문 핸들과 연결할 수 없습니다.) 명시적으로 할당된 설명자 핸들은 애플리케이션 또는 SQL_HANDLE_DESC HandleType사용하여 SQLFreeHandle을 호출하거나 연결이 닫힌 경우 암시적으로 해제할 수 있습니다.

명시적으로 할당된 설명자가 해제되면 암시적으로 할당된 설명자가 문과 다시 연결됩니다. (해당 문의 SQL_ATTR_APP_ROW_DESC 또는 SQL_ATTR_APP_PARAM_DESC 특성은 암시적으로 할당된 설명자 핸들로 다시 설정됩니다.) 이는 연결에서 명시적으로 할당된 설명자와 연결된 모든 문에 해당합니다.

설명자에 대한 자세한 내용은 설명자를 참조 하세요.

코드 예

샘플 ODBC 프로그램, SQLBrowseConnect 함수, SQLConnect 함수SQLSetCursorName 함수를 참조하세요.

추가 정보 참조
SQL 문 실행 SQLExecDirect 함수
준비된 SQL 문 실행 SQLExecute 함수
환경, 연결, 문 또는 설명자 핸들 해제 SQLFreeHandle 함수
실행을 위한 문 준비 SQLPrepare 함수
연결 특성 설정 SQLSetConnectAttr 함수
설명자 필드 설정 SQLSetDescField 함수
환경 특성 설정 SQLSetEnvAttr 함수
문 특성 설정 SQLSetStmtAttr 함수

참고 항목

ODBC API 참조
ODBC 헤더 파일