שלח תשובה

זירת השאלות

498
צפיות
11
תשובות

שגיאה מוזרה בASP – אשמח לעזרה.

,‏ 17 בדצמבר, 2008

לא מזמן העברתי את האתר שלי שרת,
בשרת החדש ישנה בעיה קטנה כל כך מציקה ומוזרה.

כשאני מנסזה לשלוף נתונים מבסיס נתונים של אקסל אני לפעמים (ורק לפעמים!) מקבל שגיאה, בשאר המקרים הכל עובד חלק.
השגיאה היא:

Microsoft JET Database Engine

No value given for one or more required parameters.


השאילתה עבור הדף הזה היא:

SELECT * FROM forum WHERE forum.rootId in (SELECT TOP 10 fixedForum.rootID FROM fixedForum where fixedForum.maxforumid = 3 ORDER BY fixedForum.maxlastmod DESC) and forum.forumid = 3 ORDER BY forum.lastmod desc

3 הוא כמובן ערך משתנה בהתאם לquery

לשיגאה אין זמן מוגדר.. פעם כן ופעם לא,
ממש לפי מצבי רוח.

נכון לעכשיו הוספתי on error resume next
ושורת מלל שאומרת שהתרחשה בעיה בטעינה – אנא המתן מספר שניות
והדף עובר ריפרש לבד.
ופתאום – הכל מוצג טוב.


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

תגיות:

11 תשובות

  1. elron100duck הגיב:

    אני חושב שאני יועד מה הבעיה..
    קרה לי משהו דומה, שבעמוד שלי הוספתי לDB שלי רשומה, ואז מיד זה כתב את הרשומה, וכשלחצתי "חזרה לניהול" זה הרבה רווחים בתוך הרשומה שהוספתי.
    אני מתאר לעצמי שאת צריכה לעשות מעבר בין עמודים. (Response.Redirect "קישור")

    קודם תצרי עמוד שיוסיף את הנתונים, ותעשי העברה בסוף העמוד לעמוד שכתוב בו "התקבל בהצלחה" או.. האשכול שבו נוספה ההודעה למשל.
    (אל תוסיפי קודי HTML, כי זה רק מוסיף את הנתונים ומעביר לעמוד אחר – שבו זה יגיד שזה היתקבל. [ואפשר לראות גם!])

    זה מה שאני עשיתי וזה הסתדר לי..
    מקווה שהבנת אותי ועזרתי לך :]

  2. Or B הגיב:

    בעייתי מאד..
    קודם כל, אני בן.  

    דבר שני – זה לא יעבוד כי בדף הזה אני לא מכניס נתונים, אלא שולף אותם…

  3. elron100duck הגיב:

    באמת שאין לי מושגXD"
    אני עוד לא צברתי נסיון בלהשתמש בתאריכים ושעות בASP..

    אה אופס, סליחה <:

  4. Or B הגיב:

    תודה על הרצון הטוב,
    אך לא מדובר כאן על תאירכים ושעות.

    אולי מישהו אחר חושב שהוא יודע למה השליפה הזו "נדפקת" לפעמים..?

  5. 2 רעיונות
    1. אתה בטוח שתמיד מתקבלים כל הפרמטרים הדרושים? שמת את הערכים כאן לדוגמא או שכך אתה מריץ קבוע?

    2. תנסה לייבא את כל הטבלאות לבסיס חדש, יכול להיות שמשהו נדפק בקובץ

    ולהבא אנא יישר קוד שמאלה


    אלי ענתבי

  6. Or B הגיב:

    2 תגובות
    1. השגיאה שכתובה התקבלה שהשתמשתי בשליפה הזו בדיוק…

    2. ניסיתי – עדיין אותה בעיה…..

  7. עוד ניסיון
    במקום * תכתוב בדיוק את השדות שאתה צריך, יכול להיות שיש לך התנגשות בשמות השדות.

    זה קורה על שאילתות נוספות או רק על זאת?


    אלי ענתבי

  8. Or B הגיב:

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

    תודה.

  9. vsystems הגיב:

    נראה לי שיש סיכוי
    שלפעמים הפרמטר שאתה מכניס הוא עם רווח ואז זה תוקע לך את השירשור …
    אשמח אם תוסיף לפה את הקוד ללא ה-"3" אלא אם הפרמטר…
    וגם אם תדפיס את הקוד דרך האתר זאת אומרת תכניס אותו לפרמטר
    לדוגמא:
    sqlStr = ""
    ואז תדפיס
    response.write(sqlStr(

    תודה.

    (אני לא מאמין שON ERROR RESUME NEXT זה משהו יעיל וטוב)


        Dvir Levanon | HTML
    Museum Tower, 23rd floor, 4 Berkovitz St. Tel-Aviv 64238
    Tel: 0506593357
    Web Site: http://www.vise.co.il
    E-mail:dvir.levanon@gmail.com
    <img src="http://www.donkey.co.il/Briefcase/Uploads/35968.sign.jpg&quot; border="0">

  10. Or B הגיב:

    קצת קשה להאמין..
    שיש רווח מדי פעם,
    הרי הלינק לדף לא משתנה – כך שלא יכול להיות בשQUERY יש פעם רוח ופעם אין,
    ובכל מקרה – אחרי ריפרש הדף עובד כמו חדש.
    אבל יודע מה, אני אנסה בכל זאת לעשות trim(q)

    אגב, מה הסבירות שקוד כזה נובע מבעיית שרת?
    הרי בשרת הקודם לא היתה שום בעיה…
    לפעמים אני חושב שזו בעיה של השרת עם הקישור לבסיס נתונים…
    יש אולי אפשרות לשנות את הקישוריות אליו למשהו אחר?

    בכל מקרה, מצורף הקוד שיוצר את הבעיה,
    את השגיאה אני מקבל על השורה האחרונה.

    recforpage = 10
    x = cInt(Request.QueryString("pageid")-1)

    if len(request.queryString("pageID"))=0 then
       x=0
    else
         x = cint(cint(request.queryString("pageid"))-1)
    end if

    subSubQuery = " SELECT TOP "&(recforpage *x)&" fixedforum.rootID FROM fixedforum where fixedforum.MAXforumid = " & forumid & " ORDER BY fixedforum.MAXlastmod desc)"

    if x<=0 then
    subQuery = "SELECT TOP " & recforpage & " fixedforum.rootID FROM fixedforum where fixedforum.MAXforumid = " & forumid & " ORDER BY fixedforum.MAXlastmod DESC"
    else
    subQuery = "SELECT TOP " & recforpage & " fixedforum.rootID FROM fixedforum WHERE fixedforum.MAXforumid = " & forumid & " and rootID not in (" & subSubQuery & " ORDER BY fixedforum.MAXlastmod DESC"
    END if

    Set oConn=Server.CreateObject("ADODB.connection")
    oConn.Open "Provider=microsoft.jet.oledb.4.0; data source="&Server.mapPath(dbdir)&";"
    query ="SELECT *" & _
                 " FROM forum" &_
                 " WHERE forum.rootID in ("&subQuery&")" &_
                 " and forum.forumid = " & forumid & " ORDER BY forum.lastmod desc"
    SET rs = Server.CreateObject("ADODB.Recordset")
    rs.Open query, oConn ,0,1

  11. vsystems הגיב:

    אני במקומך לא הייתי משתמש ב LEN
    LEN זה יותר ל STRING מאשר למספר … (לדעתי)
    ממה שהבנתי אתה מכניס ל X את הערך של PAGEID ומוריד ממנו 1 ,
    זאת אומרת שאם זה 0 זה -1 ואז ה LEN בודקת את האורך של 0 והוא צריך להחזיר 1
    ואז X = -1
    למרות שאני לא מבין את כל הקטע של ה CINT אני הייתי מתקן כמה דברים כגון:
    יש נקודה שאתה משתמש בpageID ולא pageid הייתי מחליט על CASE אחד או ID גדול או id קטן ומגדיר אותו בתור משתנה INTEGER .

    DimTempPageID
    TempPageID = int(requset.querystring("pageid’))
    ועכשיו מתחיל להשתמש רק בו במקום INT בכל מקום.

    ואם אתה משתמש ב LEN בשביל לבדוק אם התקבל קלט מהQUERYSTRING אז הייתי משתמש ב
    if request.querystring("pageid") = "" then
    או
    if IsNull(request.querystring("pageid") then


        Dvir Levanon | HTML
    Museum Tower, 23rd floor, 4 Berkovitz St. Tel-Aviv 64238
    Tel: 0506593357
    Web Site: http://www.vise.co.il
    E-mail:dvir.levanon@gmail.com
    <img src="http://www.donkey.co.il/Briefcase/Uploads/35968.sign.jpg&quot; border="0">

שלח תשובה

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!