![]() |
Anzeige:
|
|
|||||||
| C/C++, Visual C++, Visual C++.NET Fragen und Antworten zu C/C++, Visual C++ und Visual C++.NET |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 01.09.2005
Beiträge: 83
|
Hallo,
ich habe in meinem Programm eine Klasse CdbKurseStatus (von CRecordset) erstelt. Die Klasse hat nur eine Tabelle von der DB zugewiesen bekommen und zwar "KurseStatus". Code:
-------------------------- | ID | Kurse | Status | IP | -------------------------- Meinen Problem ist wenn ich nur nach dem einen Spalte abfrage (im Beispiel "Status") dann bekomme ich die Fehlermeldung "Ungültiger Deskriptorindex". Warum ?? Code:
const CString strSQLKurse = "SELECT DISTINCT Status FROM KurseStatus"; CdbKurseStatus rsKurseStatus(NULL); // von CRecordset // Tabelle "KurseStatus" mit SQL-Anweisung öffnen rsKurseStatus.Open(CRecordset::snapshot, _T(strSQLKurse), CRecordset::none); ...// Code rsKurseStatus.Close();
__________________
www.nenov.de |
|
|
|
|
|
|
#2 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
|
Probier mal statt CRecordset::snapshot, oder probier mal
Open(CRecordset::dynaset,"SELECT DISTINCT Status FROM KurseStatus;") , und dieses rsKurseStatus(NULL); sicher das der Wert der Datenbank stimmt, weill normalerweise müsste man da einen Zeiger auf ein Datenbankobjekt angeben. (Bei DAO) Und wo genau taucht der Fehler überhaupt auf? wenn das die Zeile mit Open ist, vielleicht ist die nächste Zeile falsch, nicht die von dir angegebene? Lass auch mal das DÍSTINCT weg. |
|
|
|
|
|
#3 (Direktlink) | |
|
Ist öfter hier
![]() Registriert seit: 01.09.2005
Beiträge: 83
|
Zitat:
Code:
const CString strSQLKurse = "SELECT * FROM KurseStatus";
CdbKurseStatus rs(NULL);
rs.Open(CRecordset::snapshot, _T(strSQLKurse), CRecordset::none);
while(!rs.IsEOF()){
MessageBox(rs.m_Status);
rs.MoveNext();
}
rs.Close();
Mit eine Code:
"SELECT DISTINCT Status FROM KurseStatus; Ich glaube das ist das Problem. Ich hoffe aber, dass ich mich irre. Weist jemand wie das geht??
__________________
www.nenov.de |
|
|
|
|
|
|
#4 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 01.09.2005
Beiträge: 83
|
__________________
www.nenov.de |
|
|
|
|
|
#5 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
|
Ist das von irgendeinem Assistenten automatisch erzeugter code ?
|
|
|
|
|
|
|
#6 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 01.09.2005
Beiträge: 83
|
Nein die Code ist von mir. Der Assistenten habe ich bei dem Erstellung von CdbKurseStatus genutzt.
Übrigens ich habe eine ODBC Verbindung keine DAO.
__________________
www.nenov.de |
|
|
|
|
|
#7 (Direktlink) |
|
Dauergast
![]() Registriert seit: 06.05.2004
Ort: Düsseldorf
Beiträge: 1.672
|
Hast du mal nach anderen Werten für die Parameter 1 und 3 von Open gesucht, und diese ausprobiert? z.B. dynaset,Forwardonly,readonly etc. ?
|
|
|
|
|
|
#8 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 01.09.2005
Beiträge: 83
|
Ja schon. Ich bin mir aber sicher dass es nicht daran liegt.
Sondern, ich habe in meinem Recordset Klassse 4 Variablen und somit kann ich nicht nur nach eine Spalte abfragen. Ich muss entweder ein neuen Recordset Klasse erstellen und die übrigen 3 Variablen löschen also alle auser m_Status oder (dass was ich gemacht habe) ich habe eine neue Tabelle hinzugefügt nur mit ID und Status. Und jetzt mach ich einfach weiter
__________________
www.nenov.de |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|