Taille maximum String et requête [RESOLU] - VB/VBA/VBS - Programmation
Marsh Posté le 25-09-2006 à 19:53:43
tu vois comment qu'elle est tronquée ?
Car le MsgBox, ça ne m'étonnerait pas qu'il soit limité en taille par contre...
sinon, essaie d'utiliser les objets COMMAND et PARAMETER afin d'avoir un truc plus propre
Marsh Posté le 26-09-2006 à 09:34:06
MagicBuzz a écrit : tu vois comment qu'elle est tronquée ? |
Oui j'ai pensé que le msgbox était tronqué, mais quand la requête passe, ça me dit qu'il faut que j'ai le même nombre d'attribut dans les VALUES que dans la liste des colonnes, ce qui me fait penser qu'effectivement ça coupe quelque part...
Je vais regarder comment on utilise command et parameter, merci
Marsh Posté le 26-09-2006 à 10:03:21
Hmmm.
Je sais.
Enfin, je pense.
Je parie que t'as des nombres à virgule dans ta requête non ? Genre la densité, l'inflation, etc.
Si c'est le ça, "deux virgule sept" ça fait ça : " 2,7 "
Du coup dans la requête, ça fait deux valeurs distinctes, puisque le séparateur de valeurs c'est la virgule !
Tu dois remplacer la "," par un "." ou mettre le truc entre quotes.
D'où ma suggestion d'utiliser correctement les objets ADODB plutôt que de générer une chaîne buggée comme un goret.
Pour info, ton truc c'est un exemple classique de "sql injection", la plus grosse faille de sécurité d'un nombre impressionnant de sites. Utiliser correctement les objets COMMAND et PARAMETER évite ça.
Ca doit faire la 22000° fois en un an que je le dis, mais force est de constater que tout le monde préfère utiliser des techniques de merde qui plantent et qui continuent à donner une mauvaise réputation aux produits Microsoft...
Marsh Posté le 26-09-2006 à 10:13:53
Je crois que tu as tout à fait raison, et je fais mon mea culpa
Non sérieusement, j'ai des nombres à virgule et ça fait forcément planter le nombre de champs qui ne coincide plus.
Je vais donc voir plus attentivement comment marchent les techniques que tu me suggères, même si j'ai du faire ça un peu en urgence donc je me suis débrouillé comme j'ai pu.
Merci en tout cas
Marsh Posté le 25-09-2006 à 18:41:53
Bonjour,
Avant tout, j'ai utilisé la fonction recherche, mais elle me renvoyait des résultats dans toutes les catégories, et pas seulement VB/VBA/VBS...
J'ai une portion de code qui crée des requêtes INSERT INTO et les exécute à la suite. La requête est créée dans une String. Mon problème est que la fin de cette requête est tronquée, d'où l'impossibilité d'insertion dans la base.
Je ne comprends pas, elle a l'air d'être tronquée a quelques centaines de caractères (+ de 500) lorsque je fais afficher ma requête.
Quelle est la taille maximale d'une String? Et d'une requête dans Access ? J'ai lu que c'était beaucoup plus que 255 caractères, donc j'imagine que je problème doit venir d'ailleurs!
Notes :
Message édité par Alphajet le 26-09-2006 à 10:14:17
---------------
Bien joué! Mais une brique ne rend jamais les coups.