Big Probleme (serieux) [ASP] - Programmation
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
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 ?
Marsh Posté le 07-03-2001 à 14:47:07
je comprends pas ce que tu veux me faire faire pink floyd ?
explik toi stp
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 ?
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.%.'.).
Marsh Posté le 07-03-2001 à 15:15:32
j'ai bien compris ca lol
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: )
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.
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....
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 ?
merci
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
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....
sinon si tu as access tu mets OUI pour les chaines vide autorisée dans les propriete de la table
@+
--Message édité par Johan--
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 ...
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