Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2006, 15h08   #1
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Par défaut Problème d'insertion dans une table Access

Quand j'inscrit dans ma base de donnée Access à partir de mon fichier .asp avec plusieur utilisateur en même temps sa m'affiche un message d'erreur.
Est-ce que quelqu'un connait le moyen de récupérer ce message d'erreur et de dire que si j'ai cette erreur j'attend un peu et je réenvoie ma requete.
Merci d'avance.

P.S. voici le message d'erreur
Code :
1
2
3
4
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
 
[Microsoft][ODBC Microsoft Access Driver] Could not update; currently locked by user 'admin' on machine 'BNV1046'
enquete.asp, line 44 (correspond à ma ligne d'insertion dans la table).
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 15h28   #2
Membre éprouvé
 
Inscription : septembre 2004
Messages : 368
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 368
Points : 402
Points : 402
salut,

Il ne doit y avoir qu'un seul utilisateur connecté : le serveur web.

alors soit, tu as créé et ouver un objet connexion que tu n'as pas fermé, soit tu as ouvert ta base access sur ton poste...
Gwenn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2006, 15h58   #3
Membre régulier
 
Avatar de vanou
 
Étudiant
Inscription : mai 2006
Messages : 160
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2006
Messages : 160
Points : 78
Points : 78
Envoyer un message via MSN à vanou
Affiche ton code qu'on voit s'il y a une pb qq part!
__________________
Dans la communication, le plus compliqué n'est ni le message, ni la technique, mais le récepteur
vanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 07h44   #4
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Bin justement le problème c'est que quand je lance cette page le fichier .ldb reste même une fois que j'ai "fermer" ma connexion à la base.
Voici ma fonction de connexion:
Code :
1
2
3
4
5
6
7
function connexion_bd_access (nom_bd_access)  '/////////connexion à une base de données Access//////
  DSN_BASE = "DBQ="& Server.Mappath(nom_bd_access) &";Driver={Microsoft Access Driver (*.mdb)};Driverld=25"
  Set Conn = Server.CreateObject("ADODB.Connection")
   Conn.Open DSN_BASE
  Set RS = Server.CreateObject("ADODB.Recordset")
  connexion_bd_access = RS
end function
(Apparement sa fonctionne bien).

Voici ma fonction de déconnexion :
Code :
1
2
3
4
5
6
function deconnection  '//////////fonction de déconnection 
if(RS.state = 1 )then RS.close
conn.close
set RS = nothing
set conn = nothing
end function
Juste après la déclarationde mes variable tout en haut du programme voici l'appel de la fonction de connexion :
Code :
connexion_bd_access("enquete.mdb")
Et tout en bas du programme voici l'appel de ma fonction de déconnexion :
Where is the problem???
Peu être que sa viens du fait que mes fonction sont dans un fichier à part (function.asp)?
Merci d'avance.
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 08h37   #5
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Bon bin j'ai régler le problème pour le fichier .ldb.
Pendant mes essai j'avais lancer ma page qui ce connecte à ma base alors que celle ci étais deja ouverte et ça m'avais fait des éspèces de duplicatas dans un fichier temp.
J'ai donc copier ma base dans un dossier local. J'ai supprimer la base sur le réseau. J'ai actualisé et j'ai recopier ma base sur le réseau.
Et maintenant quand je lance ma page et mes autres pages ça ne me créer pas un fichier.ldb (en tout cas il reste pas ouvert). (oh joie!!!)

Je referais les testes avec plusieur utilisateurs qui lancent l'enquête en même temps pour voir si ça venais de là et je vous tient au courant.
Merci!!!!!
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 09h16   #6
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Bon bin j'ai bien fait les tests et ça plante quand même.
Certain il ont le message d'erreur citer plus haut, d'autre ont au bout d'un long moment de chargement un erreur 'script timed out" et enfin pour certain ça fonctionne et ça rentre les données dans la base de données.
J'avous que là je sais pas.
Si quelqu'un voit comment régler le problème?
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 16h03   #7
Membre éprouvé
 
Inscription : septembre 2004
Messages : 368
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 368
Points : 402
Points : 402
- Est ce que les utlisateurs saisissent la meme information ? fais tu une verification des données saisies ?
- script Timed out, te signale que le code asp n'a pas pu s'executer dans le delais maximum fixé, ca ressemble a une routine qui tourne sans fin, un traitement trop trop long etc..

fais des response.write pour debuger, affiche le contenu de la chaine SQL que tu inseres...
Gwenn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 16h17   #8
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

As-tu déjà essayé d'utiliser Oledb avec le Jet engine?
Code :
1
2
3
4
5
6
7
8
 
function connexion_bd_access (nom_bd_access)  
  DSN_BASE = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & server.Mappath(nom_bd_access)
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Open DSN_BASE
  Set RS = Server.CreateObject("ADODB.Recordset")
  connexion_bd_access = RS
end function
Ryan
Mach 2, au moins...
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 23h13   #9
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Salut,
Il est EXTREMEMENT important que les utilisateurs aient de privilège "modifier" sur la base. Est-ce le cas?
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 08h35   #10
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Merci à tous! !!!
J'ai remplacer avec Oledb et j'attend qu'il y ai plus de gens au bureau pour tester.
Pour ce qui est des utilisateur, même si ils sont connectés avec leur login normallement c'est l'utilisateur IUSR_ qui ce connect à la BDD non?
Lui il à tous les droits!!!
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 09h16   #11
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Bon et bien j'ai tester avec deux utilisateur (différents) qui ce connectent en même temps et j'ai le message d'erreur :
Code :
1
2
3
4
5
Microsoft JET Database Engine error '80004005' 
 
Could not update; currently locked. 
 
/isy/formulaires/xxflboul/enquete/enquete.asp, line 43
La ligne 43 correspond à ma ligne d'insertion dans la BDD


Faudrait peut-être que je récupère si il y à un message d'erreur et dans ce cas là renvoyer la requête au bout d'un certain temps non?
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 09h16   #12
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Citation:
Envoyé par tribaleur
Pour ce qui est des utilisateur, même si ils sont connectés avec leur login normallement c'est l'utilisateur IUSR_ qui ce connect à la BDD non?
Non, si tu implémentes l'authentification c'est le login de l'internaute qui est utilisé. Sinon, à quoi ça sert?
A+
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 09h19   #13
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
merci Immobilis pour cette info.

P.S vu que ce sont des logins, de connection sur les PC, de réseau intranet c'est la même chose??
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 09h27   #14
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Si l'authentification sur les ordinateurs se fait sur les domaines OUI. Si c'est une authentification locale NON.
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2006, 09h28   #15
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Bon bin normallement c'est sur le domaine...
...
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 08h20   #16
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Bon bin personne ne sais comment savoir (en ASP) si une fois que la page est lancer si il y a une erreur ou si lors de l'execution d'une requête il y a eu une erreur???
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 09h06   #17
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Set conn = server.createobjet("ADODB.Connection")
on error resume next
 
conn.begintrans
 
(TRAITEMENT SQL)
 
If err.mumber = 0 THEN
     conn.committrans
     response.write("Requêtes executées sans erreur.")
ELSE
     conn.RollBackTrans
     response.write("Requêtes non executées. Une ou plusieurs erreurs ses ont produites : " & err.description)
END IF
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 09h24   #18
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Merci immobilis.

Cependant j'ai une question.

A quoi sert conn. begintrans et conn.committrans?
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 09h52   #19
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 849
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 849
Points : 5 965
Points : 5 965
+ transaction
Immobilis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2006, 11h31   #20
Membre actif
 
Avatar de tribaleur
 
Développeur informatique
Inscription : mai 2006
Messages : 342
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2006
Messages : 342
Points : 177
Points : 177
Bon voila la suite de mon problème...

J'ai une boucle while qui me permet d'insérer dans ma table la réponse à toutes mes questions.
Cependant si l'une d'elle ne fonctionne pas (ce qui est le cas quand plusieurs utilisateurs répondent en même temps) on n'inscrit pas sa réponse dans la table T_reponse et donc après sa me met en l'air mes statistiques!!!

Je voudrait donc que si une des réponses ne peut pas être inséré dans la table on ne rentre pas les autres.

J'ai essaier d'enregistrer dans une tables provisoir et que si tout ce passe bien de réenregistrer dans la vrais table mais ça fonctionne pas ça me met "time out".

Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
on error resume next
    conn.begintrans    
    mysql = "select num_quest as nb from T_question"
    if(RS.state = 1 )then RS.close
    RS.open mysql, conn     
 
    dat_actuel=year(now)                                        '///////récupère la date actuel sous le format aaaa//////
 
    while not RS.eof
     obj=request.form("commentaire"&RS("nb")&"")
     obj=replace(obj,"'","''")
     mysql = "insert into T_reponse_bis (date_rep,num_quest,reponse,commentaire) values ('"&dat_actuel&"','"&RS("nb")&"','"&request.form("question"&RS("nb")&"")&"','"&obj&"')"
     conn.execute mysql
     if err.mumber = 0 then
       conn.committrans
       RS.movenext
     else
       RS.eof=true
     end if     
    wend
 
    if err.mumber = 0 then
      mysql = "select num_quest as nb from T_question"
      if(RS.state = 1 )then RS.close
      RS.open mysql, conn     
 
      dat_actuel=year(now)                                        '///////récupère la date actuel sous le format aaaa//////
 
      while not RS.eof
       obj=request.form("commentaire"&RS("nb")&"")
       obj=replace(obj,"'","''")
       mysql = "insert into T_reponse (date_rep,num_quest,reponse,commentaire) values ('"&dat_actuel&"','"&RS("nb")&"','"&request.form("question"&RS("nb")&"")&"','"&obj&"')"
       conn.execute mysql
       RS.movenext
      wend
 
      mysql = "delete  from T_response_bis"
      if(RS.state = 1 )then RS.close
      conn.execute mysql
    else
      response.write"Requêtes non executées. Une ou plusieurs erreurs se sont produites"
    end if
 
    on error goto 0
 
    response.write "Merci d'avoir répondu"
Savez vous où est le problème???
Merci d'avance!!!
__________________
Rien n'est rien!!! ... Tout est quelque chose!!!

Petits liens utils :
-Chaine de connexion : http://www.connectionstrings.com/
-ADO et ADO.net : Tuto ADO et ADO.net
-Pour les utilisateurs d'ASP et VBscript : http://www.devguru.com/Technologies/...ript_list.html
tribaleur est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h10.


 
 
 
 
Partenaires

Hébergement Web