שלח תשובה

זירת השאלות

630
צפיות
28
תשובות

בעיה בשאילתה

,‏ 30 בספטמבר, 2004

אני מנסה לשלוח בpost נתונים מטופס לעמוד שיש בו שאילתת Insert שצריכה להוסיף את הנתונים שנשלחו אל הטבלה members שבמסד.
כשאני שולח, כתוב שהעמוד לא ניתן להצגה, אבל הוא קיים.
לא מצאתי את הבעיה.

הנה השאילתה והחיבור (העמוד אליו נשלחים הפרטים מהטופס)

<%@ codepage=1255 language=VBScript%>

<%
dim conn, sql
set conn = server.createobject("adodb.connection")
conn.Open "Provider=microsoft.jet.oledb.4.0; data source="&Server.mapPath("****.mdb")&";"

sql = "INSERT INTO members(name,email,des,sex,age,icq,dateReg) "
sql = sql & "VALUES ('" & request.form("name") & "','" & request.form("email") & "','" & request.form("des") & "'," & request.form("sex") & "," & request.form("age") & "," & request.form("icq") & ",#" & request.form("dateReg") & "#)"
conn.execute sql

conn.Close
conn = nothing

response.redirect "index.asp"
%>


ואם זה יעזור, הדפסתי את השאילתה:

INSERT INTO members(name,email,des,sex,age,icq,dateReg) VALUES ('תומר','[email protected]','בלה בלה בלה',yes,13,134967480,9/30/2004)


תודה

תגיות:

28 תשובות

  1. נכון, שכחתי..
    טוב אז שיניתי את שם השדה במסד לtheName, וגם את הqs.
    עדיין לא עובד, ולצערי אין שגיאה.

  2. תעשה כך:

    <%@ codepage=1255 language=VBScript%>

    <%
    dim conn, sql
    on error resume next
    set conn = server.createobject("adodb.connection")
    conn.Open "Provider=microsoft.jet.oledb.4.0; data source="&Server.mapPath("****.mdb")&";"

    sql = "INSERT INTO members(name,email,des,sex,age,icq,dateReg) "
    sql = sql & "VALUES ('" & request.form("name") & "','" & request.form("email") & "','" & request.form("des") & "'," & request.form("sex") & "," & request.form("age") & "," & request.form("icq") & ",#" & request.form("dateReg") & "#)"
    conn.execute sql

    if err then
      response.write "Number: " & err & "<br>"
      response.write "Description: " & Err.Description & "<br>"
      response.write "Source: " & Err.Source & "<br>"
    else
      response.redirect "index.asp"
    end if

    conn.Close
    conn = nothing
    %>

  3. אוקיי
    זה הפלט:

    Number: 3704
    Description: Operation is not allowed when the object is closed.
    Source: ADODB.Connection

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

    תודה

  4. אההה
    הסתדרתי בזה.
    עכשיו יש שגיאה אחרת:

    Number: -2147217900
    Description: Syntax error in INSERT INTO statement.
    Source: Microsoft JET Database Engine

    שגיאה בשאילתה..אולי זה בגלל התאריך?

  5. BuildHome הגיב:

    תכתוב
    מהו סוג כל שדה (למשל name = טקסט) וכתוב כאן דוגמא לפלט השאילתה (במקום לבצעה, פשוט תדפיס אותה).

  6. אם העתקת את מה שרשמתי לך..
    אז תשנה שוב את השדה name 🙂 במידה ושינית, תציג כאן את הקוד העדכני.

    **אני מקווה שבחג אני אכתוב מאמר על האובייקט error של ADO. אפשר גם לשכלל את המידע על השגיאה והצגת כל השגיאות בפעם אחת, אבל את זה אני אכתוב במאמר…

  7. כן, עדכנתי את name..
    הנה הקוד העדכני:

    <%@ codepage=1255 language=VBScript%>

    <%
    dim conn, sql
    on error resume next
    set conn = server.createobject("adodb.connection")
    conn.Open "Provider=microsoft.jet.oledb.4.0; data source="&Server.mapPath("icq_club_data.mdb")&";"

    sql = "INSERT INTO members(theName,email,des,sex,age,icq,dateReg) "
    sql = sql & "VALUES ('" & request.form("theName") & "','" & request.form("email") & "','" & request.form("des") & "'," & request.form("sex") & "," & request.form("age") & "," & request.form("icq") & ",#" & request.form("dateReg") & "#)"
    conn.execute sql

    if err then
      response.write "Number: " & err & "<br>"
      response.write "Description: " & Err.Description & "<br>"
      response.write "Source: " & Err.Source & "<br>"
    else
      response.redirect "index.asp"
    end if

    conn.Close
    conn = nothing
    %>

    ואני מכיר את האובייקט error של ado..

    Err.Description
    Err.HelpContext
    Err.HelpFile
    Err.NativeError
    Err.Number
    Err.Source
    Err.SQLState

    פעם כתבתי על זה מאמר קטן..אני אנסה למצוא אותו

    תודה

  8. הדפסתי את השאילתה..


    INSERT INTO members(name,email,des,sex,age,icq,dateReg) VALUES ('תומר','[email protected]','בלה בלה בלה',yes,13,134967480,9/30/2004)

    theName = טקסט
    email = טקסט
    des = תזכיר
    sex = כן/לא
    age = מספר
    icq = מספר
    dateReg = תאריך/שעה
    כמובן שיש גם id אבל הוא לא חשוב וברור שהוא מספור אוטומטי…

    תודה

  9. BuildHome הגיב:

    אוקי
    איפה ה-# משני צדדי התאריך? בקוד הראשון והשני הם קיימים ופתאום כבר לא?

  10. זה משהו שאני לא מבין
    הדפסתי את השאילתה עם ה# משני הצדדים, ובהדפסה זה לא מופיע..

  11. BuildHome הגיב:

    תנסה להכניס
    במקום הערך yes בשדה ה-sex את הערך True/False.

  12. עכשיו השגיאה היא


    Number: -2147217913
    Description: Syntax error in date in query expression '##'.
    Source: Microsoft JET Database Engine

    זה אומר שאני צריך להוריד את ה# מהשאילתה?

    תודה

  13. BuildHome הגיב:

    אתה צריך לשים # משני צדדי התאריך
    כנראה והורדת אותם….|חושב|

  14. לא הורדתי אותם..
    הם נמצאים:

    sql = "INSERT INTO members(theName,email,des,sex,age,icq,dateReg) "
    sql = sql & "VALUES ('" & request.form("theName") & "','" & request.form("email") & "','" & request.form("des") & "'," & request.form("sex") & "," & request.form("age") & "," & request.form("icq") & ",#" & request.form("dateReg") & "#)"

  15. עכשיו הורדתי את ה# #
    ושי שגיאה אחרת: (אז כנראה שלא צריך את ה# #)

    Number: -2147217900
    Description: Syntax error (missing operator) in query expression ".
    Source: Microsoft JET Database Engine

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

  16. BuildHome הגיב:

    השגיאה הנוכחית
    אומרת שלא הגדרת לכל שדה את התווים המתאימים לו כך שלשדה מסוג תאריך/שעה צריכה להיות סולמית משני צדדיו.

  17. אוקי…
    שיניתי את השאילתה, ואת ערך התאריך הכנסתי כdate() והורדתי את ה# # (משתנים לא צריכים), וזה עובד – נוספה רשומה.

    תודה על העזרה, לבילד ולטל

  18. אוקי..
    אחרי שזה עובד, אני מנסה לחלק לעמודים.
    יש שגיאה והיא מצביעה על שורה 64, ואני לא מבין מה הבעיה שם.
    אני מדגיש את שורה 64.


    <%
    dim currPage,i,pCount, numRecs
    currPage = 1
    numRecs = 10
    if Not request("currPage") = "" then
        currPage= request("currPage")
    end if

    sql = "select * from allMembers order by id, 3, 1"
    rs.Open sql, conn
    rs.PageSize = numRecs
    rs.CacheSize = numRecs

    if rs.EOF then
    response.write "<br /><div align='center'><span style='font-size:11pt'>אין חברים במועדון</span></div>"
    else
        pCount=rs.pageCount
        rs.AbsolutePage=CurrPage

    response.write "<div align='center' width='500'>"
    Do While Not rs.EOF AND i < rs.pagesize

    הצגת הנתונים…לא חשוב…

    i=i+1
    rs.MoveNext
    Loop
    response.write "</div>"
    end if

    rs.Close
    set rs = nothing
    conn.Close
    set conn = nothing

    for i = 1 to pCount
        if Cint(i) = Cint(currPage) then
            Response.Write " <b>"& i &"</b> "
        Else
            Response.Write " <a href=""index.asp?currPage="&i&""">"& i &"</a> "
        End If
    Next

    %>

    (נעזרתי במדריך באתר)
    תודה

  19. BuildHome הגיב:

    נסה כך
    rs.CacheSize = rs.PageSize
    rs.PageSize = numRecs

    אגב, ה-3,1 שנמצאים בשאילתה שלך אמורים להיות אחרי ה-conn.

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


    response.write "<select name='currPage' onChange=location.href='index.asp?currPage='" & currPage.value & "'"">"
    for i = 1 to pCount
            Response.Write "<option value='" & i & "'>" & i & "</option>"
    Next
    response.write "</select>"

    תודה

  21. שכחתי.. והשגיאה:


    Microsoft VBScript runtime error '800a01a8'

    Object required: '1'

    /masterplus/Webkey_Icqclub/index.asp, line 98

  22. BuildHome הגיב:

    טעות
    שרשרת משתנה ב-SELECT במקום ערך.
    response.write "<select name='currPage' onChange=""location.href='index.asp?currPage='+this.value&""""

  23. עכשיו יש שגיאה אחרת..


    Microsoft VBScript compilation error '800a0409'

    Unterminated string constant

    /masterplus/Webkey_Icqclub/index.asp, line 98

    response.write "<select name='currPage' onChange=""location.href='index.asp?currPage='+this.value&""">"
    ——————————————————————————————————-^

    תודה

  24. MasterMind הגיב:

    קח את זה ושנה אותו לפי צרכיך…


    response.write("<SELECT NAME='what_to _do' onChange=""location.href='Users_Index.asp?id="& arr(0,i) &"&Action='+this.value"">")


    פועל     חתום בדוק (סלנג: בטוח)  

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

שלח תשובה