[ASP] Big Probleme (serieux)

Big Probleme (serieux) [ASP] - Programmation

Marsh Posté le 07-03-2001 à 14:37:00    

*
bon j'ai un formulaire avec 60 champs a remplir
je parle pour une requete sql de type UPDATE
 
voila mon prob,
si l'utilisateur ne remplit pas un champ
j'ai ce message:
 
Microsoft OLE DB Provider for ODBC Drivers error '80004005'  
 
[Microsoft][ODBC Microsoft Access Driver] Field 'location.loccorresp5' cannot be a zero-length string.  
 
par ex bien sur :)
mais en fait l'utilisateur n'est pas obligé de remplir tous les champs car ils ne sont pas obligatoire, ils peut en modifier la valeur ou y ajouter une info mais il peut laisser un champ vide :)
 
 
ma commande update est de ce genre
 
vreq="UPDATE location SET loccode='"& request.form("z_loccode" )&"'"
vreq=vreq & ", ctry='"& request.form("z_ctry" ) &"'"
vreq=vreq & ", contcode='"& request.form("z_contcode" ) &"'"
vreq=vreq & ", comp='"& request.form("z_comp" ) &"'"
vreq=vreq & ", loccorresp1='"& request.form("z_loccorresp1" ) &"'"
vreq=vreq & ", dphone1='"& request.form("z_dphone1" ) &"'"
vreq=vreq & ", ntaccount1='"& request.form("z_ntaccount1" ) &"'"
vreq=vreq & "WHERE locname='"& Application("loc_maj" ) &"'"
 
 
y'a bcp plus de champs car environ 60 a remplir :)
je voulais savoir si il y avait un moyen qqc de virer cette erreur
soit en acceptant les champs vide qui sont envoyés a ma requete SQL
soit en verifiant que le champ est vide et si il est vide alors on ne l'inclut pas ds la requete SQL
 
merci c urgent :)

Reply

Marsh Posté le 07-03-2001 à 14:37:00   

Reply

Marsh Posté le 07-03-2001 à 14:40:46    

LIKE '%" & p_nomduchamp & "%'"
 
utilise ca comme ca si ton champ est vide il vera %% qui voudra dire aucune valeur particulier pour le champ


---------------
Oui aux titres de topic clair et precis...
Reply

Marsh Posté le 07-03-2001 à 14:40:53    

Est ce que tu es sûr que les colonnes de ta (ou de tes) table(s) acceptent les champs vides ?

Reply

Marsh Posté le 07-03-2001 à 14:47:07    

je comprends pas ce que tu veux me faire faire pink floyd ?
explik toi stp

Reply

Marsh Posté le 07-03-2001 à 14:57:48    

sous DOS tu connais ca :
 
dir *.*
 
ben la tu vais pareil avec ta requel genre :
strSQL = "SELECT * FROM table WHERE nomdufied LIKE '%" & p_valeurduchampformulaire & "%') "
 
ce qui fait que si p_valeurduchampformulaire = denis tu obtiens :
SELECT * FROM table WHERE nomdufied LIKE '%denis%')
 
ce qui fait que si p_valeurduchampformulaire = "" tu obtiens :
SELECT * FROM table WHERE nomdufied LIKE '%%')
 
et % ASP = * DOS
 
compris la ou po ?   :D


---------------
Oui aux titres de topic clair et precis...
Reply

Marsh Posté le 07-03-2001 à 15:00:26    

rhhhhhhhhaa bordel, font chier les smiley j`espere que tu va comprendre
 
en fait  
 
LIKE '%denis%') veut dire (sans les .) :
LIKE '%denis.%.'.).


---------------
Oui aux titres de topic clair et precis...
Reply

Marsh Posté le 07-03-2001 à 15:15:32    

j'ai bien compris ca lol :D
 
mais c pas du select que je veux c de l'UPDATE
si un champs d'update est vide il me genere une erreur
 
tu comprends la ou po ?(:lol: :D)

Reply

Marsh Posté le 07-03-2001 à 15:24:31    

Je répète, est que tu as acces a la définition da la table dans laquelle tu mets tes données ? Ton erreur provient certainement du fait qu(une ouplusieurs colonnes n'acceptent pas d'avoir leur champ vide. Soit tu modifie la table soit tu mets un truc par défaut quand le champ n'est pas renseigné par l'utilisateur.

Reply

Marsh Posté le 07-03-2001 à 15:27:11    

ah vouis, heu ben y du java qui fait ca je l`ai deja vu
 
[test sur formulaire] mais je c plus ou ! sorry....


---------------
Oui aux titres de topic clair et precis...
Reply

Marsh Posté le 07-03-2001 à 15:28:08    

ouais t'as raison:
chaine vide autorisé = NON  
pour chaque champs
mais y'a pas un moyen de mettre OUI sans se taper la manip pr les 60 champs ? :D
merci

Reply

Marsh Posté le 07-03-2001 à 15:28:08   

Reply

Marsh Posté le 07-03-2001 à 15:39:08    

Ca dépend du sgbd  qui gère ta base ! Mais bon c'est ca ou 60 test dans ton script asp

Reply

Marsh Posté le 07-03-2001 à 15:41:22    

access :D

Reply

Marsh Posté le 08-03-2001 à 18:26:30    

Tu peux toujours faire une fonction qui traite les chaine 'rien' par exemple tu peux mettre "NEANT" dans ces champs s'il sont vides...
 
<%
function nul(vchamp) 'valable pour les champs txt
   if vchamp="" then vchamp="NEANT"
   nul=vchamp
end function
 
'Pour ton instruction UPDATE avec db en chaine de cnx:
 
db.execute("UPDATE location set loccode='" & nul(request.form("z_loccode" )) & "' WHERE locname='" & Application("loc_maj" ) & "'"  
%>
 
Tu m'excuseras, j'ai pas mis tous les champs.... :D
 
sinon si tu as access tu mets OUI pour les chaines vide autorisée dans les propriete de la table
 
@+ ;)
 
 
 
 
 

 


--Message édité par Johan--


---------------
Johan@jfnr.com (SETI>[HFR Johan])
Reply

Marsh Posté le 09-03-2001 à 01:50:23    

en principe... Les champs ki ne sont pas obligatoires n'ont pas besoin d'etre mis a jour !!!!  Et pi, ceux ki ne peuvent pas etre vide ont toujours des valeurs par défaut ou alors doivent etre remplis...  
Dans ce dernier cas, ben tu fais pas l'update.
Donc qd tu construit ta requete SQL, ben tu boucles sur tes champs (enfin, tu les traites tous) et tu testes s'il sont vides ou pas.
 
J'sais pas si je t'ai aider la mais bon ... :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed