שלח תשובה

זירת השאלות

520
צפיות
13
תשובות

בעיה עם rs.EOF

,‏ 11 באפריל, 2005

יש לי בעיה עם הEOF של rs..
אני מבצע שאילתת בחירה, ועושה תנאי if..else..end if על הערך של rs.EOF.
בדקתי בPHPMyAdmin את השאילתה, ומוחזרות רשומות.
אבל משום מה, למרות שהוחזרו רשומות הRS מתעלם מהתנאי שיצרתי קודם וממשיך כאילו לא הוחזרו רשומות.

מה יכולה להיות הבעיה?

תגיות:

13 תשובות

  1. Night הגיב:

    הינה

    rs.Open sql
    if not rs.EOF then
    dim ID
    ID=rs("ID")
    rs.Close
    conn.Close

    sql="SELECT ……"
    conn.Open "DSN=mydsn"
    rs.Open sql
      if rs.EOF then
      rs.Close
      set rs=nothing
      conn.Close
      sql="UPDATE….. "
      conn.Open "DSN=mydsn2"
      conn.Execute sql
      conn.Close
      conn.Open "DSN=mydsn"
    else
      rs.Close
      set rs=nothing
    end if
    end if

    כמו שאפשר לראות, יש תנאי rs.eof אחד בתוך השני (אולי זה קשור לבעיה?)
    התנאי המודגש (הפנימי) הוא התנאי שאליו אני מתכוון.

  2. BuildHome הגיב:

    כשאתה מנסה לבצע שאילתה
    אתה לא מגדיר גם את החיבור בפתיחה (rs.open). אין לך שגיאה?

    למה אתה פותח וסוגר כל הזמן את החיבור?

  3. Night הגיב:

    תשובה
    אחרי שאני מכניס אובייקט רקורדסט למשתנה rs, אני משתמש במאפיין
    rs.activeconnection
    וקובע לו שהחיבור שאני משתמש בו הוא conn, לכן אין שגיאה.

    אני סוגר ופותח את החיבור בגלל שאני צריך לבצע את השאילתה על מסדי נתונים שונים..

  4. Night הגיב:

    אין משהו שאני יכול לעשות
    בעיניין? זה אבוד?
    איך אני פותר את הבעיה (גם אם זה באופן עקיף)?

  5. BuildHome הגיב:

    אז בעצם הקוד שנתת
    הוא אחרי חיתוך ומחיקה של שורות קוד אחרות.

    די קשה לקבוע כאן היכן הבעיה.

  6. Night הגיב:

    השורות שמחקתי
    הם הכנסת נתונים למשתנים..
    זה בטח לא מה שעושה את הבעיה לא?

    יכול להיות שזה קורה בגלל שזה תנאי rs.EOF בתוך אחר?

  7. iliakap2002 הגיב:

    שאלה לי אלייך…
    זאת לא שאלה שאמורה לקטול אותך או משהו.
    אבל חייבים לסגור את אובייקט החיבור?

    הכוונה שלי היא שכשסגרת את ה RS סגרת גם את החיבור ואז פתחת אותו שוב
    ואז פתחת את ה RS שוב.
    הקודים שלי פועלים מצויין למשל בלי לסגור אובייקט חיבור.

  8. Night הגיב:

    לא
    לא צריך לסגור את החיבור אלה אם מסיימים את העבודה עם המסד..

    אני עושה את זה בגלל שאני מחליף מסד נתונים כל שאילתה.

  9. Night הגיב:

    אין פתרון?
    זה הורס לי את כל המערכת..
    יש אולי רעין לדרך עקיפה, ואולי מתוחכמת?

  10. BuildHome הגיב:

    נסה לקרוא לרקורדסט השני בשם אחר

  11. Night הגיב:

    הצלחתי לפתור את הבעיה
    כנראה בגלל הconn.close וopen מחדש, המאפיין rs.activeconnection התאפס ככה שלרקורדסט לא היה קונקשיין..

    אז בסופו של דבר עשיתי כך:
    rs.open sql, conn
    וזה פתר את הבעיה..

    תודה רבה שניסיתם לעזור לי.

שלח תשובה