[Microsoft][ODBC Microsoft Access Driver] System resource exceeded.

cs_Jackboy Messages postés 757 Date d'inscription vendredi 7 septembre 2001 Statut Membre Dernière intervention 19 juin 2008 - 10 mars 2006 à 01:17
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 - 13 mars 2006 à 09:02
Bonjour !

Je suis sous asp et access et j'ai beaucoup de probleme (vitesse) et maintenant cette erreur [Microsoft][ODBC Microsoft Access Driver] System resource exceeded. Je suis sur un hebergeur et donc je n'ai pas acces a la machine. J'aimerai savoir ce qu'il ce passe !!!

Comme mentionné dans un autre question ici, j'affiche un calendrier evenementielle et si une evenement est present dans la journee j'affiche une petite icone, donc la requete passe au maximum 31fois pour un mois de 31 jours, donc ce n'est pas vraiment demandant et ma requete est celle-ci :

'verifier si un event est present pour une journee
Public Sub EventBdDay(o_EnrDate, i_Year, i_Month, i_Day)

If i_Year <> "" and i_Month <> "" and i_Day <> "" Then
CreateRs rsItem, 3, 3
Dim DateEvent

DateEvent = i_Day & "/" & i_Month & "/" & i_Year
SQL_Query "SELECT Event_Id, Event_Date_Start FROM Event Where Event_Date_Start '" & DateEvent & "'"


rsItem.Open SQL_Query, strCon

if (rsItem.eof and rsItem.bof) then
'traitement si vide
o_EnrDate = 0
CloseRS(rsItem) 'call de la sub pour fin du recordset
else
'traitement si resultat
o_EnrDate = rsItem.recordcount
CloseRS(rsItem) 'call de la sub pour fin du recordset
end if
else
o_EnrDate = 0
end if
End Sub

Selon vous qu'elle solution serai a adopter et croyez vous que mon hebergeur est le probleme ???

1 réponse

cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
13 mars 2006 à 09:02
salut,

tu n'as pas essayé la requête que j'ai postée ?
dommage, tu n'aurais eu qu'une requête au lien de 31 !!!

Pour ton erreur (problème de ressources), un bon moyen de tester serait que tu download la base et que tu testes sur ta machine....

une des raisons qui cause cette erreur est que le nombre de connections à ta base access est trop grand... et là tu ne peux rien faire côté configuration, il faut corriger ton code ( est-ce que tu fermes correctement tes recordsets ? quel genre de recordset utilises-tu ? entre chaque requête si nécessaire ?).

Typiquement, le code que tu montres utilises trop de ressources pour ce qu'il fait:
tu vas chercher tous les events d'un jour pour savoir combien il y en a... pour savoir combien il y en a tu utilises recordcount (qui, je te le rappelle, parcours l'ensemble du recordset retourné).

Tu fais
rsItem.Open SQL_Query, strCon
Donc tu ouvres à chaque fois une nouvelle connection..... c'est certainement avec cela que tu bouffes toutes les ressources...

Pourquoi n'utilises-tu pas un "bête" :
'Ouverture de la connection au début de la page
SQL_Query "SELECT COUNT(Event_Id) AS nbEvents FROM Event Where Event_Date_Start '" & DateEvent & "'"

set oRs = oConn.Execute(SQL_Query)
iCount = oRs.Fields("nbEvents ").Value
oRs.close()
Set oRs=nothing

'fermeture de la connection à la fin de la page.

Ou retourne tous les jours du mois que je te l'ai indiqué dans un précédent post (comme ca tu n'as qu'une requête, qu'un seul recordset et qu'une connection... donc 31 fois moins de ressources ).

autrement, problème d'espace disque dur ?

yopyop
0
Rejoignez-nous