Envoyé par
manuly
(PS les requetes paramétrées peuvent t'aider à résoudre ton problème sisi !!
@callo si je ne m'abuse c'est un peu comme les procédures stockées non ?
On ne peut pas dire que les requêtes paramétrées sont comme les procédures stockés. Les paramètres permettent aux SGBD de retourner des enregistrements correspondants aux critères qui y sont définis. Tu peux donc avoir aussi bien des requêtes sql de type texte pramétrées que des procédures stockés paramétrés.
Pour mieux comprendre leur utilisation et leurs avantages, référez-vous au lien donnée DotNetMatt. Sa version vb.net est accessible ici.
Je voudrais cependant insister sur l'un des avantages mentionnés par DotNetMatt à savoir Formats gérés nativement (dates, nombres décimaux...).
Travailler avec les dates et décimaux dans les environnements multi-linguales peut effectivement devenir une casse-tête. Les requêtes paramétrées délèguent donc la gestion de ces problématiques de cultures au provider .net. Je me permet de reprendre l'exemple donné par sisqo60 dans ce post:
Soit la requête suivante:
select * from matable where monChampDate = '01/02/2013'
Si ton serveur a une culture anglaise tu auras le 2 janvier au lieu du 1 février. Donc, en laissant le provider .net gérer les cultures, tu ne te soucie plus des problèmes de localisation. Donc dans le cas précis de Bruno21, nul besoin de vérifier le format de la date. Avec les requêtes paramétrées, le code de Bruno21 pourraît alors ressembler à ceci:
1 2 3 4 5 6 7 8 9 10
| Connection = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & baseAccess & ";Persist Security Info=False;")
...
requete = "INSERT INTO Etats (Compteur, [DateHeure]) VALUES (?ParamCompteur, ?ParamDate)"
myCommand = New OleDbCommand(requete, Connection)
myCommand.Parameters.AddWithValue("ParamCompteur", Compteur)
myCommand.Parameters.AddWithValue("ParamDate", DateHeure)
'Execution de la requête
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myCommand.Connection.Close() |
Donc, utiliser des requêtes paramétrés est un bonne pratique; assure la sécurité contre les injections SQL et évite bien des soucis. Donc, requêtes paramétrés, requêtes paramétrés et toujours requêtes paramétrés
Partager