[Update: Die Abfrage funktioniert, wenn ich in den Parametern fest codiere - so hat es mit dem zu tun So füge ich Parameter zu der Abfrage hinzu]MS Access-Fehler: Die SELECT-Anweisung enthält ein reserviertes Wort oder einen Argumentnamen, der falsch geschrieben oder fehlt, oder die Interpunktion ist falsch
Für das Leben von mir kann ich nicht herausfinden, was das Problem hier ist.
Hier wird die Anfrage an die DataReader- weitergegeben werden:
SELECT * FROM (SELECT TOP ? StartDate, [ID] FROM
(SELECT TOP ? StartDate, [ID] FROM Story
ORDER BY StartDate DESC, [ID] DESC) AS foo
ORDER BY StartDate ASC, [ID] ASC) AS bar
INNER JOIN Story AS t ON bar.ID = t.ID
ORDER BY bar.StartDate DESC, bar.[ID] DESC
Die Parameter in der folgenden Reihenfolge hinzugefügt:
var pNumToRetrieve = new OleDbParameter("", OleDbType.Integer) {Value = numToGet};
var pResultSet = new OleDbParameter("", OleDbType.Integer) {Value = resultSet};
_cmd.Parameters.Add(pNumToRetrieve);
_cmd.Parameters.Add(pResultSet);
Wenn ich diese Abfrage in dem Zugang direkt eingeben es ganz gut funktioniert. Wenn ich die Abfrage von ASP.NET ausführe, erhalte ich jedoch die folgende Fehlermeldung:
Die SELECT-Anweisung enthält ein reserviertes Wort oder einen Argumentnamen, der falsch geschrieben oder fehlt, oder die Interpunktion ist falsch.
Was mache ich falsch?
Danke,
Adam
Das Problem besteht darin, die Zeichenfolge in ASP.NET auszuführen. Das benötigte Tag und die anzuwendende Fähigkeit wären also ASP.NET. ??? – Smandoli
Könnten Sie das weiter ausführen? Die Abfrage, die ich oben eingefügt habe, stammt aus dem Debugger in asp.net - das ist der genaue Wert/Zeichenfolge, die übergeben wird. – adamisnt
Ich denke, sie meinten, dass Ihre Frage mit ASP.NET und nicht mit SQL getaggt sein sollte. Aus Ihrer akzeptierten Antwort geht jedoch hervor, dass dies nicht der Fall ist. – nekomatic