שלח תשובה

זירת השאלות

484
צפיות
17
תשובות

שאלה חשובה… וקלה למי שיודע

,‏ 19 ביולי, 2004

זה הקוד שלי



            <%
fid = request.querystring("fid")
set conn = server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("guides/guides.mdb") & ";"
sub closeConn
conn.close
set conn = nothing
end sub
%><%
set guideRs = server.createobject("adodb.recordset")
guideRsSql = "select * from guide order by id desc"
guideRs.open guideRsSql,conn,3,1
if not guideRs.eof then
guideRsGetRows = guideRs.getrows
for iguide = 0 to ubound(guideRsGetRows,2)
fid = guideRsGetRows(0,iguide)
nameguide = guideRsGetRows(1,iguide)
nameid = guideRsGetRows(2,iguide)
namesub = guideRsGetRows(3,iguide)
namefull = guideRsGetRows(4,iguide)
namedate = guideRsGetRows(5,iguide)
%>

ואני  רוצה לדעת בעיקרון איך אני יכול ליבחור מוך המסד נתונים נגיד namefull
רק 40 אותיות מתוכו?
יש פונקצייה כלשהי ואני שכחתי אותה

תגיות:

17 תשובות

  1. אוריקס הגיב:

    ככה:


    SELECT mid([namefull],1,40) AS namefull FROM….

  2. talg14 הגיב:

    רגע לא הבנתי משהו…
    רגע לא הבנתי משהו אני אמור עכשיו ליפתוח עוד רקורדסט?
    מה אין משהו אחר לעשות?

  3. mrmistory הגיב:

    לא, רק את זה…
    לשנות את השורה הזאת.


    guideRsSql = "select * from guide order by id desc"

    לשורה הזאת


    guideRsSql = "SELECT mid([namefull],1,40) AS namefull FROM guide order by id desc"

    רק שפץ את השאילתא איך שאתה צריך אותה.

  4. talg14 הגיב:

    לא עובד תיראה…
    הנה הקוד


    guideRsSql = "SELECT mid([namefull],0,40) AS text_full FROM guide order by id desc "
    guideRs.open guideRsSql,conn,3,1

    זה נותן לי את  השגיאה הזאת

    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

    /talg1/de/index.asp, line 232

    אתה אולי יודע מה הבעיה

  5. mrmistory הגיב:

    רשום את זה אולי…
    במקום namefull את שם השדה שלך שהוא טקסט.

  6. talg14 הגיב:

    מזאת אומרת ככה:

    guideRsSql = "SELECT mid([text_full],0,40) AS text_full FROM guide order by id desc "
    guideRs.open guideRsSql,conn,3,1

    ואם על זה אתה מדבר אז ניסיתי וזה לא טוב מוזר

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

    מה לא מובן?
    כתוב במקום ה-[namefull] את השם של השדה במסד שלך

  8. talg14 הגיב:

    נו….
    ה text_full זה השם שבמסד נתונים


    guideRsSql = "SELECT mid([text_full],0,40) AS text_full FROM guide order by id desc "
    guideRs.open guideRsSql,conn,3,1

    והנה כל הקוד


                <%
    fid = request.querystring("fid")
    set conn = server.createobject("adodb.connection")
    conn.open "driver={microsoft access driver (*.mdb)};dbq=" & server.mappath("guides/guides.mdb") & ";"
    sub closeConn
    conn.close
    set conn = nothing
    end sub
    %><%
    set guideRs = server.createobject("adodb.recordset")
    guideRsSql = "SELECT mid([text_full],1,40) AS text_full FROM guide order by id desc "
    guideRs.open guideRsSql,conn,3,1
    if not guideRs.eof then
    guideRsGetRows = guideRs.getrows
    for iguide = 0 to ubound(guideRsGetRows,2)
    fid = guideRsGetRows(0,iguide)
    nameguide = guideRsGetRows(1,iguide)
    nameid = guideRsGetRows(2,iguide)
    namesub = guideRsGetRows(3,iguide)
    namefull = guideRsGetRows(4,iguide)
    namedate = guideRsGetRows(5,iguide)
    %><%=namesub%>

    אבל זה לא עובד זה רושם שגיאה משהו של פרמטר 1

  9. slavik הגיב:

    זה מאוד פשוט
    אחרי השורה הזאת:
    namefull = guideRsGetRows(4,iguide)
    תוסיף את השורה הזאת:
    namefull=left(namefull,40)
    זהו!

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


    זה אפשרי
    מה אם כל שאר הטקסט לא חבל סתם לשלוף אותו ?

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

    שתי הדרכים שהציעו כאן
    היעילה (לדעתי)
    שליפת ה-40 האותיות הראשונות ישירות מהמסד.
    זה מצריך ממך לכתוב את כל רשימת השדות ולא את ה-* (שלדעתי זה טוב בכל מקרה)
    וכך זה הולך

    SELECT LEFT([field_name],40) AS other_name, <other_fields> FROM tbl

    field_name – השם של השדה במסד
    other_name – שם חדש של שדה שלא מופיע בטבלה שממנה אתה שולף

    הפחות יעילה (לדעתי)
    לשלוף רגיל כמו שעשית ולבצע את ה-LEFT ברמת ה-ASP

    namefull = Left(guideRsGetRows(4,iguide),4)

    —————————————————————————
    LEFT – פונקציה שחותכת טקסט עד נקודה מסוימת
    עוד במדריך ה-VBS שבאתר
    —————————————————————————-

    שלא תחשוב שאני לא רוצה לעזור אני פשוט לא הבנתי את דבריך נכון מצטער שוב

  12. אוריקס הגיב:




    guideRsSql = "SELECT mid([text_full],1,40) AS text_full FROM guide order by id desc "
    guideRs.open guideRsSql,conn,3,1

  13. MasterMind הגיב:

    אבל גם לזה יש בעיה
    כי המילה נחתכת אחרי 40 האותיות הראשונות כלומר זה יכול לצאת ככה
    "החלטנו לצאת לשטח ולב"
    כשזה אמור להיות
    "החלטנו לצאת לשטח ולבדוק"  

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

    זה מה שהוא ביקש
    את 40 האותיות הראשונות. כדי לעשות 40 מילים ראשונות הוא הצטרך קצת "להתאמץ" (נראה לי צריך ליצור איזה פונקציה במסד שתעשה את זה)

שלח תשובה