Abfrage von Daten aus DB



  • Hallo alle zusammen,

    ich knabbere immer noch an meiner DB. 😞
    Hier mein aktuelles Problem:
    ich will anhand einer Nr (ist auch Primärschlüssel) einen Eintrag in der DB finden.
    Die Nr wird vom Benutzer eingegeben und es soll der dazugehörige Rest (Name, Vorname etc) gefunden und ausgegeben werden.
    Das ganze baut auf einer dialogfeldbasierten Anwendung und einem CRecordset auf.
    Ich habe versucht per m_strFilter diesen Eintrag zu bekommen.Leider erhalte ich nicht die korrekten Werte zu meiner eingegebenen Nr. (es gibt mir immer den ersten Eintrag der DB wieder).

    Wie stelle ich es an, dass ich die entsprechenden Daten zu meiner eingegebenen Nr erhalte?



  • Poste mal ein wenig Code von der Suche...



  • oh, wusst' ich doch, dass ich da noch was vergessen hatte...
    hier also ein Auszug meiner Suche (ein Button wird angeklickt um das Suchen zu starten)

    CMyDb *m_db //Pointer auf Db holen
    //alle anderen vorkommenden Variablen sind deklariert, habe sie aber hier nicht nochmal extra angegeben
    m_db = new CDbSet(NULL);
    UpdateData(true); //hole den eingetragenen Wert
    m_db->m_strFilter = m_db->m_Nr = m_lPnr;//setze Filter
    m_db->Open(CRecordset::snapshot,NULL); //öffne Db
    //setze die entsprechenden Variablen und gebe sie aus
    m_sNachname = m_db->m_Nachname;	
    SetDlgItemText(IDC_NACHNAME,m_sNachname);
    m_sVorname = m_db->m_Vorname;
    SetDlgItemText(IDC_VORNAME,m_sVorname);
    

    Irgendwo muss ich was übersehen, weiss nur nicht wo 😕
    (Ist das erstemal, das ich mich mit Db für ein Programm auseinandersetze)



  • Was machst du den bitteschön mit dem Filter????
    Probiers mal damit:

    CString sFilert;
    sFilter.Format("Nr = %s",m_1Pnr);
    m_strFilter = sFilter;
    

    Ich habs nicht selbst ausprobiert, aber müsste so iregenwie gehen.



  • Was machst du den bitteschön mit dem Filter????

    Nunja, das hatte ich irgendwo gefunden und es dann so übernommen.

    Werde deinen Vorschlag nachher mal ausprobieren. Danke



  • @freakSkater
    Habe es ausprobiert.
    Nun stürtzt mein Programm ab (mit "Fehler in Anwendung"-Meldung)



  • Habe mich am WE mal mit dem Debugger auseinandergesetzt....dort hat sich dann auch herausfinden lassen woran as lag, dass der Filter nicht funktionierte....die Variable war als long definiert. Bei der Umwandlung in einen CString für den Filter wurde nicht das gewünschte Ergebnis erreicht..mit Integer funktioniert es jetzt 😃

    Dank an all jene, die mir geholfen haben den Filter besser zu verstehen und anzuwenden.


Anmelden zum Antworten