<% var strString=""; var strSQL=("SELECT * FROM tblSms WHERE ([Date]=Date())"); strSQL=("SELECT TOP 5 Right(data, Len(data)-3) FROM tblSms ORDER BY ID DESC");
var RS=GetRS(strSQL); while(!RS.eof) { strString=strString + RS("data"); RS.MoveNext(); } %>
תן לי כמה דברים: מאיזה סוג השדה DATE שלך? תן לי את הודעת השגיאה ותראה לי באיזו שורה היא מופיעה.
הדבר הכי חשוב שאתה צריך לזכור שאמרתי לך שלא ניסיתי את הקוד שנתתי לך ויכול להיות שיש בו טעות קטנה, אני מציע לך שקודם תבדוק את הקוד על יבש ללא משפט SQL ורק לאחר מכן תיישם אותו במשפט ה- SQL שלך אתה תראה שזה יעזור לך בהמשך בכל מה שקשור לבניית אתרים.
לא שאלתי את זה נכון השאלה הייתה האם עדיף לחתוך את המחרוזת במשפט ה- SQL או שעדיף להוציא קודם את הנתונים ורק אחרי שסגרנו את ה- CONN לחתוך כל מחרוזת לפני הפליטה?
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
אני חושב שהבעיה נובעת מכך שהשדה שלך הוא מסוג DATE. אולי צריך להמיר אותו למחרוזת. הייתי בודק את המשפטים שאני שולח אבל אין לי במחשב הזה ACCESS. בכל אופן תנסה לעבוד שניה על שדה אחר בבסיס נתונים שהוא מסוג מחרוזת, ונראה מה יקרה, ואל תתבאס רק ככה לומדים
23 תשובות
אתה מתכוון ללא 3 רשומות ראשונות?
אם אתה מתכוון לרשומות אז משהו כזה:
select * from [yourDB]
where field_id not in
(select top 3 * from [yourDB])
הכוונה היא להציג את הרשומה
הכוונה היא להציג את הרשומה ללא 3 תווים ראשונים.
נראה לי שאני צריך למספר את כל התווים….
תסתכל בקישור הבא:
תעיין בפונקציות right ו – left
תודה, תוכל לרשום דוגמא לכזו פונקציה

אתה רוצה את כל השאילתה?
כן, אם אפשר..
קבל:
אתה בודק את אורך המחרוזת מפחית ממנה 3 ומוציא את אורך ההפרש
select right(detail,len(detail)-3) from yourDB
לא בדקתי אם זה עובד
אבל הרעיון אני מקווה שברור
תודה, אבל משום מה אני מקבל שגיאה
<%
var strString="";
var strSQL=("SELECT * FROM tblSms WHERE ([Date]=Date())");
strSQL=("SELECT TOP 5 Right(data, Len(data)-3) FROM tblSms ORDER BY ID DESC");
var RS=GetRS(strSQL);
while(!RS.eof)
{
strString=strString + RS("data");
RS.MoveNext();
}
%>
תן לי כמה דברים:
מאיזה סוג השדה DATE שלך?
תן לי את הודעת השגיאה ותראה לי באיזו שורה היא מופיעה.
הדבר הכי חשוב שאתה צריך לזכור שאמרתי לך שלא ניסיתי את הקוד שנתתי לך ויכול להיות שיש בו טעות קטנה, אני מציע לך שקודם תבדוק את הקוד על יבש ללא משפט SQL ורק לאחר מכן תיישם אותו במשפט ה- SQL שלך אתה תראה שזה יעזור לך בהמשך בכל מה שקשור לבניית אתרים.
והשגיאה היא…?
בכל מקרה, אתה תמיד יכול לשלוך את כל השדה ולחתוך אותו בחוץ.
שלום נועם
סוג התאריך הוא רגיל: Date()
הודעת השגיאה:
ADODB.Recordset error '800a0cc1'
Item cannot be found in the collection corresponding to the requested name or ordinal.
/sms/Default.asp, line 33
שורה 33 היא:
strString=strString + RS("data");
והקוד עבד תקין עד לשינוי הנ"ל.
זה בדיוק מה שאני רוצה
שהטקטס יוצג ללא 3 תוים ראשונים.
יעילות…
דרך אגב ילדה מה יותר יעיל לחתוך במשפט עצמו או שזה לא משנה?
ככה
var str=RS("fld").value
str=str.substr(2)
Response.Write(str)
תלוי כמה רשומות אתה שולף
ועל איזה בסיס נתונים מדובר…
תנסה משהו כזה:
strSQL=("SELECT TOP 5 Right(data, Len(data)-3) AS date FROM tblSms ORDER BY ID DESC");
לא שאלתי את זה נכון
השאלה הייתה האם עדיף לחתוך את המחרוזת במשפט ה- SQL או שעדיף להוציא קודם את הנתונים ורק אחרי שסגרנו את ה- CONN לחתוך כל מחרוזת לפני הפליטה?
שאלת נכון, וזו הייתה התשובה שלי.
אם מדובר על מאות רשומות – תעשה את זה במשפט ה-SQL.
אם מדובר על רשומות בודדות, אפשר לעשות את זה גם הקוד.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.
אני חושב שהבעיה נובעת מכך שהשדה שלך
הוא מסוג DATE. אולי צריך להמיר אותו למחרוזת.
הייתי בודק את המשפטים שאני שולח אבל אין לי במחשב הזה ACCESS.
בכל אופן תנסה לעבוד שניה על שדה אחר בבסיס נתונים שהוא מסוג מחרוזת, ונראה מה יקרה, ואל תתבאס רק ככה לומדים
הצלחתי! תודה לכולם
<%
var strString="";
var strSQL=("SELECT * FROM tblSms WHERE ([Date]=Date())");
strSQL=("SELECT TOP 5 * FROM tblSms ORDER BY ID DESC");
var RS=GetRS(strSQL);
while(!RS.eof)
{
strMess=new String(RS("data"));
strMess=strMess.substr(3);
strString=strString + strMess;
RS.MoveNext();
stress=null;
}
%>