Çalıştır düğmesini işleyicisi ekleme

İletişim kaynak dosyada oluşturulan Çalıştır düğmesi için bir işleyici işlevi eklemelisiniz.

Çalıştır düğmesini işleyicisi oluşturmak için

İşleyici oluşturmak için aşağıdaki ole db tüketici şablon sınıfları kullanın:

Bu sınıfların her biri bir com nesnesi sağlayıcısındaki karşılık gelir.

Aşağıdaki kodu ekleyin. Bu işleyici kodu, CCommand nesne bir CProvider sınıfı bir şablona parametre olarak alır. Bu parametre veri erişim sağlayıcı tarafından kullanılan bağlantıları temsil eder.

///////////////////////////////////////////////////////////////////////
/ / TestProvDlg.cpp

void CTestProvDlg::OnRun()
{
   CCommandlt;CAccessor <CProvider> > Tablo;
   CDataSource kaynağı;
   CSession oturumu;

Eğer (kaynak.Open("MyProvider.MyProvider.1", null)! = s_ok)
      return;

Eğer (oturum.Open(source)! = s_ok)
      return;

Eğer (tablo.Açık (oturumu, _T("c:\\public\\testprf2\\gloo.txt"))! = s_ok)
      return;

(tablo.MoveNext() == s_ok)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }
}

İşleyici aşağıda gösterilen üç Açık arama sağlayıcısı üç com nesnelerine karşılık kullanır. Bu sağlayıcı, ProgIDkullanarak bulur. ProgID sistem kayıt defterinden veya sağlayıcı bakarak elde edebilirsiniz rgs Dosya ( MyProvider.rgs basit bir erişimle sağlayıcı uygulamagösterilen basit sağlayıcısı). Sağlayıcı adlı bir metin dosyası açılır gloo.txt , çift numaralı satır sonu dizeleri içeren döndürür. Açık dosya yol adı sağlayıcısı için sağlayıcı dizesi olarak geçer.

   eğer (kaynak.Open("MyProvider.MyProvider.1", null)! = s_ok)
      return;

Eğer (oturum.Open(source)! = s_ok)
      return;

Eğer (tablo.Açık (oturumu, _T("c:\\public\\testprf2\\gloo.txt"))! = s_ok)
      geri dönmek

Veri işleyicisi çağrılarını almaya table.MoveNext , aşağıda gösterildiği gibi. Daha fazla satır yok olduğunda, db_s_endofrowset sağlayıcının döndürdüğü ve döngü sona erer. Döngü denetim beyanı için s_okdönüş değeri karşılaştırır. Eğer başarılı makro kodu kullanıldığında, db_s_endofrowset başarılı bir dönüş kodu kabul edildiği için döngü bitirmek değil.

   (tablo.MoveNext() == s_ok)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }

Tüketici artık basit sağlayıcısı ( basit bir erişimle sağlayıcı uygulamainşa) ile test etmek hazırdır.

Sonraki konu tüketici IRowsetLocate arabirimi uygulayan bir Sağlayıcı Gelişmiş ile kullanmak için değişiklik gösterir.

Bir ole db şablon tüketici geri uygulamak için

Index