שלח תשובה

זירת השאלות

810
צפיות
28
תשובות

*****אני חייב את העזרה שלכם! ******

,‏ 20 באפריל, 2004

תראו, אני רק רוצה למחוק מתוך הטבלה session את הרשומה now באקסס שלי (now זה תאריך/שעה שבו נכנס הערך של התאריך והשעה) את כול מי שעבר לו דקה אחת.

ניסתי לבנות את הקוד אבל הוא לא מצליח לי 🙁
זה הקוד שלי:


<%
' מחיקת כול הרשומות
dsn="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("online.mdb") &""
set conn=server.createobject("adodb.connection")
conn.open dsn

conn.Execute "delete from session where now < Now()-0.015 "

conn.close
set conn=nothing
%>


כמו שאתם רואים אני רוצה למחוק מהnow את כול מה שעבר זמנו ב(אין לי מושג מה..חבר שלי אמר לי להוסיף את זה..אבל עקרונית שימחוק אחרי דקה).

בכול מקרה הינה הודעות השגיאה:


Microsoft JET Database Engine error '80040e14'

Syntax error in FROM clause.

/bananai/online/sessions.asp, line 18



וזו השורה הפגומה…


conn.Execute "delete from session where now < Now()-0.015 "



אשמח אם תעזרו לי לתקן את זה
או שתתקנו לי ותמרו לי מה היתה הבעיה…

תודה מראש!

תגיות:

28 תשובות

  1. ניר טייב הגיב:

    now
    זו מילה שמורה במסדי נתונים לא ניתן להשתמש בה כטבלה אלה אם מצהירים אותה כשם ע"י סוגריים מרובעים

  2. אוקי, אבל הבעיה עדיין לא נפתרה…:(
    אותה הודעת שגיאה מופיעה לי…

    רק שהפעם שינתי קצת את הקוד…


    <%
    ' מחיקת כול הרשומות
    dsn="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("online.mdb") &""
    set conn=server.createobject("adodb.connection")
    conn.open dsn

    conn.Execute "delete from session where need < Now()-0.015 "

    conn.close
    set conn=nothing
    %>

    תודה לעוזרים!

  3. ניסתי וזה עדיין לא מצליח

    אולי יש עוד משהו שיכול לעזור?
    אולי אוריקס?!

  4. הינה תראו קוד בADDDATE שגם לא עובד.
    הקוד:


    <%
    ' מחיקת כול הרשומות
    dsn="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("online.mdb") &""
    set conn=server.createobject("adodb.connection")
    conn.open dsn

    conn.Execute "delete from session where need < DateAdd("n",1,now()) "

    conn.close
    set conn=nothing
    %>

    השגיאה:


    Microsoft VBScript compilation error '800a0401'

    Expected end of statement

    /bananai/online/sessions.asp, line 18

    conn.Execute "delete from session where need < DateAdd("n",1,now()) "
    ——————————————————–^

    מה עושים?!

  5. ניר טייב הגיב:

    נסה אולי
    להכניס את השאילתא לתוך משתנה ותדפיס אותה וכך תראנ מה יוצא מהשאילתא הסופית. ותראה לנו את הפלט

  6. רעיון טוב, רק חבל שלא עובד…
    הינה הקוד:


    <%
    look = DateAdd("n",1,now())
    %>
    <%
    ' מחיקת כול הרשומות
    dsn="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("online.mdb") &""
    set conn=server.createobject("adodb.connection")
    conn.open dsn

    conn.Execute "delete from session where need < "&look&" "

    conn.close
    set conn=nothing
    %>

    בקוד הזה ניסתי להוריד מסביב הlook את הגרשים והדבר המסולסל הזה…
    גם ניסתי להוסיף את זה ' אבל זה לא מצליח..

    הינה הודעת השגיאה:


    Microsoft JET Database Engine error '80040e14'

    Syntax error in FROM clause.

    /bananai/online/sessions.asp, line 21

    וזו השורה הפגומה:


    conn.Execute "delete from session where need < "&look&" "

    מה עושים?!

  7. ניר טייב הגיב:

    שני דברים
    1. התכוונתי שתדפיס את השאילתא שלך ותרא לנו את המתקבל
    2. רצוי לעבוד עם הפוקנציות של SQL לטיפול בתאריכים ולא עם של VBS ולכן תכניס בחזרה את ה-dateAdd למשפט ה-DELETE

  8. עשיתי, אבל כידוע לך הבעיה לא ניפתרה

    מה הלאה?!
    ואולי יש כאן עוד כמה אנשים טובים שמוכנים לעזור לי ולניר?!

  9. אהההההה הינה
    בגלל שזה WEBSAMBA אז הזמן הוא ב7 שעות יותר….

    בכול מקרה עשיתי השווהה בינהם:

    תאריך ושעה רגילים:
    4/22/2004 8:02:13 AM

    תאריך ושעה חדשים:
    4/22/2004 8:03:13 AM

    מה הלאה ניר?

  10. לא הבנתי בדיוק, אבל אולי זה
    התכונת לקוד של התאריך והשעה המחודשים?! אם כן אז הינה


    תאריך ושעה רגילים: <b><%= Now() %><br><br>
    תאריך ושעה מחודשים: <b><%=DateAdd("n",1,now()) %><br><br><BR><BR>

  11. ניר טייב הגיב:

    התכוונתי שתכניס את השאילתא
    למשתנה תדפיס אותה ותציג לנו את הפלט

  12. הינה, אני מקווה שהפעם התכוונת לזה
    עשיתי כך:


    <%
    tdate = DateAdd("n",1,now())
    %>
    <%= tdate %>

    וקיבלתי את הפלט הזה:


    4/22/2004 10:43:03 AM

    ניסתי להכניס את זה לתוך משפט הDELETE וקיבלת (כרגיל) שגיאה

    הקוד:


    conn.Execute "delete from admin where clock < '"& tdate &"' "

    השגיאה:


    Microsoft JET Database Engine error '80040e07'

    Data type mismatch in criteria expression.

    /bananai/online/page1.asp, line 23

  13. ניר טייב הגיב:

    התכוונתי לדבר הבא ו…
    תכניס את השאילתא למתשנה ותדפיס את המשתנה
    ותראה לנו את השאילתא המתקבלת.

    דבר שני בדוק ש-clock זה לא טקסט ושזה שדה מסוג תאריך/שעה
    אם זה תאריך שעה אתה צריך לעטוף את המשתנה בסולמיות #

  14. כמה דברים…
    תראה, עשיתי חושבים עם עצמי והגעצי למסקנה שאני כנראה לא יודע מזה "שאילתא" כי אחרי כול הקודים שרשמתי וכתבתי כאן ואמרת שזה לא נכון כנראה שאני לא יודע מזה….
    אולי תסביר לי?

    ו-clock זה אכן תאריך/שעה אבל לא הבנתי את כול הקטע עם ה# כלומר עשיתי ככה:


    conn.Execute "delete from admin where clock < # tdate # "

    אבל זה לא נכון לצערי…

    אז אתה מוכן באדיבותך הרבה לענות לי על 2 השאלות האלה ?

  15. הערה לגבי הקוד הקודם…
    מה שיש בתוך ה# זה שלפני זה הפחתי את הDateDiff למשתנה רגיל…

  16. ניר טייב הגיב:

    שאילתא = קוד SQL
    לשליפה, הכנסה, שינוי, מחיקה… יחסית לאחד שעובד עם SQL אני דיי מתפלא אבל טוב…
    תכניס את השורה הבאה לתוך משתנה ותדפיס לנו את המשתנה

    delete from session where need < DateAdd("n",1,now())

  17. גם זה לא
    תראה מה רשמתי:


    <% testing = delete from session where need < DateAdd("n",1,now()) %>
    <%= testing %>

    והודעת השגיאה:


    Microsoft VBScript compilation error '800a0401'

    Expected end of statement

    /bananai/online/page1.asp, line 17

    testing = delete from session where need < DateAdd("n",1,now())
    ——————–^

  18. אה נכון
    טוב אני שכחתי…
    אני כרגע בביה"ס אבל כשאני יחזור אני אסדר זאת וינסה שוב…

  19. ניר אתה טועה בגדול….
    שיים לב מה עשיתי:
    אמרת לי להכניס את השאילתא לתוך משתנה כולל עם גרשיים
    והינה עשיתי אבל זה ממש לא נכון!

    הינה הקוד:


    <% testing = "delete from session where need < DateAdd("n",1,now())" %>
    <%= testing %>

    הינה השגיאה!


    Microsoft VBScript compilation error '800a0401'

    Expected end of statement

    /bananai/online/page1.asp, line 16

    testing = "delete from session where need < DateAdd("n",1,now())"
    ———————————————————————^

    אני מקווה שאתה מבין למה יש את השגיאה כי אני כבר הבנתי…

    מה עושים?!

  20. ניר טייב הגיב:

    הגיון פשוט בבקשה…


    <% testing = "delete from session where need < "&DateAdd('n',1,now())&" %>
    <%= testing %>

  21. ניר, אתה שוב טועה….
    העתקתי בדיוק את אותו הקוד שנת לי קודם
    ויש עכשיו שגיאה:


    Microsoft VBScript compilation error '800a03ea'

    Syntax error

    /bananai/online/page1.asp, line 16

    testing = "delete from admin where clock < "&DateAdd('n',1,now())&"
    ——————————————————————–^

  22. יש לי רעיון!
    אם אני אסביר לך מה בדיוק אני רוצה לבצע אולי אתה תוכל לתת לי רעיון אחר..!

    תשמע,
    אני רוצה לבנות מערכת שבודקת מי נמצא באתר און ליין וזה מכניס את השם שלו וכו'…

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

    אולי יש לך רעיון אחר…?

  23. ניר טייב הגיב:

    אז למה לא להשתמש ב-dataDiff?
    הפונקציה הזו מחזירה את הפרשי הזמנים בין שני זמנים נתונים…
    עוד במדריך ה-VBS (על תתפוס אותי במילה–> אני לא מבין גדול ב-VBS , אני JS בלב ובנפש )

שלח תשובה