Maison >développement back-end >C++ >L'ordre des paramètres est-il important dans les requêtes OleDbCommand utilisant des espaces réservés de point d'interrogation ?

L'ordre des paramètres est-il important dans les requêtes OleDbCommand utilisant des espaces réservés de point d'interrogation ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-27 07:53:08311parcourir

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

Ordre et priorités des paramètres OleDbCommand

En tentant de déboguer une requête pendant 40 minutes, il a été découvert que l'ordre des paramètres joue un rôle crucial. La requête en question est la suivante :

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

Cependant, lorsque les paramètres ont été ajoutés dans l'ordre suivant :

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

aucun résultat n'a été renvoyé. L'inversion de l'ordre de @dtDebut et @dtFin a résolu le problème.

Il était initialement supposé que les paramètres nommés avaient été introduits pour éviter de telles dépendances d'ordre. Cependant, selon MSDN :

Le fournisseur OLE DB .NET ne prend pas en charge les paramètres nommés pour transmettre des paramètres à une instruction SQL ou à une procédure stockée appelée par un OleDbCommand lorsque CommandType est défini sur Text. Dans ce cas, l'espace réservé au point d'interrogation (?) doit être utilisé.

Par conséquent, il est essentiel de maintenir l'ordre correct des paramètres lors de l'utilisation d'OleDbCommand avec des paramètres spécifiés à l'aide de l'espace réservé au point d'interrogation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn