שלח תשובה

זירת השאלות

1281
צפיות
11
תשובות

—–*****–בעיה בקוד—-******—-

,‏ 7 במאי, 2004

יש לי דף שבו הוא צריך לעדכן לי נתונים מן המסד, אבל יש בו בעיה….

זה הקוד:


<% 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 תשובות

  1. d_magal הגיב:

    עשית connection עם ה-DB הלא נכון
    פעם קראת לו Cona
    ופעם con.

  2. מה?!?!?!?!!
    אין לי מושג על מה אתה מדבר….

    בכול אופן, אני בכלל לא רואה שרשום CON אני רואה שרשום רק CONA

  3. d_magal הגיב:

    מה זה ?

    Ra.Open "Select * From admin where sid = '"& mike &"' ",Con,3,3

  4. סלמי הגיב:

    ככה


    <% 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
    %>

  5. בעית עדכון אחרת…
    שיימו לב,
    יש כאן משהו שבחיים לא קרה לי….

    אני עושה כול 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

    מה עושים?
    תודה מראש!!

  6. ניר טייב הגיב:

    זה בגלל הנעילה
    כשמשתמשים בנעילה אי אפשר בחלק מסוגי הנעילה לבצע עדכון/הוספה/מחיקה של רשומות וטבלאות באותו זמן (עד שזה מסיים את הפעולה) ולכן אתה מקבל את ההודעת שגיאה הזו

  7. אין לי מושג על איזה נעילה דיברת….

    תוכל להסביר לי?

  8. ואיך אני פותר את הבעיה המעצבנת הזו?

    תודה מראש!!

  9. ניר טייב הגיב:

    קרא כאן
    כאן

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

שלח תשובה