다음을 통해 공유


CDataSource 클래스

공급자를 통해 데이터 원본에 대한 연결을 나타내는 OLE DB 데이터 원본 개체에 해당합니다.

구문

class CDataSource

요구 사항

헤더: atldbcli.h

멤버

메서드

속성 설명
닫기 연결을 닫습니다.
GetInitializationString 현재 열려 있는 데이터 원본의 초기화 문자열을 검색합니다.
GetProperties 연결된 데이터 원본에 대해 현재 설정된 속성의 값을 가져옵니다.
GetProperty 연결된 데이터 원본에 대해 현재 설정된 단일 속성의 값을 가져옵니다.
시작 호출자가 제공한 모니커 또는 CEnumerator 공급자를 사용하여 CLSIDProgID공급자(데이터 원본)에 대한 연결을 만듭니다.
OpenFromFileName 사용자가 제공한 파일 이름으로 지정된 파일에서 데이터 소스를 엽니다.
OpenFromInitializationString 초기화 문자열로 지정된 데이터 원본을 엽니다.
OpenWithPromptFileName 사용자가 이전에 만든 데이터 링크 파일을 선택하여 해당 데이터 원본을 열 수 있습니다.
OpenWithServiceComponents 데이터 링크 대화 상자를 사용하여 데이터 원본 개체를 엽니다.

설명

단일 연결에 대해 하나 이상의 데이터베이스 세션을 만들 수 있습니다. 이러한 세션은 .로 CSession표시됩니다. 로 세션을 CSession::Open만들기 전에 CDataSource::Open을 호출하여 연결을 열어야 합니다.

사용 CDataSource방법의 예제는 CatDB 샘플을 참조하세요.

CDataSource::Close

포인터를 해제하여 연결을 닫습니다 m_spInit .

구문

void Close() throw();

CDataSource::GetInitializationString

현재 열려 있는 데이터 원본의 초기화 문자열을 검색합니다.

구문

HRESULT GetInitializationString(BSTR* pInitializationString,
   bool bIncludePassword = false) throw();

매개 변수

pInitializationString
[out] 초기화 문자열에 대한 포인터입니다.

bIncludePassword
[in] true 문자열에 암호가 포함되어 있으면 이고, 그렇지 않으면 false.

Return Value

표준 HRESULT입니다.

설명

결과 초기화 문자열을 사용하여 나중에 이 데이터 원본 연결을 다시 열 수 있습니다.

CDataSource::GetProperties

연결된 데이터 원본 개체에 대해 요청된 속성 정보를 반환합니다.

구문

HRESULT GetProperties(ULONG ulPropIDSets,
   constDBPROPIDSET* pPropIDSet,
   ULONG* pulPropertySets,
   DBPROPSET** ppPropsets) const throw();

매개 변수

Windows SDK의 OLE DB 프로그래머 참조에서 IDBProperties::GetProperties를 참조하세요.

Return Value

표준 HRESULT입니다.

설명

단일 속성을 얻으려면 GetProperty를 사용합니다.

CDataSource::GetProperty

연결된 데이터 원본 개체에 대해 지정된 속성의 값을 반환합니다.

구문

HRESULT GetProperty(const GUID& guid,
   DBPROPID propid,
   VARIANT* pVariant) const throw();

매개 변수

guid
[in] 속성을 반환할 속성 집합을 식별하는 GUID입니다.

propid
[in] 반환할 속성의 속성 ID입니다.

pVariant
[out] 속성 값을 반환하는 GetProperty 변형에 대한 포인터입니다.

Return Value

표준 HRESULT입니다.

설명

여러 속성을 얻으려면 GetProperties를 사용합니다.

CDataSource::Open

또는 모니커를 사용하여 데이터 원본에 CLSIDProgID대한 연결을 열거나 CEnumerator 로케이터 대화 상자를 사용하여 사용자에게 메시지를 표시합니다.

구문

HRESULT Open(const CLSID& clsid,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();

HRESULT Open(const CLSID& clsid,
   LPCTSTR pName,
   LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();HRESULT Open(LPCTSTR szProgID,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();HRESULT Open(LPCTSTR szProgID,
   LPCTSTR pName,  LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();

HRESULT Open(const CEnumerator& enumerator,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();

HRESULT Open(const CEnumerator& enumerator,
   LPCTSTR pName,
   LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();

HRESULT Open(HWND hWnd = GetActiveWindow(),
   DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_WIZARDSHEET) throw();

HRESULT Open(LPCWSTR szProgID,
   DBPROPSET* pPropSet = NULL,
   ULONG nPropertySets = 1) throw();

HRESULT Open(LPCSTR szProgID,
   LPCTSTR pName,LPCTSTR pUserName = NULL,
   LPCTSTR pPassword = NULL,
   long nInitMode = 0) throw();

매개 변수

clsid
[in] CLSID 데이터 공급자의 형식입니다.

pPropSet
[in] 설정할 속성 및 값을 포함하는 DBPROPSET 구조의 배열에 대한 포인터입니다. Windows SDK의 OLE DB 프로그래머 참조에서 속성 집합 및 속성 그룹을 참조하세요.

nPropertySets
[in] pPropSet 인수에 전달된 DBPROPSET 구조체의 입니다.

pName
[in] 연결할 데이터베이스의 이름입니다.

pUserName
[in] 사용자의 이름입니다.

pPassword
[in] 사용자의 암호입니다.

nInitMode
[in] 데이터베이스 초기화 모드입니다. 유효한 초기화 모드 목록은 Windows SDK의 OLE DB 프로그래머 참조에서 초기화 속성을 참조하세요. nInitMode가 0이면 연결을 여는 데 사용되는 속성 집합에 초기화 모드가 포함되지 않습니다.

szProgID
[in] 프로그램 식별자입니다.

enumerator
[in] 호출자가 을 지정하지 않을 때 연결을 열기 위한 모니커를 가져오는 데 사용되는 CEnumerator 개체입니다 CLSID.

hWnd
[in] 대화 상자의 부모가 될 창의 핸들입니다. hWnd 매개 변수를 사용하는 함수 오버로드를 사용하면 서비스 구성 요소가 자동으로 호출됩니다. 자세한 내용은 비고를 참조하세요.

dwPromptOptions
[in] 표시할 로케이터 대화 상자의 스타일을 결정합니다. 가능한 값은 Msdasc.h를 참조하세요.

Return Value

표준 HRESULT입니다.

설명

hWnd 매개 변수를 사용하는 메서드 오버로드는 oledb32.dll 서비스 구성 요소와 함께 데이터 원본 개체를 엽니다. 이 DLL에는 리소스 풀링, 자동 트랜잭션 인리스트먼트 등의 서비스 구성 요소 기능 구현이 포함됩니다. 자세한 내용은 OLE DB 프로그래머 가이드의 OLE DB 참조를 참조하세요.

hWnd 매개 변수를 사용하지 않는 메서드 오버로드는 oledb32.dll 서비스 구성 요소를 사용하지 않고 데이터 원본 개체를 엽니다. 이러한 함수 오버로드로 열린 CDataSource 개체는 서비스 구성 요소의 기능을 사용할 수 없습니다.

예시

다음 코드에서는 OLE DB 템플릿을 사용하여 Jet 4.0 데이터 소스를 여는 방법을 보여 줍니다. Jet 데이터 소스를 OLE DB 데이터 소스로 처리합니다. 그러나 호출에는 Open 두 개의 속성 집합이 필요합니다. 하나는 DBPROPSET_DBINIT, 다른 하나는 DBPROPSET_JETOLEDB_DBINIT 설정하므로 DBPROP_JETOLEDB_DATABASEPASSWORD 설정할 수 있습니다.

CDBPropSet rgDBPropSet[2];  // Declare two property sets;
                            // set properties elsewhere as appropriate.

hr = m_DataSource.Open(szProgId, rgDBPropSet, 2);

CDataSource::OpenFromFileName

사용자가 제공한 파일 이름으로 지정된 파일에서 데이터 소스를 엽니다.

구문

HRESULT OpenFromFileName(LPCOLESTR szFileName) throw();

매개 변수

szFileName
[in] 일반적으로 데이터 소스 연결(.UDL) 파일의 이름입니다.

데이터 링크 파일(.udl 파일)에 대한 자세한 내용은 Windows SDK의 데이터 링크 API 개요를 참조하세요.

Return Value

표준 HRESULT입니다.

설명

이 메서드는 oledb32.dll에 있는 서비스 구성 요소를 사용하여 데이터 원본 개체를 엽니다. 이 DLL에는 리소스 풀링, 자동 트랜잭션 참여 등과 같은 서비스 구성 요소 기능의 구현이 들어 있습니다. 자세한 내용은 OLE DB 프로그래머 가이드의 OLE DB 참조를 참조하세요.

CDataSource::OpenFromInitializationString

사용자가 제공한 초기화 문자열로 지정된 데이터 원본을 엽니다.

구문

HRESULT OpenFromInitializationString(LPCOLESTR szInitializationString,
   bool fPromptForInfo= false) throw();

매개 변수

szInitializationString
[in] 초기화 문자열입니다.

fPromptForInfo
[in] 이 인수가 trueOpenFromInitializationString 설정된 경우 DBPROP_INIT_PROMPT 속성을 DBPROMPT_COMPLETEREQUIRED 설정하며, 이는 사용자에게 추가 정보가 필요한 경우에만 메시지가 표시되도록 지정합니다. 이는 초기화 문자열이 암호가 필요한 데이터베이스를 지정하지만 문자열에 암호가 포함되지 않은 경우에 유용합니다. 데이터베이스에 연결하려고 할 때 사용자에게 암호(또는 기타 누락된 정보)를 묻는 메시지가 표시됩니다.

기본값은 사용자에게 메시지가 표시되지 않도록 지정하는 값입니다 false(DBPROP_INIT_PROMPT DBPROMPT_NOPROMPT 설정).

Return Value

표준 HRESULT입니다.

설명

이 메서드는 oledb32.dll에 있는 서비스 구성 요소를 사용하여 데이터 원본 개체를 엽니다. 이 DLL에는 리소스 풀링, 자동 트랜잭션 참여 등과 같은 서비스 구성 요소 기능의 구현이 들어 있습니다.

CDataSource::OpenWithPromptFileName

이 메서드는 사용자에게 대화 상자를 표시한 다음 사용자가 지정한 파일을 사용하여 데이터 원본을 엽니다.

구문

HRESULT OpenWithPromptFileName(HWND hWnd = GetActiveWindow(   ),
   DBPROMPTOPTIONS dwPromptOptions = DBPROMPTOPTIONS_NONE,
   LPCOLESTR szInitialDirectory = NULL) throw();

매개 변수

hWnd
[in] 대화 상자의 부모가 될 창의 핸들입니다.

dwPromptOptions
[in] 표시할 로케이터 대화 상자의 스타일을 결정합니다. 가능한 값은 Msdasc.h를 참조하세요.

szInitialDirectory
[in] 로케이터 대화 상자에 표시할 초기 디렉터리입니다.

Return Value

표준 HRESULT입니다.

설명

이 메서드는 oledb32.dll에 있는 서비스 구성 요소를 사용하여 데이터 원본 개체를 엽니다. 이 DLL에는 리소스 풀링, 자동 트랜잭션 참여 등과 같은 서비스 구성 요소 기능의 구현이 들어 있습니다. 자세한 내용은 OLE DB 프로그래머 가이드의 OLE DB 참조를 참조하세요.

CDataSource::OpenWithServiceComponents

oledb32.dll에서 서비스 구성 요소를 사용하여 데이터 원본 개체를 엽니다.

구문

HRESULT OpenWithServiceComponents (const CLSID clsid,
   DBPROPSET* pPropset = NULL,
   ULONG ulPropSets = 1);

HRESULT OpenWithServiceComponents (LPCSTR szProgID,
   DBPROPSET* pPropset = NULL,
   ULONG ulPropSets = 1);

매개 변수

clsid
[in] CLSID 데이터 공급자의 형식입니다.

szProgID
[in] 데이터 공급자의 프로그램 ID입니다.

pPropset
[in] 설정할 속성 및 값을 포함하는 DBPROPSET 구조의 배열에 대한 포인터입니다. Windows SDK의 OLE DB 프로그래머 참조에서 속성 집합 및 속성 그룹을 참조하세요. 데이터 원본 개체가 초기화되면 속성은 데이터 원본 속성 그룹에 속해야 합니다. pPropset에서 동일한 속성이 두 번 이상 지정된 경우 사용되는 값은 공급자별 값입니다. ulPropSets가 0이면 이 매개 변수는 무시됩니다.

ulPropSets
[in] pPropSet 인수에 전달된 DBPROPSET 구조체의 입니다. 이 값이 0이면 공급자는 pPropset을 무시합니다.

Return Value

표준 HRESULT입니다.

설명

이 메서드는 oledb32.dll에 있는 서비스 구성 요소를 사용하여 데이터 원본 개체를 엽니다. 이 DLL에는 리소스 풀링, 자동 트랜잭션 참여 등과 같은 서비스 구성 요소 기능의 구현이 들어 있습니다. 자세한 내용은 OLE DB 프로그래머 가이드의 OLE DB 참조를 참조하세요.

참고 항목

OLE DB 소비자 템플릿
OLE DB 소비자 템플릿 참조