적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
ODBC API는 데이터 원본에 연결하고, SQL 문을 실행하고, 결과를 검색하기 위한 표준 함수 집합을 제공합니다. 각 함수는 용도, ODBC 버전, 구문, 인수, 반환 값, 진단 및 코드 예제를 포함하는 설명을 포함하는 C 프로그래밍 언어 함수입니다.
표준 CLI 규칙 수준은 ISO 92, Open Group, ODBC 또는 사용되지 않음 중 하나일 수 있습니다. OPEN Group은 ISO 92의 순수 상위 집합이므로 ISO 92 규칙으로 태그가 지정된 함수도 Open Group 버전 1에 나타납니다. ODBC 3.x는 Open Group 버전 1의 순수 상위 집합이므로 Open Group 규격으로 태그가 지정된 함수도 ODBC 3.x에 표시됩니다. ODBC 규격으로 태그가 지정된 함수는 두 표준에 모두 표시되지 않습니다. 사용되지 않음으로 태그가 지정된 함수는 ODBC 3.x에서 더 이상 사용되지 않습니다.
SQLGetDiagField 함수 설명은 진단 정보를 처리하는 방법을 설명합니다. SQLSTATE 값과 연결된 텍스트는 조건에 대한 설명을 제공하지만 특정 텍스트를 규정하지는 않습니다.
비고
ODBC 함수에 대한 드라이버 관련 정보는 드라이버 섹션을 참조하세요.
할당 및 관리 처리
이러한 함수는 환경, 연결, 문 및 설명자에 대한 핸들을 할당하고 해제합니다. 핸들은 ODBC 애플리케이션에서 상태를 추적하기 위한 기본 메커니즘입니다.
| 기능 | Description |
|---|---|
| SQLAllocHandle | 환경, 연결, 문 또는 설명자 핸들을 할당합니다. 사용되지 않는 할당 함수를 대체하는 ODBC 3.x 함수입니다. |
| SQLFreeHandle | 환경, 연결, 문 또는 설명자 핸들을 해제하고 관련 리소스를 해제합니다. |
| SQLAllocConnect | 연결 핸들을 할당합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLAllocHandle . |
| SQLAllocEnv | 환경 핸들을 할당합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLAllocHandle . |
| SQLAllocStmt | 문 핸들을 할당합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLAllocHandle . |
| SQLFreeConnect | 연결 핸들을 해제합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLFreeHandle . |
| SQLFreeEnv | 환경 핸들을 해제합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLFreeHandle . |
| SQLFreeStmt | 문 처리를 중지하고, 연결된 커서를 닫고, 보류 중인 결과를 삭제하고, 문 핸들과 연결된 리소스를 선택적으로 해제합니다. |
연결 함수
이러한 함수는 데이터 원본에 대한 연결을 설정하고 관리합니다. 표준 연결, 드라이버별 대화 상자 및 반복 검색을 비롯한 다양한 연결 방법을 지원합니다.
| 기능 | Description |
|---|---|
| SQLConnect | 데이터 원본 이름, 사용자 ID 및 암호를 사용하여 데이터 원본에 대한 연결을 설정합니다. |
| SQLDriverConnect | 연결 문자열을 사용하여 연결을 설정합니다. 추가 연결 정보에 대한 드라이버 관련 대화 상자를 지원합니다. |
| SQLBrowseConnect | 데이터 원본에 연결하는 데 필요한 특성을 검색하고 열거하는 반복 메서드를 지원합니다. |
| SQLDisconnect | 데이터 원본에 대한 연결을 닫고 연결된 리소스를 해제합니다. |
| SQLDataSources | 사용 가능한 데이터 원본 목록을 반환합니다. 특정 드라이버가 아닌 드라이버 관리자에서 호출됩니다. |
| SQLDrivers | 설치된 드라이버 및 해당 특성의 목록을 반환합니다. 드라이버 관리자에서 호출됩니다. |
문 준비 및 실행
이러한 함수는 SQL 문을 준비하고 실행합니다. ODBC는 직접 실행과 준비된 실행을 모두 지원하며, 준비된 실행은 반복적으로 실행되는 문에 대해 더 나은 성능을 제공합니다.
| 기능 | Description |
|---|---|
| SQLPrepare | 나중에 실행하기 위해 SQL 문을 준비합니다. 데이터 원본은 문을 컴파일하고 최적화합니다. |
| SQLExecute | 준비된 문을 실행합니다. 이 함수를 호출하기 전에 호출 SQLPrepare 합니다. |
| SQLExecDirect | 단일 호출에서 SQL 문을 준비하고 실행합니다. 한 번만 실행되는 문에 사용합니다. |
| SQLNativeSql | 드라이버에서 수정한 SQL 문자열을 반환하여 드라이버가 ODBC SQL 구문을 변환하는 방법을 보여 줍니다. |
| SQLCancel | 문에 대한 처리를 취소합니다. 비동기적으로 실행되는 함수 또는 다른 스레드에서 실행되는 함수를 취소할 수 있습니다. |
| SQLCancelHandle | 연결 또는 문에 대한 처리를 취소합니다. 연결 함수를 취소하는 것보다 SQLCancel 더 유연합니다. |
| SQLCompleteAsync | 비동기 함수가 완료되는 시기를 결정합니다. 알림 기반 비동기 처리와 함께 사용됩니다. |
매개 변수 바인딩
이러한 함수는 SQL 문의 매개 변수 표식에 애플리케이션 변수를 바인딩합니다. 매개 변수는 준비된 문에서 동적 값을 사용하도록 설정합니다.
| 기능 | Description |
|---|---|
| SQLBindParameter | SQL 문의 매개 변수 표식에 애플리케이션 변수를 바인딩합니다. 입력, 출력 및 입력/출력 매개 변수를 지원합니다. |
| SQLNumParams | SQL 문의 매개 변수 수를 반환합니다. |
| SQLDescribeParam | 데이터 형식, 크기 및 전체 자릿수를 포함하여 매개 변수 표식에 대한 설명을 반환합니다. |
| SQLParamData |
SQLPutData 실행 시 매개 변수 데이터를 제공하는 데 사용됩니다. 데이터가 필요한 매개 변수를 반환합니다. |
| SQLPutData | 실행 시 매개 변수에 대한 데이터 값의 일부 또는 전체를 보냅니다. 청크로 큰 데이터를 지원합니다. |
| SQLSetParam | 매개 변수를 바인딩합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLBindParameter . |
| SQLParamOptions | 매개 변수 배열에 대한 옵션을 설정합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 문 특성을 사용합니다. |
결과 집합 바인딩 및 검색
이러한 함수는 애플리케이션 버퍼를 결과 집합 열에 바인딩하고 쿼리 결과에서 데이터를 검색합니다.
| 기능 | Description |
|---|---|
| SQLBindCol | 후속 인출 작업을 위해 애플리케이션 변수를 결과 집합 열에 바인딩합니다. |
| SQLFetch | 결과 집합에서 바인딩된 열로 데이터의 다음 행 집합을 가져옵니다. |
| SQLFetchScroll | 결과 집합에서 지정된 행 집합을 가져옵니다. 첫 번째, 마지막, 다음, 이전, 절대 및 상대 위치로 스크롤을 지원합니다. |
| SQLGetData | 이후 SQLFetch 또는 SQLFetchScroll다음 열에 대한 데이터를 검색합니다. 큰 데이터 또는 언바운드 열에 유용합니다. |
| SQLExtendedFetch | 지정된 데이터 행 집합을 가져옵니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLFetchScroll . |
| SQLMoreResults | 문에서 더 많은 결과를 사용할 수 있는지 여부를 결정하고 다음 결과 집합으로 진행합니다. |
| SQLRowCount | UPDATE, INSERT 또는 DELETE 문의 영향을 받는 행 수를 반환합니다. |
커서 작업
이러한 함수는 행 집합에서 커서 동작, 위치 지정 및 대량 작업을 관리합니다.
| 기능 | Description |
|---|---|
| SQLSetPos | 행 집합 내에서 커서 위치를 설정하고 애플리케이션이 해당 위치에서 데이터를 새로 고치거나 업데이트하거나 삭제할 수 있도록 합니다. |
| SQLBulkOperations | 행 집합에서 책갈피로 대량 삽입, 업데이트, 삭제 또는 책갈피 가져오기 작업을 수행합니다. |
| SQLCloseCursor | 문에서 열린 커서를 닫고 보류 중인 결과를 삭제합니다. |
| SQLGetCursorName | 문과 연결된 커서 이름을 반환합니다. |
| SQLSetCursorName | 배치된 UPDATE 및 DELETE 문의 커서 이름을 지정합니다. |
| SQLSetScrollOptions | 커서 동작에 대한 옵션을 설정합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 문 특성을 사용합니다. |
카탈로그 함수
이러한 함수는 테이블, 열, 인덱스, 권한 및 저장 프로시저를 포함하여 데이터베이스 구조에 대한 메타데이터를 검색합니다.
| 기능 | Description |
|---|---|
| SQLTables | 데이터 원본의 테이블 이름 목록을 반환합니다. 카탈로그, 스키마 및 테이블 형식별 필터링을 지원합니다. |
| SQLColumns | 지정된 테이블에 대한 열 이름 및 해당 특성의 목록을 반환합니다. |
| SQLPrimaryKeys | 테이블의 기본 키를 구성하는 열을 반환합니다. |
| SQLForeignKeys | 테이블의 외래 키 또는 테이블의 기본 키를 참조하는 다른 테이블의 외래 키를 반환합니다. |
| SQLStatistics | 테이블 및 테이블과 연결된 인덱스 목록에 대한 통계를 반환합니다. |
| SQLSpecialColumns | 행의 값이 업데이트되면 자동으로 업데이트되는 행 또는 열을 고유하게 식별하는 열을 반환합니다. |
| SQLColumnPrivileges | 테이블에 대한 열 및 관련 권한 목록을 반환합니다. |
| SQLTablePrivileges | 테이블 목록과 각 테이블과 연결된 권한을 반환합니다. |
| SQLProcedures | 데이터 원본의 저장 프로시저 이름 목록을 반환합니다. |
| SQLProcedureColumns | 지정된 프로시저에 대한 결과 집합의 입력/출력 매개 변수 및 열 목록을 반환합니다. |
| SQLGetTypeInfo | 데이터 원본에서 지원하는 데이터 형식에 대한 정보를 반환합니다. |
설명자 작업
이러한 함수는 설명자 값을 가져와서 설정합니다. 설명자에는 매개 변수 및 결과 집합 열에 대한 메타데이터가 포함됩니다.
| 기능 | Description |
|---|---|
| SQLGetDescField | 설명자 레코드의 단일 필드 값을 반환합니다. |
| SQLGetDescRec | 한 번의 호출로 설명자 레코드의 여러 필드를 반환합니다. |
| SQLSetDescField | 설명자 레코드의 단일 필드 값을 설정합니다. |
| SQLSetDescRec | 설명자 레코드의 여러 필드를 단일 호출로 설정합니다. |
| SQLCopyDesc | 설명자 정보를 한 설명자 핸들에서 다른 설명자 핸들로 복사합니다. |
특성 함수
이러한 함수는 환경, 연결 및 문에 대한 특성을 가져와서 설정합니다. 특성은 ODBC 동작의 다양한 측면을 제어합니다.
| 기능 | Description |
|---|---|
| SQLSetEnvAttr | 해당 환경의 모든 연결에 영향을 주는 환경 특성을 설정합니다. |
| SQLGetEnvAttr | 환경 특성의 값을 반환합니다. |
| SQLSetConnectAttr | 연결 및 연결에 영향을 주는 연결 특성을 설정합니다. |
| SQLGetConnectAttr | 연결 특성의 값을 반환합니다. |
| SQLSetStmtAttr | 문 특성을 설정합니다. 커서, 쿼리 시간 제한 및 매개 변수 설정을 포함합니다. |
| SQLGetStmtAttr | 문 특성의 값을 반환합니다. |
| SQLSetConnectOption | 연결 옵션을 설정합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLSetConnectAttr . |
| SQLGetConnectOption | 연결 옵션의 값을 반환합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLGetConnectAttr . |
| SQLSetStmtOption | 문 옵션을 설정합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLSetStmtAttr . |
| SQLGetStmtOption | 문 옵션의 값을 반환합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLGetStmtAttr . |
진단 및 정보 함수
이러한 함수는 진단 정보, 오류 메시지, 드라이버 기능 및 데이터 원본 정보를 검색합니다.
| 기능 | Description |
|---|---|
| SQLGetDiagField | 오류, 경고 및 상태 정보를 포함하는 진단 레코드의 필드 값을 반환합니다. |
| SQLGetDiagRec | SQLSTATE, 네이티브 오류 코드 및 메시지 텍스트를 포함하여 진단 레코드의 자주 사용되는 여러 필드를 반환합니다. |
| SQLError | 오류 정보를 반환합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLGetDiagRec . |
| SQLGetFunctions | 드라이버가 특정 ODBC 함수를 지원하는지 여부에 대한 정보를 반환합니다. |
| Sqlgetinfo | 지원되는 기능 및 기능을 포함하여 드라이버 및 데이터 원본에 대한 일반 정보를 반환합니다. |
결과 집합 메타데이터
이러한 함수는 결과 집합의 구조에 대한 정보를 반환합니다.
| 기능 | Description |
|---|---|
| SQLNumResultCols | 결과 집합의 열 수를 반환합니다. |
| SQLDescribeCol | 결과 집합 열의 열 이름, 데이터 형식, 전체 자릿수, 소수 자릿수 및 null 허용도를 반환합니다. |
| SQLColAttribute | 결과 집합의 열에 대한 설명자 정보를 반환합니다. 보다 SQLDescribeCol유연합니다. |
| SQLColAttributes | 열의 특성을 반환합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLColAttribute . |
트랜잭션 관리
이러한 함수는 트랜잭션 경계를 관리하여 변경 내용이 커밋되거나 롤백되는 시기를 제어합니다.
| 기능 | Description |
|---|---|
| SQLEndTran | 트랜잭션을 커밋하거나 롤백합니다. 환경 또는 단일 연결의 모든 연결에 적용할 수 있습니다. |
| SQLTransact | 트랜잭션을 커밋하거나 롤백합니다. ODBC 3.x에서는 사용되지 않습니다. 대신 사용합니다 SQLEndTran . |