다음을 통해 공유


ATL OLE DB 소비자 마법사

업데이트: 2007년 11월

이 마법사에서는 지정된 OLD DB 공급자를 통해 지정된 데이터 소스에 액세스하는 데 필요한 데이터 바인딩으로 OLE DB 소비자 클래스를 설정합니다.

참고:

Class 및 .h 파일 필드에 이름을 입력하기 전에 데이터 소스 단추를 클릭하여 데이터 소스를 선택해야 합니다.

  • 데이터 소스
    데이터 소스 단추를 사용하면 지정된 OLD DB 공급자를 사용하여 지정된 데이터 소스를 설정할 수 있습니다. 이 단추를 클릭하면 데이터 연결 속성 대화 상자가 나타납니다. 연결 문자열 빌드 및 데이터 연결 속성 대화 상자에 대한 자세한 내용은 Windows SDK 설명서의 데이터 연결 API 개요를 참조하십시오.

    참고:

    이전 릴리스에서는 Shift 키를 누른 채 데이터 소스 단추를 클릭하면 파일 열기 대화 상자가 열려 .udl 파일을 선택할 수 있었습니다. 이 기능은 이제 지원되지 않습니다.

    이 대화 상자에는 다음 네 가지 탭이 있습니다.

    • 공급자

    • 연결 탭

    • 고급 탭

    • 모두 탭

  • Class
    데이터 소스를 선택하면 선택한 테이블 또는 저장 프로시저를 기반으로 하는 기본 클래스 이름이 이 상자에 입력됩니다. 아래의 데이터 원본 선택을 참조하십시오. 클래스 이름을 편집할 수 있습니다.

  • .h 파일
    데이터 소스를 선택하면 선택한 테이블 또는 저장 프로시저를 기반으로 하는 기본 헤더 클래스 이름이 이 상자에 입력됩니다. 아래의 데이터 원본 선택을 참조하십시오. 헤더 파일의 이름을 편집하거나 기존 헤더 파일을 선택할 수 있습니다.

  • 특성 사용
    이 옵션은 특성 또는 템플릿 선언 중 어느 것을 사용하여 소비자 클래스를 만들 것인지 지정합니다. 이 옵션을 선택하면 템플릿 선언 대신 특성이 사용됩니다. 기본값입니다. 이 옵션 선택을 취소하면 특성 대신 템플릿 선언이 사용됩니다.

    • 테이블의 소비자 형식을 선택하는 경우 마법사는 db_sourcedb_table 특성을 사용하여 테이블 및 테이블 접근자 클래스 선언을 만들고 db_column을 사용하여 열 맵을 만듭니다. 예를 들면 다음과 같습니다.

      // Inject table class and table accessor class declarations
      [
          db_source("<initialization_string>"),
          db_table("dbo.Orders")
      ]
      ...
      // Column map
          [ db_column(1, status=m_dwOrderIDStatus,         length=m_dwOrderIDLength) ] LONG m_OrderID;
          [ db_column(2, status=m_dwCustomerIDStatus,         length=m_dwCustomerIDLength) ] TCHAR m_CustomerID[6];
          ...
      

      마법사는 CTable 템플릿 클래스를 사용하여 테이블 및 테이블 접근자 클래스를 선언하고 BEGIN_COLUMN_MAP 및 END_COLUMN_MAP 매크로를 사용하여 열 맵을 만들지 않습니다. 예를 들면 다음과 같습니다.

      // Table accessor class
      class COrdersAccessor;
      // Table class
      class COrders : public CTable<CAccessor<COrdersAccessor> >;
      ...
      // Column map
      BEGIN_COLUMN_MAP(COrderDetailsAccessor)
          COLUMN_ENTRY_LENGTH_STATUS(1, m_OrderID,         m_dwOrderIDLength, m_dwOrderIDStatus)
          COLUMN_ENTRY_LENGTH_STATUS(2, m_CustomerID,         m_dwCustomerIDLength, m_dwCustomerIDStatus)
          ...
      END_COLUMN_MAP()
      
    • 명령의 소비자 형식을 선택하는 경우 마법사는 db_sourcedb_command 특성을 사용하고 db_column을 사용하여 열 맵을 만듭니다. 예를 들면 다음과 같습니다.

      [
          db_source("<initialization_string>"),
          db_command("SQL_command")
      ]
      ...
      // Column map using db_column is the same as for consumer type of 'table'
      

      마법사는 명령 클래스의 .h 파일에서 명령 및 명령 접근자 클래스 선언을 사용하지 않습니다. 예를 들면 다음과 같습니다.

      Command accessor class:
      class CListOrdersAccessor;
      Command class:
      class CListOrders : public CCommand<CAccessor<CListOrdersAccessor> >;
      ...
      // Column map using BEGIN_COLUMN_MAP ... END_COLUMN_MAP is the same as
      // for consumer type of 'table'
      

    자세한 내용은 Basic Mechanics of Attributes을 참조하십시오.

  • 형식
    이 라디오 단추 중 하나를 선택하여 소비자 클래스가 CTable 또는 CCommand(기본값) 중 어디에서 파생될지를 지정합니다.

    • 테이블
      CTable 또는 db_table을 사용하여 테이블과 테이블 접근자 클래스 선언을 만들려면 이 옵션을 선택합니다.

    • 명령
      CCommand 또는 db_command를 사용하여 명령 및 명령 접근자 클래스 선언을 만들려면 이 옵션을 선택합니다. 이 옵션은 기본적으로 선택됩니다.

  • 지원
    소비자에서 지원하는 업데이트 종류를 지정하려면 이 확인란을 선택합니다. 기본적으로 아무 것도 선택되어 있지 않습니다. 다음 각 옵션은 DBPROP_IRowsetChange를 설정하고 속성 집합 맵에서 DBPROP_UPDATABILITY에 대한 적절한 항목을 설정합니다.

    • 변경
      소비자가 행 집합에서 행 데이터 업데이트를 지원하도록 지정합니다.

    • 삽입
      소비자가 행 집합에 행 삽입을 지원하도록 지정합니다.

    • 삭제
      소비자가 행 집합에서 행 삭제를 지원하도록 지정합니다.

참고 항목

작업

ATL OLE DB 소비자 추가

개념

코드 마법사로 기능 추가

참조

연결 문자열 및 데이터 연결(OLE DB)