IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

ADODB.Field error '80020009' Object is no longer valid.


Sujet :

ASP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut ADODB.Field error '80020009' Object is no longer valid.
    Bonjour à tous,

    je travaille sur un système de newsletter en ASP et voilà un jour entier que je me heurte à cette erreur :

    ADODB.Field error '80020009'

    Object is no longer valid.

    /newsletter/sendNle.asp, line 0

    D'après ce que j'ai trouvé sur le net, il semblerai que cette erreur est souvent dûe à l'utilisation d'un Recordset sur une autre page que celui où il a été instancié en le passant par la session (http://www.aspfaq.com/show.asp?id=2421).

    Le vrai problème, c'est que ce n'est pas du tout mon cas !!!

    Voilà des extraits simplifié de mon code (note : tout est situé sur la même page)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    Function getGenData()
    	Dim monthTxt(13)
    	monthTxt(1) = "January"
    	monthTxt(2) = "February"
    	monthTxt(3) = "March"
    	monthTxt(4) = "April"
    	monthTxt(5) = "May"
    	monthTxt(6) = "June"
    	monthTxt(7) = "July"
    	monthTxt(8) = "August"
    	monthTxt(9) = "September"
    	monthTxt(10) = "October"
    	monthTxt(11) = "November"
    	monthTxt(12) = "December"
     
    	'CATEGORIES
    	sql = "SELECT * FROM nle_category"
    	sql = sql & " ORDER BY cat_num"
     
      Dim cmdCat, resCat
     
      Set cmdCat = Server.CreateObject("ADODB.Command")
    	Set resCat = Server.CreateObject("ADODB.Recordset")
     
      cmdCat.ActiveConnection = cnx
      cmdCat.CommandText = sql
     
      resCat.Open cmdCat.Execute
     
    	Dim categories()
    	While NOT resCat.EOF
    		ReDim Preserve categories(CInt(resCat("cat_num")))
    		categories(resCat("cat_num")) = Array(resCat("cat_name"), resCat("cat_pic"))
    		resCat.MoveNext
    	Wend
     
    	Dim genData(2)
    	genData(0) = monthTxt
    	genData(1) = categories
     
    	getGenData = genData
    End Function
     
    Function getPlainEmail(nleData, genData)
    	title = "Newsletter - Issue #" & nleData(0)("nle_issue") & " - " & genData(0)(DatePart("m",nleData(0)("nle_date"))) & " " & DatePart("yyyy",nleData(0)("nle_date"))
     
    	email = ""
    	email = email & title & VbCr & VbCr & VbCr
     
    	'paragraphs
    	While NOT nleData(1).EOF
    		email = email & genData(1)(nleData(1)("para_cat"))(0) & VbCr & VbCr 'category
    		email = email & nleData(1)("para_title") & VbCr
    		email = email & printCch(nleData(1)("para_body")) & VbCr
    		email = email & "More: " & resolveLink(nleData(1)("para_link")) & VbCr & VbCr & VbCr
    		nleData(1).MoveNext
    	Wend 
     
    	'unsubcription
    	email = email & VbCr & "To unscubscribe to the newsletter, go to ???"
     
    	getPlainEmail = email
    End Function
    après avoir commenté une à une les lignes, celle qui semble générer l'erreur est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    email = email & genData(1)(nleData(1)("para_cat"))(0) & VbCr & VbCr 'category
    j'ai essayer de remplacer cette ligne par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write genData(1)(1)(0)
    et l'erreur reste la même

    j'avoue ne rien y comprendre... Et je m'arrache les cheveux !!!

    Quelqu'un aurait-il une idée ?
    (8^)>
    `\\\\\\

  2. #2
    Membre averti Avatar de pmboutteau
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 601
    Points : 420
    Points
    420
    Par défaut
    y'a pas un délire avec la déclaration de la taille de ton tableau. Je n'ai jamais utilisé les tableaux en asp mais çà pourrait bien venir de là.
    ours ours !! Au début elle est froide mais après elle est bonne!

  3. #3
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    dans la déclaration de ton tableau tu n'instencies pas la dimension 0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim monthTxt(13) 
    monthTxt(0) = ""
       monthTxt(1) = "January"
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/01/2008, 11h58
  2. Message d'erreur ADODB.Field error '80020009'
    Par tonyC dans le forum ASP
    Réponses: 2
    Dernier message: 23/07/2005, 16h00
  3. Réponses: 2
    Dernier message: 19/04/2005, 15h31
  4. Error 80020009. Exception occurred
    Par twizell dans le forum ASP
    Réponses: 5
    Dernier message: 14/04/2005, 20h35
  5. error 80020009 une exception s'est produite
    Par Riouxe21 dans le forum ASP
    Réponses: 6
    Dernier message: 21/12/2004, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo