Commande SQL sous VB6

Résolu
megblt Messages postés 86 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 21 mai 2014 - 22 févr. 2009 à 13:10
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 - 22 févr. 2009 à 23:25
Bonjour ,
voila plusieurs jour que je galère avec cette commande où il y a une erreur de syntaxe que je ne trouve pas

comd.CommandText = "UPDATE peremption SET " _
            & "designation =" & libele.text _
            & " ,serie =" & serie.text _
            & " ,marque =" & marque.text _
            & " ,tipe =" & tipe.text _
            & " ,dateetal =" & daterev _
            & " ,dateval =" & dateval _
            & " ,etat =" & etat _
            & " WHERE num=" & Val(num) & " LIMIT 1"
        comd.Execute

je debute avec SQL

merci

5 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
22 févr. 2009 à 13:39
Salut
Plusieurs jours de recherche ? tu plaisantes, j'espère, ou alors tu n'es très observateur ....
Dans n'importe quel exemple d'utilisation de requète SQL, tu aurais vu que :
Si le champ est déclaré dans la DB en type :
   - Texte : Encadrer les valeurs avec des '
   - Date : Encadrer les valeurs avec des #
   - Numérique : Pas d'encadrement

Exemple :
      & "designation = ' " & libele.text & "'" _

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
22 févr. 2009 à 23:25
Non, vu qu'elle est stoquée en tant que pointeur ça ne pose pas de problème !
3
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
22 févr. 2009 à 13:31
comd.CommandText = "UPDATE peremption SET " _
            & "designation ='" & Pure(libele.text) & "'" _
            & " ,serie ='" & Pure(serie.text) & "'" _
            & " ,marque ='" & Pure(marque.text) & "'" _
            & " ,tipe ='" & Pure(tipe.text) & "'" _
            & " ,dateetal ='" & Pure(daterev.Text) & "'" _
            & " ,dateval ='" & Pure(dateval.Text) & "'" _
            & " ,etat =" & CInt(etat.Text) _
            & " WHERE num=" & CInt(num.Text) & " LIMIT 1"
comd.Execute

Attention ton code est injectable en SQL !
Tu dois systématiquement épurer chaque champ qui sera dans une requête SQL en remplaçant chaque ' par ''.

Public Function Pure(S as String) As String
  Pure = Replace(S,"'","''")
End Function

Et pour info, type s'écrit avec un y
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
22 févr. 2009 à 20:07
@ [auteur/JACK/2204.aspx jack] : Je crois qu'on peut aussi passer les dates avec des '
0

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

Posez votre question
megblt Messages postés 86 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 21 mai 2014
22 févr. 2009 à 22:44
oui il ne prend pas les # chez moi


 


pour le y j'ai une autre variable type


merci pour votre aide


a propos la logueur de la cahine CommandText est t'elle limitée ?


 
0
Rejoignez-nous