שלח תשובה

זירת השאלות

203
צפיות
23
תשובות

מעוניין להציג מידע מתוך DB של אקסס

,‏ 9 בינואר, 2004

מעוניין להציג מידע מתוך DB של אקסס ב ASP ללא 3 תווים ראשונים.
איך אני עושה זאת?

תודה

תגיות:

23 תשובות

  1. נועם א הגיב:

    אם אתה מתכוון לרשומות אז משהו כזה:


    select * from [yourDB]
    where field_id not in
    (select top 3 * from [yourDB])

  2. NimdA הגיב:

    הכוונה היא להציג את הרשומה
    הכוונה היא להציג את הרשומה ללא 3 תווים ראשונים.
    נראה לי שאני צריך למספר את כל התווים….

  3. NimdA הגיב:

    תודה, תוכל לרשום דוגמא לכזו פונקציה

  4. נועם א הגיב:

    קבל:
    אתה בודק את אורך המחרוזת מפחית ממנה 3 ומוציא את אורך ההפרש

    select right(detail,len(detail)-3) from yourDB

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

  5. NimdA הגיב:

    תודה, אבל משום מה אני מקבל שגיאה


    <%
    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();
    }
    %>

  6. נועם א הגיב:

    תן לי כמה דברים:
    מאיזה סוג השדה DATE שלך?
    תן לי את הודעת השגיאה ותראה לי באיזו שורה היא מופיעה.

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

  7. והשגיאה היא…?
    בכל מקרה, אתה תמיד יכול לשלוך את כל השדה ולחתוך אותו בחוץ.

  8. NimdA הגיב:

    שלום נועם
    סוג התאריך הוא רגיל: 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");

    והקוד עבד תקין עד לשינוי הנ"ל.

  9. NimdA הגיב:

    זה בדיוק מה שאני רוצה
    שהטקטס יוצג ללא 3 תוים ראשונים.

  10. נועם א הגיב:

    יעילות…
    דרך אגב ילדה מה יותר יעיל לחתוך במשפט עצמו או שזה לא משנה?

  11. ככה

    var str=RS("fld").value
    str=str.substr(2)
    Response.Write(str)

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

  13. נועם א הגיב:

    תנסה משהו כזה:


    strSQL=("SELECT TOP 5 Right(data, Len(data)-3) AS date FROM tblSms ORDER BY ID DESC");

  14. נועם א הגיב:

    לא שאלתי את זה נכון
    השאלה הייתה האם עדיף לחתוך את המחרוזת במשפט ה- SQL או שעדיף להוציא קודם את הנתונים ורק אחרי שסגרנו את ה- CONN לחתוך כל מחרוזת לפני הפליטה?

  15. שאלת נכון, וזו הייתה התשובה שלי.
    אם מדובר על מאות רשומות – תעשה את זה במשפט ה-SQL.
    אם מדובר על רשומות בודדות, אפשר לעשות את זה גם הקוד.

  16. NimdA הגיב:

    לא עובד…


    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.

  17. נועם א הגיב:

    אני חושב שהבעיה נובעת מכך שהשדה שלך
    הוא מסוג DATE. אולי צריך להמיר אותו למחרוזת.
    הייתי בודק את המשפטים שאני שולח אבל אין לי במחשב הזה ACCESS.
    בכל אופן תנסה לעבוד שניה על שדה אחר בבסיס נתונים שהוא מסוג מחרוזת, ונראה מה יקרה, ואל תתבאס רק ככה לומדים

  18. NimdA הגיב:

    הצלחתי! תודה לכולם


    <%
    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;
    }

    %>

שלח תשובה