Forum de discussion
Forum « Programmation ASP » (archives)
Re: UPDATE ne fonctionne pas !
Envoyé: 27 mars 2004, 11h27 par Oznog
C'est dificile à dire, plusieurs erreur sont possibles. En premier lieu ton curseur, va lire sur le sujet "Cursor et LockType" (http://www.trucsweb.com/ASP/trucs.asp?no=103&type=7).
Ensuite, la méthode que tu utilise "UPDATE" qui a besoin d'un "Execute"! Toi tu fais une connexion, puis une seconde!
' Première connexion, sans les bon curseur
Set obj_conn = Server.CreateObject("ADODB.Connection")
obj_conn.Open "db_restaurant","",""
' Deuxième
obj_rsUpdate.Open str_SqlUpdate,obj_conn,1,1
Le format ou type de valeur peut provoquer plusieurs erreur, une texte dans un champ numérique par exemple. Ou un champ qui n,existe tout simplement pas.
Enfin, la fiabilité du "Execute", du "Update" ou d'un "Addnew" ou encore un "batchUpdate" reste à voir!
Mais moi j'irais avec la méthode Addnew :
' Une bonne connexion avec les bons curseurs :
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "db_restaurant"
Set rsAdd = Server.CreateObject("ADODB.RecordSet")
rsAdd.CursorLocation = 2 ' aduseserver
rsAdd.CursorType = 1 ' adopenkeyset
rsAdd.LockType = 3 ' adlockoptimistic
' La chaîne
str_SqlUpdate = "select * t_Clients WHERE ID_Client=" & str_ID
' Ouvre le recordset
rsAdd.Open str_SqlUpdate, Conn
if rsAdd.EOF then
' Ajout
rsAdd.AddNew
rsAdd("f_Clients_Nom") = cInt(request.Form("txt_Nom"))
...
rsAdd.Update
else
' Mise à jour
rsAdd("f_Clients_Nom") = cInt(request.Form("txt_Nom"))
...
rsAdd.Update
end if
rsAdd.Close
Conn.Close
Set Conn = Nothing
Ciao
Oznog
Réponses
|