OdbcCommand

chaluron Messages postés 4 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 17 juillet 2005 - 16 juil. 2005 à 23:06
cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008 - 17 juil. 2005 à 17:44
Bonjour à tous et à toutes,

Dans MSDN, je trouve ceci, qui est en rapport avec SQL Server;
or j'utilise un objet OdbcCommand (because mysql). Est-ce que l'un
d'entre vous pourrait me dire par quoi je dois remplacer le @???

Pour créer la commande de données permettant d'obtenir un seul enregistrement de catégorie
<OL type= 1>
<LI>Faites glisser un second objet SqlCommand vers la page et attribuez à sa propriété Connection la valeur SqlConnection1.
<LI>Nommez la commande cmdCategoriesById.
<LI>Dans la propriété CommandText, cliquez sur le bouton Sélection pour ouvrir la boîte de dialogue Générateur de requêtes.
<LI>Utilisez la boîte de dialogue Générateur de requêtes pour construire l'instruction SQL suivante : SELECT CategoryID, CategoryName, Description
FROM Categories
WHERE (CategoryID = @categoryid)


Remarque La variable @categoryid est une « variable nommée ». Le nom exact de la variable que vous utilisez dans la clause Where n'a pas d'importance, mais vous devrez le connaître plus loin dans cette procédure pas à pas. Le préfixe « @ » est requis pour les paramètres SQL Server nommés.
Merci beaucoup
Chaluron</LI></OL>

6 réponses

cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008
16 juil. 2005 à 23:28
SELECT CategoryID, CategoryName, Description FROM Categories WHERE (CategoryID = @categoryid)

en fait @categoryid est une variable qui est déclarer dans SQL Server

ca marchera pas pour toi dans visual basic

dans visual basic tu doit remplacer cette variable par sa valeur

exemple:

SELECT CategoryID, CategoryName, Description FROM Categories
WHERE (CategoryID = '4')

ou bien si la valeur de l'ID de categorie se trouve dans une zone textBox text1
tu peut faire comme suit:

SELECT CategoryID, CategoryName, Description FROM Categories
WHERE (CategoryID = '" & replace(text1,"'","''") & "')

Hassen TUNISIE
0
chaluron Messages postés 4 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 17 juillet 2005
17 juil. 2005 à 00:09
Oki, merci Hassen
Je verrai ça un de ces jours

Bonne nuit

Chaluron
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
17 juil. 2005 à 00:24
Salut



Hassen c'est du VB.net



Les @valeurs correspondent au parametre SQL



Me.SqlInsertCommand1.CommandText = "INSERT
INTO Personne(ID, Nom, Prenom, Age, Couleur) VALUES (@ID, @Nom,
@Prenom, @" & _

"Age); SELECT ID, Nom, Prenom, Age, Couleur FROM Personne WHERE (ID = @" & _

"ID)"

Me.SqlInsertCommand1.Connection = Me.SqlConnection


Me.SqlInsertCommand1.Parameters.Add(New
System.Data.SqlClient.SqlParameter("@ID", System.Data.SqlDbType.Int, 4,
"ID"))


Me.SqlInsertCommand1.Parameters.Add(New
System.Data.SqlClient.SqlParameter("@Nom",
System.Data.SqlDbType.VarChar, 10, "Nom"))


Me.SqlInsertCommand1.Parameters.Add(New
System.Data.SqlClient.SqlParameter("@Prenom",
System.Data.SqlDbType.VarChar, 10, "Prenom"))



Voila


Me.SqlInsertCommand1.Parameters.Add(New
System.Data.SqlClient.SqlParameter("@Age", System.Data.SqlDbType.Int,
4, "Age"))
0
cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008
17 juil. 2005 à 13:17
ok nhervagault
en fait moi j'utilise vusial basic 6
et les variable @ID je les utilise dans les l'analyseur de requete d'SQL Server, les procedures stocker, les declencheurs...
je les jamais utiliser dans visual basic. je savai pas qu'on pouver les utiliser
je vais l'essayé.
Merci pour l'information

Hassen TUNISIE
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
17 juil. 2005 à 16:51
OUI tu peux aussi utiliser les parametres pour ADO VB6

masi obccommand est du dotnet.



'en SQL sans parametres

' strSQL strSQL & ", Prenom '" & aClient.prenom & "' "

'equivalent avec parametre

strSQL strSQL & ", Prenom ?"

Set paramADO = cmdADO.CreateParameter()

paramADO.Name = "prenom"

paramADO.Type = adVarChar

paramADO.Size = 255

paramADO.Value = aClient.prenom

cmdADO.Parameters.Append paramADO



normalement la version avec parametres est plsu rapide

Car si c'est comme en java les requetes sont precompiles et les paramatres mis à jour.



Alors qu'en utilisant les chaines, la requete est contruite et donc pas compilée.

Autre avantage

les parametres permet je crois de luter contre l'injection SQL(a verifier)

du moins les ' ne sont pas a doublé dans les chaines. --> Moins de risuqe de plantage.
0
cs_hassen Messages postés 338 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 4 novembre 2008
17 juil. 2005 à 17:44
ok


Merci beaucoup pour l'information

Hassen TUNISIE
0