צפיות
תשובות
*****אני חייב את העזרה שלכם! ******
תראו, אני רק רוצה למחוק מתוך הטבלה 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 תשובות
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 < Now()-0.015 "
conn.close
set conn=nothing
%>
תודה לעוזרים!
תשתמש ב-dateAdd
ניסתי וזה עדיין לא מצליח
אולי יש עוד משהו שיכול לעזור?
אולי אוריקס?!
הינה תראו קוד ב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()) "
——————————————————–^
מה עושים?!
נסה אולי
להכניס את השאילתא לתוך משתנה ותדפיס אותה וכך תראנ מה יוצא מהשאילתא הסופית. ותראה לנו את הפלט
רעיון מצויין..אני אנסה עכשיו…:)
רעיון טוב, רק חבל שלא עובד…
הינה הקוד:
<%
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&" "
מה עושים?!
שני דברים
1. התכוונתי שתדפיס את השאילתא שלך ותרא לנו את המתקבל
2. רצוי לעבוד עם הפוקנציות של SQL לטיפול בתאריכים ולא עם של VBS ולכן תכניס בחזרה את ה-dateAdd למשפט ה-DELETE
עשיתי, אבל כידוע לך הבעיה לא ניפתרה
מה הלאה?!
ואולי יש כאן עוד כמה אנשים טובים שמוכנים לעזור לי ולניר?!
אבל לא הראת לנו את המתקבל…
אהההההה הינה
בגלל שזה WEBSAMBA אז הזמן הוא ב7 שעות יותר….
בכול מקרה עשיתי השווהה בינהם:
תאריך ושעה רגילים:
4/22/2004 8:02:13 AM
תאריך ושעה חדשים:
4/22/2004 8:03:13 AM
מה הלאה ניר?
את כל השאילתא !
לא הבנתי בדיוק, אבל אולי זה
התכונת לקוד של התאריך והשעה המחודשים?! אם כן אז הינה
תאריך ושעה רגילים: <b><%= Now() %><br><br>
תאריך ושעה מחודשים: <b><%=DateAdd("n",1,now()) %><br><br><BR><BR>
התכוונתי שתכניס את השאילתא
למשתנה תדפיס אותה ותציג לנו את הפלט
הינה, אני מקווה שהפעם התכוונת לזה
עשיתי כך:
<%
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
התכוונתי לדבר הבא ו…
תכניס את השאילתא למתשנה ותדפיס את המשתנה
ותראה לנו את השאילתא המתקבלת.
דבר שני בדוק ש-clock זה לא טקסט ושזה שדה מסוג תאריך/שעה
אם זה תאריך שעה אתה צריך לעטוף את המשתנה בסולמיות #
כמה דברים…
תראה, עשיתי חושבים עם עצמי והגעצי למסקנה שאני כנראה לא יודע מזה "שאילתא" כי אחרי כול הקודים שרשמתי וכתבתי כאן ואמרת שזה לא נכון כנראה שאני לא יודע מזה….
אולי תסביר לי?
ו-clock זה אכן תאריך/שעה אבל לא הבנתי את כול הקטע עם ה# כלומר עשיתי ככה:
conn.Execute "delete from admin where clock < # tdate # "
אבל זה לא נכון לצערי…
אז אתה מוכן באדיבותך הרבה לענות לי על 2 השאלות האלה ?
הערה לגבי הקוד הקודם…
מה שיש בתוך ה# זה שלפני זה הפחתי את הDateDiff למשתנה רגיל…
שאילתא = קוד SQL
לשליפה, הכנסה, שינוי, מחיקה… יחסית לאחד שעובד עם SQL אני דיי מתפלא אבל טוב…
תכניס את השורה הבאה לתוך משתנה ותדפיס לנו את המשתנה
delete from session where need < DateAdd("n",1,now())
גם זה לא
תראה מה רשמתי:
<% 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())
——————–^
עטוף בגרשיים
קיוותי שתבין
אה נכון
טוב אני שכחתי…
אני כרגע בביה"ס אבל כשאני יחזור אני אסדר זאת וינסה שוב…
ניר אתה טועה בגדול….
שיים לב מה עשיתי:
אמרת לי להכניס את השאילתא לתוך משתנה כולל עם גרשיים
והינה עשיתי אבל זה ממש לא נכון!
הינה הקוד:
<% 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())"
———————————————————————^
אני מקווה שאתה מבין למה יש את השגיאה כי אני כבר הבנתי…
מה עושים?!
הגיון פשוט בבקשה…
<% testing = "delete from session where need < "&DateAdd('n',1,now())&" %>
<%= testing %>
ניר, אתה שוב טועה….
העתקתי בדיוק את אותו הקוד שנת לי קודם
ויש עכשיו שגיאה:
Microsoft VBScript compilation error '800a03ea'
Syntax error
/bananai/online/page1.asp, line 16
testing = "delete from admin where clock < "&DateAdd('n',1,now())&"
——————————————————————–^
יש לי רעיון!
אם אני אסביר לך מה בדיוק אני רוצה לבצע אולי אתה תוכל לתת לי רעיון אחר..!
תשמע,
אני רוצה לבנות מערכת שבודקת מי נמצא באתר און ליין וזה מכניס את השם שלו וכו'…
עכשיו הדף שלא מסתדר לי זה הדף הדף שמבצע פעולות הבאות:
א) בדיקה אם אותו אדם מחובר אז עושים עדכון אם לא עושים הכנסה למסד…
ב) מחיקת כול מי שלא נמצא מתחת לדקה (זה מה שלא מצליח לי!!)
ג) מראה את התוצאות (מי נמצא באתר….
אולי יש לך רעיון אחר…?
אז למה לא להשתמש ב-dataDiff?
הפונקציה הזו מחזירה את הפרשי הזמנים בין שני זמנים נתונים…
עוד במדריך ה-VBS (על תתפוס אותי במילה–> אני לא מבין גדול ב-VBS , אני JS בלב ובנפש )