Daten aus Datenbank in Combobox anzeigen lassen(ADO)
-
hi
kann mir jemand weiterhelfen,bitte?
Und zwar klappts das irgendwie nicht, dass ich Daten aus Datenbank in einer Combobox anzeigen lassen kann. Weiß nur nicht warum...BOOL Dilog::OnInitDialog() { CDialog::OnInitDialog(); try { _RecordsetPtr pRs("ADODB.Recordset"); Combobox1 rs; IADORecordBindingPtr picRs(pRs); //Provider=MSDASQL.1;Data Source=Adressen pRs->Open("SELECT * FROM Lieblingsfarbe", "dsn=Adressen", adOpenStatic, adLockOptimistic, adCmdText); TESTHR(picRs->BindToRecordset(&rs)); while (!pRs->EndOfFile) { // Bezeichnung in die Combobox schreiben int nIdx = m_ctlComboLieblingsfarbe.AddString(rs.m_szLieblingsfarbe); // Status merken, damit man später die richtige Farbe raussuchen kann. m_ctlComboLieblingsfarbe.SetItemData(nIdx, rs.lLieblingsfarbeStatus); //printf("Name = %s %s\n", //(rs.lLieblingsfarbeStatus == adFldOK ? rs.m_szLieblingsfarbe: "<Error>")); // Move to the next row of the Recordset. // Fields in the new row will automatically be // placed in the Combobox1 C++ instance variables. pRs->MoveNext(); } } catch (_com_error &e ) { e; } // Aktuelles Datum anzeigen m_oledtAuswertedatum = COleDateTime::GetCurrentTime(); m_oledtVersuchsdatum = COleDateTime::GetCurrentTime(); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben }
und in der OnDraw Funktion muss doch auch sowas wie das hier stehen, dass was angezeigt wird , oder??
void CAdoDatabaseView::OnDraw(CDC* pDC) { CAdoDatabaseDoc* pDoc = GetDocument(); if ( !m_pDialog ) { m_pDialog = new Dilog; m_pDialog->Create( IDD_DIALOG1 , this ); m_pDialog->m_strLastName = m_strLastName; m_pDialog->m_strFirstName = m_strFirstName; m_pDialog->m_strAge = m_strAge; m_pDialog->UpdateData(FALSE); m_pDialog->m_pView = this; } m_pDialog->ShowWindow( SW_SHOW ); ASSERT_VALID(pDoc); // ZU ERLEDIGEN: Hier Code zum Zeichnen der ursprünglichen Daten hinzufügen }
DANKE
-
Ich sitz zusammen mit Stgt an dem Problem:
Er fliegt in der Zeile mit einer Exception aus der Kurve:
TESTHR(picRs->BindToRecordset(&rs));
Soweit komme ich mit dem Debugger noch, aber dann hab ich keine Ahnung, wie und wo man nach dem Fehler suchen soll.