Commande SQL sous VB6 [Résolu]

Signaler
Messages postés
86
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
21 mai 2014
-
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Non, vu qu'elle est stoquée en tant que pointeur ça ne pose pas de problème !
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
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
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
@ [auteur/JACK/2204.aspx jack] : Je crois qu'on peut aussi passer les dates avec des '
Messages postés
86
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
21 mai 2014

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 ?