Anfängerproblem? CRecordset liefert nur 1 Datensatz...

Lawnmower

Grünschnabel
Hi,
hab da ein Problem durch das ich schon an mir selbst zweifle. Hab vor einiger Zeit mit MFC angefangen und will jetzt ODBC DB-Zugriff implementieren.

Ich greife mit meinem CRecordset mit nem schnellen Open und einem Select-Statement auf meine Tabelle zu:
Code:
CRecordset rs( &db );
rs.SetRowsetSize(9999999);
rs.Open(-1, "SELECT * FROM tbl_verkaufer", CRecordset::executeDirect);
if (!rs.IsOpen())
{
	AfxMessageBox("Fehler beim Öffnen des SQL Statements!");
	return;
}

int i = rs.GetRowsFetched();
		
CComboBox *myComboBox = (CComboBox*)this->GetDlgItem(IDC_COMBO1);
while (i--)
{
	CString name;
	rs.GetFieldValue("name", name);
	myComboBox->AddString(name);
	rs.Move(1);
}

Problem: ich bekomme IMMER nur 1 Datensatz zurück. Warum? Wie kann ich den Recordset dazu bringen, immer gleich alle Ergebnisse zu speichern? Ich hab praktisch die ganze MSDN durchsucht und die Hinweise dort führten mich immer mehr zu dem Code hier aber lösten es nicht...

Irgendwelche Ideen? Danke schonmal im Voraus...

René
 
Hi

Ich hab dazu das Datagrid von VB eingebunden ... da kannst du den recordset einfach dem Datagrid zuweisen und voila.. alle gefundenen Einträge erscheinen.
 
Hi,

naja ich e ja in C++/MFC....

Aber das Problem hat sich schon gelöst, mein Fehler war, dass ich per getRowsetSize die Zahl der Ergebnisse beziehen wollte. Da dies aber 1 zurückliefert, konnte ich natürlich mit meiner Schleife nur einen Datensatz beziehen.

Richtig isses natürlich, zu iterieren bis isEOF() true zurückgibt...

René
 
hab das auch in C++ gemacht .. aber da die Datagrids von c++ (zumindest die von MS) nich so toll sind.. hab ich eben das von VB eingebunden
 

Neue Beiträge

Zurück