Datenbankproblem: MoveNext() geht einmal richtig!



  • Hallo,

    habe folgendes Problem. Ich möchte nachdem ich einen neuen Datensatz angewählt habe, die Werte aus der Tabelle ausgeben. Jetzt habe ich habe ein ganz merkwürdiges Problem..

    meine Funktion {
    DataUpdate(TRUE);
    m_pSet->moveNext();
    ....
    //daten aktualisiern
    m_feld1 = m_pSet->Feld1;
    ....
    //bis Feld 12
    DataUpdate(FALSE);

    Wenn ich diesen Code verwende, dann funzt das aber nur beim erstenmal Ausführen dieses Codes und danach aktualisiert er mir nur noch das Feld1? Muss ich da noch irgendwas anderes beachten wenn ich das so machen will, oder müsste das von Haus aus so funktionieren? Das Programm passiert auf einem Tut von 'VC++ 6.0' ''(Mist Buch vergessen, war so ein dicker Wälzer mit Schwarz,lila Band.. wem's weiter hilft ;))

    Schon mal Danke für irgendwelche Antworten.



  • Eigentlich sollte es so funktionieren, ich vermute, Du bewegst dich außerhalb
    der Grenzen des Recordsets.



  • Also manchmal kommt schon die Nachtricht (wohl von ner KLasse, denn ich hab die nicht geproggt) Das das ende des Recordsets erreicht wurde. Aber das würde erklären wenn ich nur 1 oder 2 Datensätze hätte. Im Moment habe ich 9 Stück und nur nach dem Initialisieren kann ich einmal die Funktion so aufrufen und das wars dann! Benutze ich hingegen die Standardflächen oben im Menü danach(Kennt ihr ja die da oben zur Nav da sind) dann geht es wieder? (Halt einmal!) Dann muss ja dann irgendwo ein Fehler meinerseits vorliegen!?

    Man so schwierig kann das doch nicht sein....

    Gruß

    Holger



  • ist das Recordset bei Aufruf der Funktion offen? Poste mal etwas Quelltext



  • Hallo,
    ich habe den Fehler nun selber heraus gefunden!! War ne ganz kleine Sache!

    void CLM2000View::OnButton1() 
    {
    m_pSet->MoveNext();
    //UpdateData(TRUE);	<<<--- Hier war der Fehler
    
    	CSliderCtrl* pSlider1 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER1);
    	pSlider1->SetPos(m_pSet->m_ch1);
    	CSliderCtrl* pSlider2 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER2);
    	pSlider2->SetPos(m_pSet->m_ch2);
    
    	CSliderCtrl* pSlider3 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER3);
    	pSlider3->SetPos(m_pSet->m_ch3);
    	CSliderCtrl* pSlider4 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER4);
    	pSlider4->SetPos(m_pSet->m_ch4);
    	CSliderCtrl* pSlider5 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER5);
    	pSlider5->SetPos(m_pSet->m_ch5);
    	CSliderCtrl* pSlider6 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER6);
    	pSlider6->SetPos(m_pSet->m_ch6);
    	CSliderCtrl* pSlider7 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER7);
    	pSlider7->SetPos(m_pSet->m_ch7);
    	CSliderCtrl* pSlider8 = (CSliderCtrl*) GetDlgItem(IDC_SLIDER8);
    	pSlider8->SetPos(m_pSet->m_ch8);
    	//sendDMX();
    	UpdateData(FALSE);
    }
    

Anmelden zum Antworten