Problem mit DISTINCT
-
Zu allererst: Programmiersprach ist vc++....
Ich würde gerne anstatt einem festgelegten Wert eine Variable benutzen.COleVariant olevar; CString column = "Pruefungsfach_4"; recordset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT DISTINCT Pruefungsfach_4 FROM Tabelle1", 0); while(!recordset.IsEOF()) { recordset.GetFieldValue("Pruefungsfach_4", olevar); CString strData = (LPCSTR) olevar.pbstrVal; if (strData.GetLength() != 0) { p_strAryKurs->Add(strData); } recordset.MoveNext(); }
Ich würde gerne wie hier schon ersichlich anstatt Pruefungsfach_4 die Variable column einsetzten...
Wenn ich es so verschuche, compiliert er mir es zwar aber es kommt beim Ausführen der Funktion eine msgBox mit folgendem Fehler: "Element in dieser Auflistung nicht gefunden"
... CString column = "Pruefungsfach_4"; recordset.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT DISTINCT '"+column+"' FROM Tabelle1", 0); while(!recordset.IsEOF()) { recordset.GetFieldValue(column, olevar); //hier kommt dann der Fehler, wenn ich einen Haltepunkt setze ... } ...
Vielen Dank schonmal für eure Mühe!
Chris
PS: Hoffe ich hab das ins richtige Forum gepostet...
-
hast du mal ohne hochkommas probiert?
ansonsten lass mal die sql-anweisung ausgeben, und führe die so aus.
-
Habe schon alle möglichen Dinge versuch...
Bin grade eben auf ne Lösung gekommen: Er konnte mit diesem "Teilstring" nichts anfangen also hab ich es folgendermaßen gelöst:
void CPlanerTestDlg::GetKurs(CStringArray* p_strAryKurs, CString column) { ... CString SqlCmd; COleVariant olevar; SqlCmd.Format("SELECT DISTINCT %s FROM Tabelle1", column); recordset.Open(AFX_DAO_USE_DEFAULT_TYPE, SqlCmd, 0); while(!recordset.IsEOF()) { recordset.GetFieldValue(column, olevar); CString strData = (LPCSTR) olevar.pbstrVal; if (strData.GetLength() != 0) { p_strAryKurs->Add(strData); } recordset.MoveNext(); } db.Close(); recordset.Close(); }
Gruß
Chris