pb requête update Access avec equi-jointure de table - ASP - Programmation
Marsh Posté le 17-08-2006 à 11:01:52
\" ou \' autour des variables come ca :
- tu mets des guillemets autour des valeurs de ta requete : normal c'est des string
- Tu les échappes pour qu'il ne soit pas interprétés
Marsh Posté le 17-08-2006 à 11:05:12
Donc je dois mettre par exemple:
Code :
|
Où je suis a coté de la plaque et je dois virer les &
Marsh Posté le 17-08-2006 à 11:08:20
Citation : sql="UPDATE tab2, tab1 SET col2_prenom=\""&var1&"\", col1_nom=\""&var2&"\" WHERE tab2.col2_visa = "&vNum&" AND tab1.col1_cle = tab2.col2_cle" |
Marsh Posté le 17-08-2006 à 11:20:25
Merci bien de ton aide, j'ai trouvé la syntaxe qui marche
Code :
|
Sinon j'avais les \ dans l'enregistrement :-)
En revanche si je mets comme prenom => j'asper, le ' empeche de faire un update, y a t'il un moyen de parer se problème.
Encore merci de ton aide ^_^
Marsh Posté le 17-08-2006 à 11:32:27
Essaie un traitement sur les paramètres ( suppresion des ' ou échappement )
Marsh Posté le 17-08-2006 à 11:33:33
Re tout le monde,
En fait, j'ai quand même des problèmes avec cette requête, s'il y aucun caractère je ne peux pas faire l'update il faut au mini que je mette un espace et s'il y a une cote ' ça tue ma requete...le drame
Si quelqu un a une idée
Merci
Marsh Posté le 17-08-2006 à 14:39:16
Re,
Bon j'ai fait un traitement de ma chaine de caractere
Code :
|
Me reste plus que le probleme de la mise a jour quand la longueur est à 0 car ça fait planter ma requete donc si quelqu un a une idée car je vois pas comment faire sans faire un travail de porc genre si longueur=0 alors RemSpace=" "...autant dire vaudrait mieux éviter ^^
Marsh Posté le 17-08-2006 à 15:21:32
Voilà le message d'erreur que j'obtiens
Microsoft OLE DB Provider for ODBC Drivers erreur '80004005'
[Microsoft][Pilote ODBC Microsoft Access] Le champ 'tab1.col1_bp' ne peut pas être une chaîne vide.
/home/asp_test/boucle.asp, ligne 56
Si ça fait penser à quelque chose a quelqu un je le remercie d'avance car là je bloque
Marsh Posté le 17-08-2006 à 15:26:16
Ca plante si var1 ou var2 sont vides ? Bizarre.
A part mettre un contrôle sur le formulaire pour empêcher les champs vides, je crois que tu n'échapperas pas à ta solution "à la main".
Marsh Posté le 17-08-2006 à 15:26:34
Ben on dirait que que col1_bp n'est pas renseigné dans ta requete donc ...
Marsh Posté le 17-08-2006 à 15:35:14
En faite ce qui se passe c'est que je fais un formulaire pour modifier des données existantes que je met par defaut dans les champ de mon formulaire donc si un champ n'est pas remplie et que j'y touche pas quand j'envoie ma requete la variable par defaut est vide...donc j'aimerai la laissé vide donc col1_bp est renseigné par une variable qui n'a rien...donc c'est un peu foireux peut-être comme systeme?
Marsh Posté le 17-08-2006 à 15:39:54
J'ai une solution de contournement mais qui me plait pas car c'est pas propre, je la donne quand meme des fois que des gens ont le meme problème et veule avancer
Code :
|
autant dire que ça marche mais j'en veux pas car c'est vraiment pas propre ;-)
Marsh Posté le 17-08-2006 à 15:40:00
Ben le truc c'est que col1_bp est NULL dans la base , mais toi tu veux y inserer "" qui est différent de NULL
Donne voir la requete complète ?
Marsh Posté le 17-08-2006 à 15:45:23
Voilà la requete avec col1_bp=variable 4 du tableau dont voici l'initialisation
Tab(4)=request.form("sCol1Bp" )
Code :
|
Marsh Posté le 17-08-2006 à 15:47:21
Tiens dans mon formulaire voilà comment je recupere le champ
Code :
|
En tout cas merci pour ton aide jbourdellon je te gonfle avec ça depuis un moment ^_^ sympa d'être patient
Marsh Posté le 17-08-2006 à 15:51:39
ben comme tout à l'heure traitement sur sCol1Bp avec je sais pas une requete que tu generes au fur et à mesure que tu traites les variables et surtout qu'elles existent
PSEUDO CODE
if (exist(VarA)){
requete = "update ... SET varA = "&varA;
}
if (exist(varB)){
requete = requete & AND varB = "&varB ;
}
....
Marsh Posté le 17-08-2006 à 15:54:52
ok donc tu préconises une requête par champ à update dans le cas où c'est pas vide c'est bien ça?
Marsh Posté le 17-08-2006 à 16:06:45
non par une requete par champ mais une seule requete "variable"
donc une seule string requete
et pis pour chaque variable présente tu ajoutes le bout de code qui va bien à la requete pour mettre a jour
Etape 1 :
Requete " UDPATE .... SET"
Etape 2 :
Requete " UDPATE .... SET varA = 'ABC'"
Etape 2 :
Requete " UDPATE .... SET varA = 'ABC' AND varC = 'DEF'"
...
Marsh Posté le 17-08-2006 à 10:55:38
Bonjour,
Voilà mon problème je veux mettre à jour deux champs(mini) de deux tables différentes mais liées par un identifiant.
Le hic c'est que je renseigne mes deux champs de la requete sql avec deux variables et j'arrive pas a chopper la bonne syntaxe étant donné que je suis en asp avec une bdd Access et que je suis débutant en asp .
Voici mon code qui pose probleme
J'ai afficher toutes mes variables et elles sont bien renseignées donc c'est vraiment au niveau de la requete que la syntaxe passe pas .
Donc j'ai un message d'erreur qui apparait me signalant que la =>" de "&var1&" dans la requete est prise comme une fin de requete et qu il comprend plus la suite j'ai tenté de remplacer par des ' mais ma variable n'est pas pris en compte.
Si quelqu'un à une idée de la syntaxe pour mes variables...merci d'avance
Message édité par rouanelion le 18-08-2006 à 11:35:55