צפיות
תשובות
שגיאה מוזרה בASP – אשמח לעזרה.
לא מזמן העברתי את האתר שלי שרת,
בשרת החדש ישנה בעיה קטנה כל כך מציקה ומוזרה.
כשאני מנסזה לשלוף נתונים מבסיס נתונים של אקסל אני לפעמים (ורק לפעמים!) מקבל שגיאה, בשאר המקרים הכל עובד חלק.
השגיאה היא:
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 תשובות
אני חושב שאני יועד מה הבעיה..
קרה לי משהו דומה, שבעמוד שלי הוספתי לDB שלי רשומה, ואז מיד זה כתב את הרשומה, וכשלחצתי "חזרה לניהול" זה הרבה רווחים בתוך הרשומה שהוספתי.
אני מתאר לעצמי שאת צריכה לעשות מעבר בין עמודים. (Response.Redirect "קישור")
קודם תצרי עמוד שיוסיף את הנתונים, ותעשי העברה בסוף העמוד לעמוד שכתוב בו "התקבל בהצלחה" או.. האשכול שבו נוספה ההודעה למשל.
(אל תוסיפי קודי HTML, כי זה רק מוסיף את הנתונים ומעביר לעמוד אחר – שבו זה יגיד שזה היתקבל. [ואפשר לראות גם!])
זה מה שאני עשיתי וזה הסתדר לי..
מקווה שהבנת אותי ועזרתי לך :]
בעייתי מאד..
קודם כל, אני בן.
דבר שני – זה לא יעבוד כי בדף הזה אני לא מכניס נתונים, אלא שולף אותם…
באמת שאין לי מושגXD"
אני עוד לא צברתי נסיון בלהשתמש בתאריכים ושעות בASP..
אה אופס, סליחה <:
תודה על הרצון הטוב,
אך לא מדובר כאן על תאירכים ושעות.
אולי מישהו אחר חושב שהוא יודע למה השליפה הזו "נדפקת" לפעמים..?
2 רעיונות
1. אתה בטוח שתמיד מתקבלים כל הפרמטרים הדרושים? שמת את הערכים כאן לדוגמא או שכך אתה מריץ קבוע?
2. תנסה לייבא את כל הטבלאות לבסיס חדש, יכול להיות שמשהו נדפק בקובץ
ולהבא אנא יישר קוד שמאלה
אלי ענתבי
2 תגובות
1. השגיאה שכתובה התקבלה שהשתמשתי בשליפה הזו בדיוק…
2. ניסיתי – עדיין אותה בעיה…..
עוד ניסיון
במקום * תכתוב בדיוק את השדות שאתה צריך, יכול להיות שיש לך התנגשות בשמות השדות.
זה קורה על שאילתות נוספות או רק על זאת?
אלי ענתבי
עד עכשיו נתקלתי בבעיה רק בשאילתה הזו
אני אנסה מה שאמרת ואחזור לדווח.
תודה.
נראה לי שיש סיכוי
שלפעמים הפרמטר שאתה מכניס הוא עם רווח ואז זה תוקע לך את השירשור …
אשמח אם תוסיף לפה את הקוד ללא ה-"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:[email protected]
<img src="http://www.donkey.co.il/Briefcase/Uploads/35968.sign.jpg" border="0">
קצת קשה להאמין..
שיש רווח מדי פעם,
הרי הלינק לדף לא משתנה – כך שלא יכול להיות בש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
אני במקומך לא הייתי משתמש ב 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:[email protected]
<img src="http://www.donkey.co.il/Briefcase/Uploads/35968.sign.jpg" border="0">