Heim >Backend-Entwicklung >C++ >Spielt die Parameterreihenfolge in OleDbCommand-Abfragen mit Fragezeichen-Platzhaltern eine Rolle?

Spielt die Parameterreihenfolge in OleDbCommand-Abfragen mit Fragezeichen-Platzhaltern eine Rolle?

Barbara Streisand
Barbara StreisandOriginal
2024-12-27 07:53:08249Durchsuche

Does Parameter Order Matter in OleDbCommand Queries Using Question Mark Placeholders?

OleDbCommand-Parameterreihenfolge und -Prioritäten

Bei einem 40-minütigen Versuch, eine Abfrage zu debuggen, wurde festgestellt, dass die Reihenfolge der Parameter eine entscheidende Rolle spielt. Die betreffende Abfrage lautet wie folgt:

SELECT * FROM tblSomething WHERE id = @id AND debut = @dtDebut AND fin = @dtFin

Als die Parameter jedoch in der folgenden Reihenfolge hinzugefügt wurden:

cmd.Parameters.Add("@id", OleDbType.Integer).Value = idSociete;
cmd.Parameters.Add("@dtFin", OleDbType.Date).Value = dateTraitementFin;
cmd.Parameters.Add("@dtDebut", OleDbType.Date).Value = dateTraitementDebut;

wurden keine Ergebnisse zurückgegeben. Durch Umkehren der Reihenfolge von @dtDebut und @dtFin wurde das Problem behoben.

Anfangs wurde angenommen, dass benannte Parameter eingeführt wurden, um solche Reihenfolgeabhängigkeiten zu vermeiden. Allerdings laut MSDN:

Der OLE DB .NET-Anbieter unterstützt keine benannten Parameter für die Übergabe von Parametern an eine SQL-Anweisung oder eine gespeicherte Prozedur, die von einem OleDbCommand aufgerufen wird, wenn CommandType auf Text gesetzt ist. In diesem Fall muss der Fragezeichen-Platzhalter (?) verwendet werden.

Daher ist es wichtig, die richtige Reihenfolge der Parameter einzuhalten, wenn OleDbCommand mit Parametern verwendet wird, die mithilfe des Fragezeichen-Platzhalters angegeben werden.

Das obige ist der detaillierte Inhalt vonSpielt die Parameterreihenfolge in OleDbCommand-Abfragen mit Fragezeichen-Platzhaltern eine Rolle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn