צפיות
תשובות
בעיה בשאילתה
אני מנסה לשלוח ב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 תשובות
name היא מילה שמורה.
נכון, שכחתי..
טוב אז שיניתי את שם השדה במסד לtheName, וגם את הqs.
עדיין לא עובד, ולצערי אין שגיאה.
תעשה כך:
<%@ 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
%>
אוקיי![](/images/1.gif)
זה הפלט:
Number: 3704
Description: Operation is not allowed when the object is closed.
Source: ADODB.Connection
אני מכיר את השגיאה, היא אומרת שניסיתי לבצע פעולה כלשהי עם הרקורדסט בזמן שהוא סגור.
אבל אני לא מבין איפה הבעיה בקוד..
תודה![](/images/1.gif)
אההה
הסתדרתי בזה.
עכשיו יש שגיאה אחרת:
Number: -2147217900
Description: Syntax error in INSERT INTO statement.
Source: Microsoft JET Database Engine
שגיאה בשאילתה..אולי זה בגלל התאריך?
תכתוב
מהו סוג כל שדה (למשל name = טקסט) וכתוב כאן דוגמא לפלט השאילתה (במקום לבצעה, פשוט תדפיס אותה).
אם העתקת את מה שרשמתי לך..
אז תשנה שוב את השדה name 🙂 במידה ושינית, תציג כאן את הקוד העדכני.
**אני מקווה שבחג אני אכתוב מאמר על האובייקט error של ADO. אפשר גם לשכלל את המידע על השגיאה והצגת כל השגיאות בפעם אחת, אבל את זה אני אכתוב במאמר…
כן, עדכנתי את 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
פעם כתבתי על זה מאמר קטן..אני אנסה למצוא אותו
תודה![](/images/1.gif)
הדפסתי את השאילתה..
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 אבל הוא לא חשוב וברור שהוא מספור אוטומטי…
תודה![](/images/1.gif)
אוקי
איפה ה-# משני צדדי התאריך? בקוד הראשון והשני הם קיימים ופתאום כבר לא?
זה משהו שאני לא מבין
הדפסתי את השאילתה עם ה# משני הצדדים, ובהדפסה זה לא מופיע..
תנסה להכניס
במקום הערך yes בשדה ה-sex את הערך True/False.
עכשיו השגיאה היא
Number: -2147217913
Description: Syntax error in date in query expression '##'.
Source: Microsoft JET Database Engine
זה אומר שאני צריך להוריד את ה# מהשאילתה?
תודה
אתה צריך לשים # משני צדדי התאריך
כנראה והורדת אותם….|חושב|
לא הורדתי אותם..
הם נמצאים:
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") & "#)"
עכשיו הורדתי את ה# #
ושי שגיאה אחרת: (אז כנראה שלא צריך את ה# #)
Number: -2147217900
Description: Syntax error (missing operator) in query expression ".
Source: Microsoft JET Database Engine
לפי מה שאני רואה השרשור נכון..
תודה על העזרה
יש*
השגיאה הנוכחית
אומרת שלא הגדרת לכל שדה את התווים המתאימים לו כך שלשדה מסוג תאריך/שעה צריכה להיות סולמית משני צדדיו.
אוקי…
שיניתי את השאילתה, ואת ערך התאריך הכנסתי כdate() והורדתי את ה# # (משתנים לא צריכים), וזה עובד – נוספה רשומה.
תודה על העזרה, לבילד ולטל![](/images/11.gif)
![](/images/1.gif)
אוקי..
אחרי שזה עובד, אני מנסה לחלק לעמודים.
יש שגיאה והיא מצביעה על שורה 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
%>
(נעזרתי במדריך באתר)![](/images/1.gif)
תודה
נסה כך
rs.CacheSize = rs.PageSize
rs.PageSize = numRecs
אגב, ה-3,1 שנמצאים בשאילתה שלך אמורים להיות אחרי ה-conn.
תודה רבה!![](/images/11.gif)
![](/images/1.gif)
![](/images/2.gif)
עובד
עכשיו אני רוצה..
שהניווט בין העמודים יהיה בסלקט בוקס במקום לינקים.
ניסיתי – ויש שגיאה שאני לא מצליח לתרגם אותה..
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>"
תודה![](/images/1.gif)
שכחתי.. והשגיאה:
Microsoft VBScript runtime error '800a01a8'
Object required: '1'
/masterplus/Webkey_Icqclub/index.asp, line 98
טעות
שרשרת משתנה ב-SELECT במקום ערך.
response.write "<select name='currPage' onChange=""location.href='index.asp?currPage='+this.value&""""
עכשיו יש שגיאה אחרת..
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&""">"
——————————————————————————————————-^
תודה
קח את זה ושנה אותו לפי צרכיך…
response.write("<SELECT NAME='what_to _do' onChange=""location.href='Users_Index.asp?id="& arr(0,i) &"&Action='+this.value"">")
פועל חתום בדוק (סלנג: בטוח)
לא ממש עזר לי..![](/images/1.gif)
טיפה הסתבכתי בלשנות את זה לפי מה שאני צריך, אבל כבר עזרו לי (ניר)..
תודה בכל מקרה