שלח תשובה

זירת השאלות

643
צפיות
15
תשובות

עזרה בחיבור של ASP למסד נתונים

,‏ 5 בדצמבר, 2004

אני מנסה לבנות מערכת שתתחבר ותכתוב דברים לתוך מסד הנתונים אקסס. עשיתי משהו אבל כשאני נכנס לדף (השרת תומך בASP) הדף כותב לי ארור.. לא ארור כאילו של הקוד אלא של הדף את הארור "The page cannot be displayed" ועשיתי נראה לי כל מה שנכון… השרת שלי זה domaindlx מה שנתתם באתר.. זה השרת שלא תומך במסד נתונים או שזה פשוט בעייה בקוד?

תגיות:

15 תשובות

  1. BuildHome הגיב:

    קישור שחור ליד הטקסט האדום למעלה
    תציג את קוד החיבור למסד הנתונים שלך.

  2. coukon הגיב:

    הקוד של החיבור והכתיבה לתוך המסד


    <%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver(*.mdb)};DBQ=outpost.mdb"
    sqlText = "insert into ad_log (sponsor, clickDate) values ('"
    sqlText = sqlText & sponsorURL
    sqlText = sqlText & "', '"
    sqlText = sqlText & Now
    sqlText = sqlText & "')"
    Response.Write sqlText

    conn.Close
    set conn = Nothing
    Response.Redirect sponsorURL
    %>

  3. coukon הגיב:

    אופס
    לא שמתי את זה בתוך התוויות של הקוד..
    הנה:


    <%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "DRIVER={Microsoft Access Driver(*.mdb)};DBQ=outpost.mdb"
    sqlText = "insert into ad_log (sponsor, clickDate) values ('"
    sqlText = sqlText & sponsorURL
    sqlText = sqlText & "', '"
    sqlText = sqlText & Now
    sqlText = sqlText & "')"
    Response.Write sqlText

    conn.Close
    set conn = Nothing
    Response.Redirect sponsorURL
    %>

  4. BuildHome הגיב:

    תשובה
    לא ציינת את הנתיב הפיזי המלא של הקובץ אלא כתבת רק את שמו.
    במידה ואתה כותב כך (מאחר והקובץ נמצא באותה התקיה) אז כותבים זאת בצורה הבאה:
    conn.Open "DRIVER={Microsoft Access Driver(*.mdb)};DBQ=" & Server.MapPath("outpost.mdb")

  5. coukon הגיב:

    שניתי את השורה שנתת לי
    אבל עדיין זה לא כתוב במסד נתונים עצמו ועדיין כתוב "The page cannot be displayed". מה אפשר לעשות? לנסות להחליף שרת או שזה לא קשור?

  6. BuildHome הגיב:

    במידה והמסד נמצא באותה תקיה
    נסה כך:
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("outpost.mdb")

  7. coukon הגיב:

    עדיין..
    זה מה שיש לי אחרי ששמתי מה שנתת לי ועדיין לא פועל..

    <%@ language="VBSCRIPT" %>
    <html>
    <head>
    </head>
    <body>
    <%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("outpost.mdb")
    sqlText = "insert into ad_log (sponsor, clickDate) values ('"
    sqlText = sqlText & sponsorURL
    sqlText = sqlText & "', '"
    sqlText = sqlText & Now
    sqlText = sqlText & "')"
    Response.Write sqlText

    conn.Close
    set conn = Nothing
    Response.Redirect sponsorURL
    %>

    </body>
    </html>

  8. BuildHome הגיב:

    עצה
    חפש ב-FAQ בנוגע ל"שגיאה 500" ותגדיר להציג שגיאות בדפדפן.
    עכשיו יש לך שגיאה אחרת ואני מניח שהיא נובעת מכך שלא הגדרת כתובת הפניה למשתנה sponsorURL.

  9. coukon הגיב:

    ..
    קודם תודה
    עשיתי מה שאמרת וסידרתי בעייה אחת אבל עכשיו יש לי בעייה אחרת


    <%@ language="VBSCRIPT" %>
    <html>
    <head>
    </head>
    <body>
    <%
    sponsorURL = Request.querystring("url")
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("outpost.mdb")
    sqlText = "insert into ad_log (sponsor, cclickDate) values ('"
    sqlText = sqlText & sponsorURL
    sqlText = sqlText & "', '"
    sqlText = sqlText & Now
    sqlText = sqlText & "')"
    conn.Execute(sqlText)

    conn.Close
    set conn = Nothing

    Response.Redirect sponsorURL
    %>

    </body>
    </html>

    זה הארור:
    Microsoft JET Database Engine error '80004005'

    Field 'ad_log.sponsor' cannot be a zero-length string.

    /djas/got.asp, line 15

    ניסיתי לסדר לא ממש הצלחתי..

  10. coukon הגיב:

    ..
    קודם תודה
    עשיתי מה שאמרת וסידרתי בעייה אחת אבל עכשיו יש לי בעייה אחרת


    <%@ language="VBSCRIPT" %>
    <html>
    <head>
    </head>
    <body>
    <%
    sponsorURL = Request.querystring("url")
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("outpost.mdb")
    sqlText = "insert into ad_log (sponsor, cclickDate) values ('"
    sqlText = sqlText & sponsorURL
    sqlText = sqlText & "', '"
    sqlText = sqlText & Now
    sqlText = sqlText & "')"
    conn.Execute(sqlText)

    conn.Close
    set conn = Nothing

    Response.Redirect sponsorURL
    %>

    </body>
    </html>

    זה הארור:
    Microsoft JET Database Engine error '80004005'

    Field 'ad_log.sponsor' cannot be a zero-length string.

    /djas/got.asp, line 15

    ניסיתי לסדר לא ממש הצלחתי..

  11. BuildHome הגיב:

    תשובה
    השדה sponser לא יכול להיות ריק (כנראה השארת אותו ריק).
    שנה במסד שהוא יכול להיות ריק, כלומר שהוא אינו חובה למילוי.

  12. coukon הגיב:

    עדיין..
    כותב לי ארור..
    תראה זאת התמונה מה שכתבתי בדייטאבייס:
    http://n.domaindlx.com/djas/db.JPG
    וזה הקוד:


    <%
    sponsorURL = Request.querystring("url")
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("outpost.mdb")
    sqlText = "insert into ad_log (sponsor, clickDate) values ('"
    sqlText = sqlText & sponsorURL
    sqlText = sqlText & "', '"
    sqlText = sqlText & Now
    sqlText = sqlText & "')"
    conn.Execute(sqlText)

    conn.Close
    set conn = Nothing

    Response.Redirect sponsorURL
    %>

  13. BuildHome הגיב:

    איך התמונה קשורה לשגיאה?
    אני מתכוון שבהגדרות של השדות (תצוגת עיצוב) אז צריך להגדיר את השדה שיהיה ניתן להיות ריק, כלומר לא חובה למילוי.

  14. coukon הגיב:

    איך
    נכנסתי לזה אבל אני לא בדיוק יודע מה לעשות.. :/
    אתה בטוח שבזה הבעייה?

  15. BuildHome הגיב:

    כך מסבירה השגיאה
    יש לך אפשרות בעריכת פרטי השדה של "אפשר אורך אפס" (באנגלית צריך להיות משהו כמו "Allow zero lenght") ויש לסמן את האפשרות בכן במקום לא.

שלח תשובה