데이터 소스: 프로그래밍 방식으로 ODBC 데이터 소스 구성
이 항목에서는 프로그래밍 방식으로 ODBC(Open Database Connectivity) 데이터 원본 이름을 구성하는 방법을 설명합니다. 이렇게 하면 사용자가 ODBC 관리자 또는 다른 프로그램을 명시적으로 사용하여 데이터 원본의 이름을 지정하도록 강제하지 않고 데이터에 유연하게 액세스할 수 있습니다.
일반적으로 사용자는 ODBC 관리자를 실행하여 연결된 DBMS(데이터베이스 관리 시스템)에서 이 작업을 지원하는 경우 데이터 원본을 만듭니다.
ODBC 관리자를 통해 Microsoft Access ODBC 데이터 원본을 만들 때는 기존 .mdb 파일을 선택하거나 새 .mdb 파일을 만들 수 있습니다. MFC ODBC 애플리케이션에서 .mdb 파일을 만드는 프로그래밍 방식의 방법은 없습니다. 따라서 애플리케이션에서 데이터를 Microsoft Access 데이터 원본(.mdb 파일)에 배치해야 하는 경우 필요할 때마다 사용하거나 복사할 수 있는 빈 .mdb 파일이 필요할 수 있습니다.
그러나 많은 DBMS에서 프로그래밍 방식의 데이터 원본을 만들 수 있습니다. 일부 데이터 원본은 데이터베이스에 대한 디렉터리 사양을 유지 관리합니다. 즉, 디렉터리가 데이터 원본이고 데이터 원본 내의 각 테이블은 별도의 파일에 저장됩니다(dBASE의 경우 각 테이블은 .dbf 파일임). Microsoft Access 및 SQL Server와 같은 다른 ODBC 데이터베이스에 대한 드라이버는 데이터 원본을 설정하기 전에 특정 조건을 충족해야 합니다. 예를 들어 SQL Server ODBC 드라이버를 사용하는 경우 SQL Server 컴퓨터를 설정해야 합니다.
SQLConfigDataSource 예제
다음 예제에서는 ODBC API 함수를 사용하여 ::SQLConfigDataSource
새 Excel 데이터 원본이라는 새 Excel 데이터 원본을 만듭니다.
SQLConfigDataSource(NULL,ODBC_ADD_DSN, "Excel Files (*.xls)",
"DSN=New Excel Data Source\0"
"Description=New Excel Data Source\0"
"FileType=Excel\0"
"DataDirectory=C:\\EXCELDIR\0"
"MaxScanRows=20\0");
데이터 원본은 실제로 디렉터리(C:\EXCELDIR)입니다. 이 디렉터리가 있어야 합니다. Excel 드라이버는 디렉터리를 데이터 원본 및 파일로 개별 테이블(.xls 파일당 하나의 테이블)로 사용합니다.
테이블을 만드는 방법에 대한 자세한 내용은 데이터 원본: 프로그래밍 방식으로 ODBC 데이터 원본에서 테이블 만들기를 참조하세요.
다음 정보는 ODBC API 함수에 전달해야 하는 매개 변수에 ::SQLConfigDataSource
대해 설명합니다. 사용 ::SQLConfigDataSource
하려면 Odbcinst.h 헤더 파일을 포함하고 Odbcinst.lib 가져오기 라이브러리를 사용해야 합니다. 또한 Odbccp32.dll 런타임에 경로에 있어야 합니다(또는 16비트 Odbcinst.dll).
ODBC 관리자 또는 유사한 유틸리티를 사용하여 ODBC 데이터 원본 이름을 만들 수 있습니다. 그러나 사용자가 별도의 유틸리티를 실행하지 않고도 액세스 권한을 얻기 위해 애플리케이션에서 직접 데이터 원본 이름을 만드는 것이 바람직한 경우가 있습니다.
ODBC 관리자(일반적으로 제어판 설치)는 Windows 레지스트리(또는 Odbc.ini 파일에서 16비트)에 항목을 배치하여 새 데이터 원본을 만듭니다. ODBC 드라이버 관리자는 이 파일을 쿼리하여 데이터 원본에 대한 필수 정보를 가져옵니다. 에 대한 호출 ::SQLConfigDataSource
을 제공해야 하므로 레지스트리에 배치해야 하는 정보를 알아야 합니다.
이 정보는 사용하지 ::SQLConfigDataSource
않고 레지스트리에 직접 기록될 수 있지만, 이렇게 하는 모든 애플리케이션은 드라이버 관리자가 데이터를 유지 관리하는 데 사용하는 현재 기술에 의존합니다. 이후의 ODBC 드라이버 관리자 수정 버전에서 다른 방식으로 데이터 원본에 대한 레코드를 구현하는 경우 이 기술을 사용하는 모든 애플리케이션이 손상됩니다. 일반적으로 API 함수가 제공되면 사용하는 것이 좋습니다. 예를 들어 함수가 Odbc.ini 파일 또는 레지스트리에 올바르게 쓰기 때문에 함수를 사용하는 ::SQLConfigDataSource
경우 코드는 16비트에서 32비트까지 이식 가능합니다.
SQLConfigDataSource 매개 변수
다음은 함수의 매개 변수에 대해 설명합니다 ::SQLConfigDataSource
. 대부분의 정보는 Visual C++ 버전 1.5 이상과 함께 제공되는 ODBC API 프로그래머 참조 에서 가져옵니다.
함수 프로토타입
BOOL SQLConfigDataSource(HWND hwndParent,UINT fRequest, LPCSTR lpszDriver, LPCSTR lpszAttributes);
설명
매개 변수 및 사용
hwndParent
새 데이터 원본에 대한 사용자로부터 추가 정보를 얻기 위해 ODBC 드라이버 관리자 또는 특정 ODBC 드라이버가 만드는 대화 상자의 소유자로 지정된 창입니다. lpszAttributes 매개 변수가 충분한 정보를 제공하지 않으면 대화 상자가 나타납니다. hwndParent 매개 변수는 NULL일 수 있습니다.
lpszDriver
드라이버 설명입니다. 실제 드라이버 이름(DLL)이 아닌 사용자에게 표시되는 이름입니다.
lpszAttributes
"keyname=value" 형식의 특성 목록입니다. 이러한 문자열은 목록 끝에 두 개의 연속 null 종결자가 있는 null 종결자로 구분됩니다. 이러한 특성은 주로 새 데이터 원본에 대한 레지스트리로 이동하는 기본 드라이버별 항목입니다. 이 함수에 대한 ODBC API 참조에 언급되지 않은 중요한 키 중 하나는 새 데이터 원본의 이름을 지정하는 "DSN"("데이터 원본 이름")입니다. 나머지 항목은 새 데이터 원본에 대한 드라이버와 관련이 있습니다. 드라이버에서 사용자에게 새 값에 대한 대화 상자를 표시할 수 있으므로 일부 항목을 제공할 필요는 없는 경우가 많습니다. (hwndParent를 NULL로 설정하여 이 작업을 수행합니다.) 사용자에게 메시지가 표시되지 않도록 기본값을 명시적으로 제공할 수 있습니다.
ODBC 관리자를 사용하여 lpszDriver 매개 변수에 대한 드라이버 설명을 확인하려면
ODBC 관리자를 실행합니다.
추가를 클릭합니다.
그러면 설치된 드라이버 목록과 해당 설명이 표시됩니다. 이 설명을 lpszDriver 매개 변수로 사용합니다. 설명에 파일 이름 확장명 및 괄호를 포함하여 "Excel 파일(*.xls)"과 같은 전체 설명을 사용합니다.
또는 레지스트리 키 "ODBC 드라이버"(또는 Odbcinst.ini ODBC 드라이버] 섹션)의 모든 드라이버 항목 및 설명 목록이 포함된 레지스트리(또는 16비트 파일 Odbcinst.ini)를 검사할 수 있습니다.
lpszAttributes 매개 변수의 키 이름과 값을 찾는 한 가지 방법은 Odbc.ini 파일에서 이미 구성된 데이터 원본(ODBC 관리자가 구성한 데이터 원본)을 검사하는 것입니다.
lpszAttributes 매개 변수의 키 이름 및 값을 찾으려면
Windows 레지스트리 편집기를 실행하거나 16비트에서 Odbc.ini 파일을 엽니다.
다음 중 하나를 사용하여 ODBC 데이터 원본 정보를 찾습니다.
32비트에서 HKEY_CURRENT_USER\Software\ODBC\ODBC 키를 찾습니다. 왼쪽 창의 INI\ODBC 데이터 원본 입니다.
오른쪽 창에는 "pub: REG_SZ:<data source name>" 형식의 항목이 나열됩니다. 여기서 <데이터 원본 이름은> 사용하려는 드라이버에 대한 원하는 설정으로 이미 구성된 데이터 원본입니다. 원하는 데이터 원본(예: SQL Server)을 선택합니다. 문자열 "pub:" 다음 항목은 순서대로 lpszAttributes 매개 변수에 사용할 키 이름과 값입니다.
16비트인 경우 [<데이터 원본 이름>]으로 표시된 Odbc.ini 파일에서 섹션을 찾습니다.
이 줄 뒤의 줄은 "keyname=value" 형식입니다. lpszAttributes 매개 변수에 사용할 항목입니다.
사용하려는 특정 드라이버에 대한 설명서를 검사할 수도 있습니다. ODBC 관리자를 실행하여 액세스할 수 있는 드라이버에 대한 온라인 도움말에서 유용한 정보를 찾을 수 있습니다. 이러한 도움말 파일은 일반적으로 Windows NT, Windows 3.1 또는 Windows 95용 WINDOWS\SYSTEM 디렉터리에 배치됩니다.
ODBC 드라이버에 대한 온라인 도움말을 얻으려면
ODBC 관리자를 실행합니다.
추가를 클릭합니다.
드라이버 이름을 선택합니다.
확인을 클릭합니다.
ODBC 관리자가 해당 특정 드라이버에 대한 새 데이터 원본을 만들기 위한 정보를 표시하면 도움말을 클릭합니다. 이렇게 하면 해당 특정 드라이버에 대한 도움말 파일이 열립니다. 이 파일은 일반적으로 드라이버 사용에 관한 중요한 정보를 포함합니다.