Den Lauf Schaltflächenhandler hinzufügen

Sie müssen eine Handlerfunktion für die Schaltfläche " Ausführen " hinzufügen, die Sie in der Dialogfeld Ressourcendatei erstellt.

Erstellen Sie einen Lauf Schaltflächenhandler

Um den Ereignishandler zu erstellen, müssen Sie die folgenden OLE DB-Consumer-Vorlage-Klassen verwenden.:

Jede dieser Klassen entspricht ein COM-Objekt im Anbieter.

Fügen Sie folgenden Code hinzu. In diesem Ereignishandlercode akzeptiert das CCommand -Objekt eine CProvider -Klasse als Vorlagenparameter. Dieser Parameter stellt die Zugriff auf die Daten vom Anbieter verwendeten Bindungen.

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

void CTestProvDlg::OnRun()
{
   CCommandlt;CAccessor <CProvider> > Tabellen;
   CDataSource Quelle;
   CSession Sitzung;

Wenn (Quelle.Open("MyProvider.MyProvider.1", null)! = S_OK)
      Rückkehr;

Wenn (Sitzung.Open(Source)! = S_OK)
      Rückkehr;

Wenn (Tabelle.Offen (Session, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
      Rückkehr;

während (Tabelle.MoveNext() == S_OK)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }
}

Der Ereignishandler verwendet die drei offene Ausschreibungen, unten, die drei COM-Objekten in der Anbieter entsprechen. Es sucht unter Verwendung der ProgIDdes Anbieters. Erhalten Sie die Programm-ID aus der Systemregistrierung oder anhand des Anbieters rgs Datei ( MyProvider.rgs für den einfachen Anbieter bei der Implementierung eines einfachen schreibgeschützten Anbietersangezeigt). Der Anbieter öffnet eine Textdatei namens gloo.txt , die enthält einer gerade Anzahl von Zeichenfolgen getrennt durch Beförderung gibt. Offene übergibt den Pfadnamen der Datei an den Anbieter als Zeichenfolge an den Anbieter.

   wenn (Quelle.Open("MyProvider.MyProvider.1", null)! = S_OK)
      Rückkehr;

Wenn (Sitzung.Open(Source)! = S_OK)
      Rückkehr;

Wenn (Tabelle.Offen (Session, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
      zurück

Zum Abrufen der Daten, ruft der Ereignishandler table.MoveNext , wie unten gezeigt. Wenn keine weiteren Zeilen vorhanden sind, der Anbieter DB_S_ENDOFROWSET zurückgegeben, und die Schleife beendet. Der Schleifenanweisung-Steuerelement vergleicht den Rückgabewert mit S_OK. Wenn der Code das SUCCEEDED -Makro verwendet, würde die Schleife nicht beendet, da die DB_S_ENDOFROWSET einen erfolgreichen Rückgabecode betrachtet wird.

   während (Tabelle.MoveNext() == S_OK)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }

Der Verbraucher ist nun bereit, mit der einfache Anbieter (gebaut in Implementieren eines einfachen schreibgeschützten Anbieters) testen.

Das nächste Thema zeigt, wie den Verbraucher für die Verwendung mit einer verstärkten Anbieter ändern, die IRowsetLocate -Schnittstelle implementiert.

Zurück zur Implementierung einer OLE DB-Vorlagen Verbraucher

Index