การสร้างตัวผู้บริโภค DB OLE

คุณสามารถใช้ATL COM AppWizardและATL วัตถุ ตัวช่วยสร้างเพื่อสร้างการบริโภค OLE DB แม่?

การสร้างโครงการ ATL สำหรับผู้บริโภคการ OLE DB

  1. จากเมนูแฟ้มเลือกNew กล่องโต้ตอบใหม่ปรากฏขึ้น?

  2. บนแท็บโครงการเลือกATL COM AppWizard?

    ชื่อโครงการบนแท็บโครงการแล้วคลิกตกลง AppWizard COM ATL ปรากฏ?

  3. ATL COM AppWizard เลือกชนิดโครงการ?

  4. คลิกเสร็จสิ้นแล้วOK?

ใช้ตัวช่วยสร้างวัตถุ ATL ถัดไป?

การใช้ตัวช่วยสร้างวัตถุ ATL

  1. จากเมนูแทรกเลือกวัตถุ ATL ใหม่ ตัวช่วยสร้างวัตถุ ATL ปรากฏขึ้น?

  2. ในบานหน้าต่างด้านซ้าย เลือกเข้าถึงข้อมูล ไอคอนผู้บริโภคปรากฏในบานหน้าต่างด้านขวา?

  3. เลือกไอคอนของผู้บริโภคและคลิกถัดไป ปรากฏกล่องโต้ตอบคุณสมบัติตัวช่วยสร้างวัตถุ ATL ?

ใช้ตัวช่วยสร้างวัตถุ ATL การตั้งค่าคุณสมบัติสำหรับผู้บริโภคของคุณ?

การตั้งค่าคุณสมบัติของผู้บริโภคโดยใช้ตัวช่วยสร้างวัตถุ ATL

  1. ในกล่องโต้ตอบคุณสมบัติตัวช่วยสร้างวัตถุ ATLคลิกปุ่มเลือกแหล่งข้อมูล กล่องโต้ตอบสร้าง Datalink ใหม่ปรากฏขึ้น?

  2. ในกล่องโต้ตอบสร้างใหม่ Datalinkเลือกการ OLE DB Provider และตัวเลือกที่เหมาะสม การรวม:
    • สถานที่และแหล่งข้อมูลสำหรับข้อมูลที่จะใช้ โดยผู้ให้บริการ?

    • ID เข้าสู่ระบบและรหัสผ่านสำหรับแหล่งข้อมูลของคุณ?

    หลังจากเลือกผู้ให้บริการของคุณและการตั้งค่าอื่น ๆ คลิกทดสอบการเชื่อมต่อเพื่อตรวจสอบการเลือกทำในหน้ากล่องโต้ตอบก่อนหน้านี้ ถ้ากล่องผลลัพธ์รายงาน PASSED คลิกเสร็จสิ้นเพื่อสร้างการเชื่อมโยงข้อมูล กล่องโต้ตอบเลือกตารางในฐานข้อมูลปรากฏขึ้น?

  3. ในกล่องโต้ตอบเลือกตารางฐานข้อมูลใช้ตัวควบคุมแผนภูมิเพื่อเลือกตาราง แบบสอบถาม หรือกระบวนงานที่เก็บไว้ และคลิกตกลง คุณกลับไปยังกล่องโต้ตอบคุณสมบัติตัวช่วยสร้างวัตถุ ATL?

  4. กล่องโต้ตอบการกรอกชื่อชื่อย่อคลาสเข้าถึงและแฟ้ม H สี่สุดท้ายจะยึดตามชื่อย่อ คุณสามารถแก้ไขชื่อเหล่านี้ได้ถ้าต้องการ?

  5. ตัวช่วยสร้างสร้างแบบCCommand-จากผู้บริโภค โดยค่าเริ่มต้น ถ้าคุณต้องการCTable-ใช้ผู้บริโภค เลือกปุ่มตาราง?

  6. เลือกการเปลี่ยนแปลงแทรกและลบเพื่อรองรับการเปลี่ยนแปลง การแทรก และลบระเบียนใน rowset ถ้าจำเป็น?

  7. คลิกตกลง?

Generators ที่ช่วยสร้างคลาสการเข้าถึงและคำสั่ง (หรือตาราง) คลาส ดังที่แสดงในตัวอย่างผลด้านล่าง เรียนคำสั่งประกอบด้วยรหัสการเปิดแหล่งข้อมูลและ rowset ที่คุณระบุไว้ในตัวช่วยสร้าง เข้าถึงคลาประกอบด้วยแผนที่คอลัมน์สำหรับตารางในฐานข้อมูลคุณเลือก?

// Product.H : Declaration of the CProduct class
#ifndef __PRODUCT_H_
#define __PRODUCT_H_
class CProductAccessor
{
public:
   LONG m_ProductID;   // Number automatically assigned to new product.
   TCHAR m_ProductName[41];   // Number automatically assigned to new product.
   LONG m_SupplierID;   // Same entry as in Suppliers table.
   LONG m_CategoryID;   // Same entry as in Categories table.
   TCHAR m_QuantityPerUnit[21];   // (e.g., 24-count case, 1-liter bottle).
   DB_NUMERIC m_UnitPrice;   // (e.g., 24-count case, 1-liter bottle).
   SHORT m_UnitsInStock;   // (e.g., 24-count case, 1-liter bottle).
   SHORT m_UnitsOnOrder;   // (e.g., 24-count case, 1-liter bottle).
   SHORT m_ReorderLevel;   // Minimum units to maintain in stock.
   VARIANT_BOOL m_Discontinued;   // Yes means item is no longer available.

BEGIN_COLUMN_MAP(CProductAccessor)
   COLUMN_ENTRY(1, m_ProductID)
   COLUMN_ENTRY(2, m_ProductName)
   COLUMN_ENTRY(3, m_SupplierID)
   COLUMN_ENTRY(4, m_CategoryID)
   COLUMN_ENTRY(5, m_QuantityPerUnit)
   COLUMN_ENTRY(6, m_UnitPrice)
   COLUMN_ENTRY(7, m_UnitsInStock)
   COLUMN_ENTRY(8, m_UnitsOnOrder)
   COLUMN_ENTRY(9, m_ReorderLevel)
   COLUMN_ENTRY_TYPE(10, DBTYPE_BOOL, m_Discontinued)
END_COLUMN_MAP()
DEFINE_COMMAND(CProductAccessor, _T(" \
   SELECT \
      ProductID, \
      ProductName, \
      SupplierID, \
      CategoryID, \
      QuantityPerUnit, \
      UnitPrice, \
      UnitsInStock, \
      UnitsOnOrder, \
      ReorderLevel, \
      Discontinued  \
      FROM Products"))};
class CProduct : public CCommand<CAccessor<CProductAccessor> >
{
public:
   HRESULT Open()
   {
      HRESULT      hr;
      hr = OpenDataSource();
      if (FAILED(hr))
         return hr;
      return OpenRowset();
   }
   HRESULT OpenDataSource()
   {
      HRESULT      hr;
      CDataSource db;
      CDBPropSet   dbinit(DBPROPSET_DBINIT);
      dbinit.AddProperty(DBPROP_INIT_DATASOURCE, OLESTR("OLE_DB_NWind_Jet"));
      dbinit.AddProperty(DBPROP_INIT_PROMPT, (short)4);
      dbinit.AddProperty(DBPROP_INIT_LCID, (long)1033);
      hr = db.Open(_T("MSDASQL"), &dbinit);
      if (FAILED(hr))
         return hr;
      return m_session.Open(db);
   }
   HRESULT OpenRowset()
   {
      // Set properties for open
      CDBPropSet   propset(DBPROPSET_ROWSET);
      propset.AddProperty(DBPROP_IRowsetChange, true);
      propset.AddProperty(DBPROP_UPDATABILITY, DBPROPVAL_UP_CHANGE);
      return CCommand<CAccessor<CProductAccessor> >::Open(m_session, NULL, &propset);
   }
   CSession   m_session;
};
#endif // __PRODUCT_H_

กลับไปโดยใช้แม่แบบ OLE DB เพื่อผู้บริโภค

Index