CRecordset, menge der Zeilen?

Reticent

Erfahrenes Mitglied
Hallo Alle zusammen,


weiss jemand wo das Ergebniss steht, wenn ich das mache:
Code:
crs_RecordSet.Open(CRecordset::forwardOnly, "SELECT COUNT(*) FROM Tabelle1", CRecordset::readOnly)

wo finde ich denn jetzt das Ergebniss von dem SELECT ?
 
Hi.

Das Ergebnis ist natürlich in dem RecordSet. Du kannst die einzelnen Records durchlaufen und auf die Felder jedes Records zugreifen.
C++:
CString count;

if (!crs_RecordSet.IsEOF()) {
  rs.GetFieldValue(0, count);
}
Gruß
 
ich hab's so versucht:

Code:
	crs_RecordSetCount.Move(0);
	CDBVariant var;
	short index=0;
	crs_RecordSetCount.GetFieldValue(index,var);
	double count=var.m_dblVal;
	AfxMessageBox((int)count);
kommt Fehler. WEnn ich index auf 1 setze, sagt, der index is falsch. MAaannnnn..

gleich versuche ich den Vorschlag.
 
deepthroat hat gesagt.:
Hi.

Das Ergebnis ist natürlich in dem RecordSet. Du kannst die einzelnen Records durchlaufen und auf die Felder jedes Records zugreifen.
C++:
CString count;

if (!crs_RecordSet.IsEOF()) {
  rs.GetFieldValue(0, count);
}
Gruß
Compiler schreit : error C2668: 'CRecordset::GetFieldValue': Mehrdeutiger Aufruf einer überladenen Funktion

wenn ich aber mit schort index=0; versuche, geht auch net :( Kommt Debug Assertion failed
 
Zuletzt bearbeitet:
so sieht die Meldung aus, siehe Anhang. Die Anwendung bleibt auf der Zeile stehen:
{ ASSERT(IsOpen()); return m_bEOF; }
 

Anhänge

  • 24991attachment.jpg
    24991attachment.jpg
    29,7 KB · Aufrufe: 19
Zuletzt bearbeitet:
Mysterium ist gelöst

Mein Problem lag in der SQL-Abfrage.

um der Anzahl der Zeiler schnell zu bekommen, soll man das hier machen:
Code:
	crs_RecordSet.Open(CRecordset::snapshot, "SELECT COUNT(*) AS ROWCOUNT FROM Tabelle1", CRecordset::readOnly);

	CString count = "";
	crs_RecordSetCount.GetFieldValue("ROWCOUNT", count);
Das "AS ROWCOUNT" hat gefehlt. Man muss einfach einen Namen für die Empfangtabelle angeben. Dann wird das Ergebniss dort abgelegt. Danach einfach mit GetFieldValue auslesen.
 
Zurück