Syntaxfehler in FROM-Klausel
-
Hi,
also ich habe einmal eine SQL-Abfrage in der GetDefaultSQL()SELECT * FROM [Startmenü]
und dann habe ich eine "dynamische" SQL-Abfrage:
switch(m_filefind.IsDirectory()) { case true: sSQL1 = "Titel,Pfad,Typ,Basisordner"; sSQL2 = sTitel + "," + sPfad + ",0," + sBasisPfad; break; case false: sLink = "no"; sSQL1 = "Titel,Pfad,Typ,Verknüpfung,Basisordner"; sSQL2 = sTitel + "," + sPfad + "," + ",1," + sLink + "," + sBasisPfad; } sSQL = "INSERT INTO Startmenü (" + sSQL1 + ") VALUES (" + sSQL2 + ")"; if(! m_database.Open(CRecordset::snapshot, _T(sSQL)) ) { if(AfxMessageBox("Es ist ein Datenbankfehler aufgetreten!", MB_OK | MB_ICONSTOP) == IDOK) { PostQuitMessage(EXIT_FAILURE); } }
-
Heist die Tabelle tatsächlich 'Startmenü' mit ü?
Ich habe noch nie mit Access gearbeitet, aber z.B. X-Case, Oracle, MySQL, Firebird etc. akzeptieren keine Umlaute... Schau dir das mal nochmal genau an.
An dem INSERT INTO Statement kann es nicht liegen, da es dort keine FROM Klausel gibt.
Gruß
M.
-
Ich hab jetzt mal die Tabelle in Access umbenannt in Startmenu....und habe auch alles im Code richtig umbenannt. Außerdem habe ich auch versucht, ob ich in der FROM-Klausel die Klammern weglassen kann.
Es kommt immer noch der selbe Fehler.
-
mein vorschlag:
"SELECT * FROM Startmenu;"
Esco
-
noch ne frage: warum aenderst du die sql-aweisung in der defaultsql ab???
zumal die default sql normal aus einem string besteht, der genau das aussagt, was du da einegegeben hast.
Esco
-
Access unterstützt Umlaute, wollt ich nur mal anmerken *g*
-
H...also, dass Access Umlaute Unterstützt war mir ja sowieso klar...aber man kanns ja mal versuchen:
@Esco: Danke für den Vorschlag, aber der ändert auch nichts an der Fehlermeldung.Hat sonst jemand noch einen Vorschlag auf lager....ich hoffe es.
-
freakSkater schrieb:
H...also, dass Access Umlaute Unterstützt war mir ja sowieso klar...aber man kanns ja mal versuchen:
@Esco: Danke für den Vorschlag, aber der ändert auch nichts an der Fehlermeldung.Hat sonst jemand noch einen Vorschlag auf lager....ich hoffe es.
hau die ganze recordset klasse raus und implementiere sie ueber den klassenassistenten neu: dann werden die variablen wieder der datenbank angepasst (neue spalten hinzugekommen/enfernt, namen geaendert?), ausserdem stimmt dein code.
wenn du das gemacht hast, poste mal bitte die zeile, in der der fehler auftaucht, wir wissen bis jezz ned, bei welcher methode die meldung kommt, und wissen folglicherweise auch nicht, welcher deiner sql-strings jezz falsch ist.Esco
-
Also, im neuen GetDefaultSQL() steht:
[Startmenu]
Der Rest ist gleich geblieben.....
-
ja kollege, du hast jetzt also die klasse rausgeschmissen und neu implementiert.
bei welchem befehl tritt denn nun der fehler auf? tritt er ueberhaupt noch auf?Esco