צפיות
תשובות
בעיה בבסיס הנתונים
כתבתי שאלה אמריקאית , לכל תשובה יש כפתור רדיו בשם Q1 והוא מכיל את התשובה, תשובה נכונה מכילה את הערך 1 , תשובה לא נכונה מכילה את הערך 0.
אני כותב קוד ב ASP שיכניס את תשובת המשתמש למסד נתונים באקסס.
משום מה זה לא מכניס ואין לי שום הודעת שגיאה…
הנה מצורף קוד הASP:
Dim Q1
Dim conn, rs ,SQLstr
Set conn = Server.CreateObject("ADODB.Connection") 'connection object
Set rs = Server.CreateObject("ADODB.Recordset") 'recordset object
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};" &_
"Dbq=c:inetpubwwwrootdbdb1.mdb;" & _
"Uid=admin;" &_
"Pwd=;" 'oppening th
Q1=Request("q1")
IF Q1 > 0 then
SQLstr="insert into question VALUES ('" & Session("username") & "' , '1' ,true)"
Else
SQLstr="insert into question VALUES ('" & Session("username") & "' , '1' ,false)"
End If
conn.close()
Set conn=nothing
15 תשובות
הנה הקוד בצורה נורמלית
Dim Q1
Dim conn, rs ,SQLstr
Set conn = Server.CreateObject("ADODB.Connection") 'connection object
Set rs = Server.CreateObject("ADODB.Recordset") 'recordset object
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};" &_
"Dbq=c:inetpubwwwrootdbdb1.mdb;" & _
"Uid=admin;" &_
"Pwd=;" 'oppening th
Q1=Request("q1")
IF Q1 > 0 then
SQLstr="insert into question VALUES ('" & Session("username") & "' , '1' ,true)"
Else
SQLstr="insert into question VALUES ('" & Session("username") & "' , '1' ,false)"
End If
conn.close()
Set conn=nothing
תציג רת הקוד בצורה שנוכל לקרוא אותו
אתה פשוט לא מבצע את השאילתה
אלא רק כותב אותה במשתנה.
אחרי השאילתה תוסיף
Conn.Execute(SQLstr)
מה הבעיה במשפט SQL הבא:
<%
dim answer ,mySQL
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" &_
"Dbq=c:inetpubwwwrootdbdb1.mdb;" &_
"Uid=admin;" &_
"Pwd=;"
Set oStudentsClassRS = Server.CreateObject("ADODB.Recordset")
mySQL = "SELECT * FROM question"
mySQL = "DELETE FROM question WHERE userName = ' " & Session("username") & " ' "
Conn.Execute(mySQL)
Response.Redirect "q1.asp"
oStudentsClassRS.Close
Set oStudentsClassRS = Nothing
oConn.Close
Set oConn = Nothing
%>
השגיאה שמופיעה:
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: "
/lessons/quiz-again.asp, line 20
הכוונה ל:
Conn.Execute(mySQL)
תציג כקוד פורום
ניסיון נוסף להצגת הקוד
סליחה, שוב:
<%
dim answer ,mySQL
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" &_
"Dbq=c:inetpubwwwrootdbdb1.mdb;" &_
"Uid=admin;" &_
"Pwd=;"
Set oStudentsClassRS = Server.CreateObject("ADODB.Recordset")
mySQL = "SELECT * FROM question"
mySQL =mySQL & "DELETE FROM question WHERE userName = ' " & Session("username") & " ' "
Conn.Execute(mySQL)
Response.Redirect "q1.asp"
oStudentsClassRS.Close
Set oStudentsClassRS = Nothing
oConn.Close
Set oConn = Nothing
%>
לא מצליח לי…
איך עושים זאת?
בתפוז יש כפתור מיוחד מה פה?
שים את הקוד בין |הקוד| ל-|סקוד|
ויש כפתור [סמוך לסמיילי].
ניסיון נוסף
<%
dim answer ,mySQL
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "Driver={Microsoft Access Driver (*.mdb)};" &_
"Dbq=c:inetpubwwwrootdbdb1.mdb;" &_
"Uid=admin;" &_
"Pwd=;"
Set oStudentsClassRS = Server.CreateObject("ADODB.Recordset")
mySQL = "SELECT * FROM question"
mySQL =mySQL & "DELETE FROM question WHERE userName = ' " & Session("username") & " ' "
Conn.Execute(mySQL)
Response.Redirect "q1.asp"
oStudentsClassRS.Close
Set oStudentsClassRS = Nothing
oConn.Close
Set oConn = Nothing
%>
ודרך אגב אין לי את הכפתור
והנה שוב הודעת השגיאה:
|קוד|
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: "
/lessons/quiz-again.asp, line 20
אתה מערבב 2 שאילתות
ביחד…אתה צריך לבצע כל שאילתה בנפרד.
אני מניח שאתה רק רוצה למחוק רשומה אז השאילתה של SELECT מיותרת.
Conn.Execute("DELETE FROM question WHERE userName = ' " & Session("username") & " ' "
)
Conn ==> oConn
תבורך
הרבה תודה
מהי שורה 20?
תציג את הקוד שלך, ותדגיש את שורה 20.