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. 😞


Anmelden zum Antworten