Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de mise à jour de données jet

4 réponses
Avatar
Adrien Gaudel
Bonjour à tous,

Je suis nouveau sur ce groupe et j'espère ne pas trop vous ennuyer avec une
question qui à été posés 50 fois (j'ai cherché un peu et ça n'a pas l'air
d'être le cas)

Voilà, je viens de reprendre le devellopement d'une petite application ASP
laissée en stand by depuis environ 1 ans. Quand je l'ai laissée tout les
parties terminées fonctionnaient correctement. Hors, quelques mise à jour de
XP plus tard, j'ai plein d'erreur partout avec Jet, je ne comprend pas d'où
ça sort.

Je tourne sous win XP pro, donc IIS5.1
le bout de code suivant (qui fonctionnait parfaitement il y'a un an)

Dim strEleveID, strActiviteID

strEleveID = Request.Form("eleveid")
strActiviteID = Request.Form("activite")

Dim objComm, strSQL, intResult
strSQL = "UPDATE Eleves SET ActiviteID = " & strActiviteID & " WHERE ID = "
& strEleveID & ";"

Response.Write strSQL
Response.Flush

set objComm = server.CreateObject("ADODB.Command")
objComm.ActiveConnection = strConn
objComm.CommandType = &H0001 'adCmdText
objComm.CommandText = strSQL
objComm.Execute intResult

set objComm = nothing
If not intResult = 1 Then
Response.Write("Une erreur s'est produit pendant la mise à jour du champ.
Essayez à nouveau.")
End If

Me renvois maintenant l'erreur suivante :
Microsoft JET Database Engine error '80004005'

L'opération doit utiliser une requête qui peut être mise à jour.

/upActiviteEleve.asp, line 26

La ligne 26 correspond à l'appel de l'action "execute" de l'objet "objComm"

Je ne comprend pas pourquoi !

(parrelèllement, si vous pouviez m'indiquer un site qui explique toutes les
differences entre l'ancienne et la nouvelle version de Jet ça serait très
sympa car je sent que je vais devoir faire face à tout un tas de problèmes
de ce genre)

Un grand merci d'avance !

Adrien

4 réponses

Avatar
Martin CLAVREUIL
bonjour,

pour executer une phase SQL sur une base de données (manifestement access)
vous pouvez également (et ce risque d'etre un peut plus pratique) utiliser
l'objet ADODB.Connection en définissant jet pour ms access comme pilote dans
la méthode open.


"Adrien Gaudel" a écrit dans le message de
news:cc9dke$61c$
Bonjour à tous,

Je suis nouveau sur ce groupe et j'espère ne pas trop vous ennuyer avec


une
question qui à été posés 50 fois (j'ai cherché un peu et ça n'a pas l'air
d'être le cas)

Voilà, je viens de reprendre le devellopement d'une petite application ASP
laissée en stand by depuis environ 1 ans. Quand je l'ai laissée tout les
parties terminées fonctionnaient correctement. Hors, quelques mise à jour


de
XP plus tard, j'ai plein d'erreur partout avec Jet, je ne comprend pas


d'où
ça sort.

Je tourne sous win XP pro, donc IIS5.1
le bout de code suivant (qui fonctionnait parfaitement il y'a un an)

Dim strEleveID, strActiviteID

strEleveID = Request.Form("eleveid")
strActiviteID = Request.Form("activite")

Dim objComm, strSQL, intResult
strSQL = "UPDATE Eleves SET ActiviteID = " & strActiviteID & " WHERE ID "
& strEleveID & ";"

Response.Write strSQL
Response.Flush

set objComm = server.CreateObject("ADODB.Command")
objComm.ActiveConnection = strConn
objComm.CommandType = &H0001 'adCmdText
objComm.CommandText = strSQL
objComm.Execute intResult

set objComm = nothing
If not intResult = 1 Then
Response.Write("Une erreur s'est produit pendant la mise à jour du champ.
Essayez à nouveau.")
End If

Me renvois maintenant l'erreur suivante :
Microsoft JET Database Engine error '80004005'

L'opération doit utiliser une requête qui peut être mise à jour.

/upActiviteEleve.asp, line 26

La ligne 26 correspond à l'appel de l'action "execute" de l'objet


"objComm"

Je ne comprend pas pourquoi !

(parrelèllement, si vous pouviez m'indiquer un site qui explique toutes


les
differences entre l'ancienne et la nouvelle version de Jet ça serait très
sympa car je sent que je vais devoir faire face à tout un tas de problèmes
de ce genre)

Un grand merci d'avance !

Adrien





Avatar
Francis
Adrien Gaudel wrote:
Bonjour à tous,

Je suis nouveau sur ce groupe et j'espère ne pas trop vous ennuyer avec une
question qui à été posés 50 fois (j'ai cherché un peu et ça n'a pas l'air
d'être le cas)

Voilà, je viens de reprendre le devellopement d'une petite application ASP
laissée en stand by depuis environ 1 ans. Quand je l'ai laissée tout les
parties terminées fonctionnaient correctement. Hors, quelques mise à jour de
XP plus tard, j'ai plein d'erreur partout avec Jet, je ne comprend pas d'où
ça sort.

Je tourne sous win XP pro, donc IIS5.1
le bout de code suivant (qui fonctionnait parfaitement il y'a un an)

Dim strEleveID, strActiviteID

strEleveID = Request.Form("eleveid")
strActiviteID = Request.Form("activite")

Dim objComm, strSQL, intResult
strSQL = "UPDATE Eleves SET ActiviteID = " & strActiviteID & " WHERE ID = "
& strEleveID & ";"

Response.Write strSQL
Response.Flush

set objComm = server.CreateObject("ADODB.Command")
objComm.ActiveConnection = strConn
objComm.CommandType = &H0001 'adCmdText
objComm.CommandText = strSQL
objComm.Execute intResult

set objComm = nothing
If not intResult = 1 Then
Response.Write("Une erreur s'est produit pendant la mise à jour du champ.
Essayez à nouveau.")
End If

Me renvois maintenant l'erreur suivante :
Microsoft JET Database Engine error '80004005'

L'opération doit utiliser une requête qui peut être mise à jour.

/upActiviteEleve.asp, line 26

La ligne 26 correspond à l'appel de l'action "execute" de l'objet "objComm"

Je ne comprend pas pourquoi !

(parrelèllement, si vous pouviez m'indiquer un site qui explique toutes les
differences entre l'ancienne et la nouvelle version de Jet ça serait très
sympa car je sent que je vais devoir faire face à tout un tas de problèmes
de ce genre)

Un grand merci d'avance !

Adrien





De manière générale, les erreurs '80004005' correspondent à un problème
de permissions.
Il faut vérifier les droits d'accès au fichier .mdb et vérifier que l'on
peut créer un fichier .ldb.

Le XP SP2 apporte des améliorations au niveau de la sécurité, il y a
peut-être un rapport.
Avatar
Adrien Gaudel
Merci beaucoup, c'était effectivement un problème de droit d'acces, dans les
propriété du fichier, j'ai mis que "tout le monde" à le controle total de
mon fichier acces et ça marche (pourtant "SYSTEME", "Administrateur" et
"moi" avaient aussi le contrôle total mais visiblement ça ne suffit pas)
Je suis vraiment soulagé car je me voyais mal modifier tous mes fichiers ASP
metant à jour des données !


"Francis" a écrit dans le message de
news:%

De manière générale, les erreurs '80004005' correspondent à un problème
de permissions.
Il faut vérifier les droits d'accès au fichier .mdb et vérifier que l'on
peut créer un fichier .ldb.

Le XP SP2 apporte des améliorations au niveau de la sécurité, il y a
peut-être un rapport.


Avatar
Francis
Adrien Gaudel wrote:
Merci beaucoup, c'était effectivement un problème de droit d'acces, dans les
propriété du fichier, j'ai mis que "tout le monde" à le controle total de
mon fichier acces et ça marche (pourtant "SYSTEME", "Administrateur" et
"moi" avaient aussi le contrôle total mais visiblement ça ne suffit pas)
Je suis vraiment soulagé car je me voyais mal modifier tous mes fichiers ASP
metant à jour des données !


"Francis" a écrit dans le message de
news:%


De manière générale, les erreurs '80004005' correspondent à un problème
de permissions.
Il faut vérifier les droits d'accès au fichier .mdb et vérifier que l'on
peut créer un fichier .ldb.

Le XP SP2 apporte des améliorations au niveau de la sécurité, il y a
peut-être un rapport.







En ASP, ce n'est ni l'administrateur ni le compte système qui accèdent
aux fichier. Sous NT/2000 c'est IUSR_<nom machine> ou IWAN_<nom machine>
, je ne sais pas si c'est identique sous XP.
De manière générale, évite le full control si c'est possible. Mais ça a
au moins le mérite de fonctionner...