צפיות
תשובות
—–*****–בעיה בקוד—-******—-
יש לי דף שבו הוא צריך לעדכן לי נתונים מן המסד, אבל יש בו בעיה….
זה הקוד:
<% mike = session.sessionID %>
<%
Dim Cona,Ra
Set Cona = Server.CreateObject("ADODB.Connection")
Set Ra = Server.CreateObject("ADODB.Recordset")
Cona.Open ="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("user.mdb") &""
Ra.Open "Select * From admin where sid = '"& mike &"' ",Con,3,3
If Ra.EOF then
response.write " "
Else
session("abc") = Minute(Time)
Ra.Fields("clock") = "" & session("abc") &""
Ra.Fields("moto") = ""& Request.ServerVariables("remote_addr") &""
Ra.Fields("page") = ""& Request.ServerVariables("url") &""
Ra.Update
%>
וזו השגיאה:
ADODB.Recordset error '800a0bb9'
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/bananai/useron.asp, line 10
והינה השורה שעושה ת'בעיה…
Ra.Open "Select * From admin where sid = '"& mike &"' ",Con,3,3
מה הבעיה?!
נ.ב.
במסד יש את כול הנתונים שרשומים….
וכשרשום SID זה הSESSION ID של המשתמש (זה לא שדה מספרי)
11 תשובות
שחכתי לומר…
תודה מראש!!
עשית connection עם ה-DB הלא נכון
פעם קראת לו Cona
ופעם con.
מה?!?!?!?!!
אין לי מושג על מה אתה מדבר….
בכול אופן, אני בכלל לא רואה שרשום CON אני רואה שרשום רק CONA
מה זה ?
Ra.Open "Select * From admin where sid = '"& mike &"' ",Con,3,3
סליחה, לא עם ה-DB, עם האובייקט
ככה
<% mike = session.sessionID %>
<%
Dim Cona,Ra
Set Cona = Server.CreateObject("ADODB.Connection")
Set Ra = Server.CreateObject("ADODB.Recordset")
Cona.Open ="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("user.mdb") &""
Ra.Open "Select * From admin where sid = '"& mike &"' ",Cona,3,3
If Ra.EOF then
response.write " "
Else
session("abc") = Minute(Time)
Ra.Fields("clock") = "" & session("abc") &""
Ra.Fields("moto") = ""& Request.ServerVariables("remote_addr") &""
Ra.Fields("page") = ""& Request.ServerVariables("url") &""
Ra.Update
%>
בעית עדכון אחרת…
שיימו לב,
יש כאן משהו שבחיים לא קרה לי….
אני עושה כול 2 שניות עדכון ולאחר כמה פעמיים הוא מראה לי שגיאה ולאחר שחולפות 2 שניות הוא שוב מראה שגיאה ואז ממשיך לעשות UPDATE רגיל ושוב שגיאה וכך הלאה….
זה הקוד:
<%
Dim Conss,Rsss
Set Conss = Server.CreateObject("ADODB.Connection")
Set Rsss = Server.CreateObject("ADODB.Recordset")
Conss.Open ="provider=microsoft.jet.oledb.4.0; data source="& server.MapPath("user.mdb") &""
Rsss.Open "Select * From admin where sid = '"& mike &"' ",Conss,3,3
If Rsss.EOF then
response.write " "
Else
session("abc") = Minute(Time)
Rsss.Fields("clock") = "" & session("abc") &""
Rsss.Fields("moto") = ""& Request.ServerVariables("remote_addr") &""
Rsss.Fields("page") = ""& Request.ServerVariables("url") &""
Rsss.Fields("sid") = ""& mike &""
Rsss.Update
%>
זו השורה:
Rsss.Update
זו השגיאה:
Microsoft JET Database Engine error '80040e21'
The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time.
/bananai/useron.asp, line 288
מה עושים?
תודה מראש!!
זה בגלל הנעילה
כשמשתמשים בנעילה אי אפשר בחלק מסוגי הנעילה לבצע עדכון/הוספה/מחיקה של רשומות וטבלאות באותו זמן (עד שזה מסיים את הפעולה) ולכן אתה מקבל את ההודעת שגיאה הזו
אין לי מושג על איזה נעילה דיברת….
תוכל להסביר לי?
ואיך אני פותר את הבעיה המעצבנת הזו?

תודה מראש!!
קרא כאן
בעצם אם היית משתמש ב-SQL הייתי אומר לך תשתמש בטראנזיקציות אבל ADO פותח אותם בכל מקרה ולכן אני לא יודע מה לאמר לך יותר