AdoDatenbank



  • Hallo
    habe mit dem Buch "Visual C++ in 21 Tagen" eine AdoDatenbank erstellt.
    Läuft auch prima.
    Möchte aber gerne auch nach Daten in der Datenbank suche.

    Zuerst möchte ich ein Dialogfeld hinzufügen, das man über das Menü aufrufen kann.
    In diesem Dialogfeld soll man z.b. den Name, der Person eingeben, die man sucht.
    Wenn man im Dialogfeld auf den Button "Suchen" drückt soll im Programm der gesuchte Datensatz angezeigt werden.
    Mit dem Dialogfeld aufrufen habe ich kein Problem aber wie kann ich das andere machen?
    Mfg Kobold



  • Hallo
    so weit bin ich bis jetzt, doch wie kann ich jetzt die passenden Daten anzeigen lassen. Ich glaube ich weiss wo der Code hin muss (habe es markiert) aber ich weiss nicht wie er aussehen muss. Habe zum Ausprobieren einfach OnDatenLetzter(); gemacht und das klappt.
    Hier ist der Code:

    CSuchenDlg dlg;
    	int result = dlg.DoModal();
    
    	if (result == IDOK)
    		AfxMessageBox("Hallo");
    
    	if (dlg.m_suchenValue == "")
       {
          AfxMessageBox("Geben Sie einen zu suchenden Namen ein.", MB_OK, 0);
          return;
       }
    
       try 
       {
          _ConnectionPtr pConn = NULL;
          _RecordsetPtr pRS = NULL;
          _bstr_t sql;
    
          // Connection- und Recordset-Objekte erzeugen
          if (FAILED(pConn.CreateInstance(__uuidof(Connection)))) 
          {
             AfxMessageBox("Connection-Instanz konnte nicht erzeugt werden.", 
               MB_OK | MB_ICONEXCLAMATION, 0);
             return;
          }
    
          if (FAILED(pRS.CreateInstance(__uuidof(Recordset)))) 
          {
             AfxMessageBox("Recordset-Instanz konnte nicht erzeugt werden.", 
               MB_OK | MB_ICONEXCLAMATION, 0);
             return;
          }
    
          // die Datenbankverbindung öffnen
          pConn->Open("Serverdb", "", "", adConnectUnspecified);
    
          sql = "SELECT * FROM Adressen WHERE LastName LIKE '%" 
                   + dlg.m_suchenValue + "%'";
    
          // den Namen nachschlagen
          pRS->Open(sql, pConn->GetConnectionString(), 
               adOpenStatic, adLockReadOnly, adCmdText);
    
          if (!pRS->EndOfFile) 
          {
    		 OnDatenLetzter();   // Hier muss der Code verändert werden, sodass der gefundene Datensatz angezeigt wird.
    
          }
          else
          {
             AfxMessageBox("Angestellter nicht gefunden.", MB_OK, 0);
          }
    
          // Verbindung schliessen
          pConn->Close();
       }
       catch (_com_error &e) {
          CString msg;
          msg = "Fehlerbeschreibung = ";
          msg.Append(e.Description());
          AfxMessageBox(msg, MB_OK | MB_ICONEXCLAMATION, 0);
       }
    

    Mfg Kobold


Anmelden zum Antworten