עבור לתוכן

בעיה בחיבור למסד נתונים דרך ASP

Featured Replies

פורסם
  • מחבר

אסור גם " ?

אני לא שולח לא זה רק טקסט , איך מתקנים את הבעיה ?

  • תגובות 90
  • צפיות 9.8k
  • נוצר
  • תגובה אחרונה

משתתפים בולטים בדיון

פורסם

שמע אתה מה זה עקשן

אנחנו נורא רוצים לעזור לך

אבל אתה לא טורח לבדוק את משפט ה- update הסופי כפי שנשלח ל- access

תבדוק את המשפט ואני מאמין שגם אתה מיד תגלה מה הבעיה

debug בסיסי ראבק

פורסם
  • מחבר

בדקתי ונתתי לעוד אנשים לבדוק והוא תקין לגמרי......

פורסם

זה תקין, לכאורה

sqlCmd = "UPDATE users SET firstname='" & firstname & "',lestname='" & lestname & "',age='" & age & "',sex='" & sex
sqlCmd = sqlCmd & "',password='" & password & "',street='" & street & "',homenumber='" & homenumber& "',city='" & city
sqlCmd = sqlCmd & "',more='" & more & "' WHERE username='" & username & "'"

התוצאה של שרשור כל המחרוזת היא לא תקינה עבור התחביר של access זה מה שהמנוע של access מנסה להגיד לך בהודעת השגיאה שלו

פורסם
  • מחבר

לפי התחביר סדר הכנסת הנתונים בשרשור הוא לפי הסדר שהוגדר המסד....

כאשר ביצעתי את השרשור עבדתי מול המסד כדי לראות את הסדר....

הבעיה היא לא בשירשור אלה בשורה שנתתי בהודעה הראשונה...

כיצד פותרים את הבעיה שבשורה הזאת ?[br]פורסם בתאריך: 2.06.2007 בשעה 16:59:31


הקוד המעודכן :


<%
if session("iao")="no" Then
response.redirect("admin.html")
end if
%>
<HTML>
<HEAD>
<TITLE>עדכון</TITLE>
</HEAD>
<BODY>
<%
'======= שליפת נתוני המשתמש מהטופס =======
username = Request.Form("username")
password = Request.Form("password")
firstname = Request.Form("firstname")
lestname = Request.Form("lestname")
sex = Request.Form("sex")
age = Request.Form("age")
street = Request.Form("street")
homenumber = Request.Form("homenumber")
city = Request.Form("city")
more = session("more")
internet = session("internet")
freetext = Request.Form("freetext")

'======= חיבור למסד הנתונים ופתיחתו =======
Set con = Server.CreateObject("ADODB.connection")
con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/members.mdb"))



'=========== בדיקה האם כבר קיימת רשומת משמתמש בטבלה ==========
sqlSelectCmd = "SELECT * FROM users WHERE username='" & username & "'"
Set rec = con.Execute(sqlSelectCmd)

If (rec.EOF = True) Then
'======= החזרת תשובה ללקוח שפעולת העדכון לא בוצעה כי לא קיים משתמש כזה =======
Response.Write("<html><body dir='rtl'><h1><center>משתמש לא קיים בטבלה!</center></h1></body></html>")
Else
'======= בניית הפקודה לעדכון נתוני המשתמש בטבלה =======
sqlCmd = "UPDATE users SET firstname='" & firstname & "',lestname='" & lestname & "',age='" & age & "',sex='" & sex
sqlCmd = sqlCmd & "',pw='" & password & "',street='" & street & "',homenumber='" & homenumber& "',city='" & city
sqlCmd = sqlCmd & "',freetext='" & freetext & "' & "',more='" & more & "' & "',internet='" & internet & "' WHERE username='" & username & "'"
'======= עדכון רשומת המשתמש בנתונים =======
con.Execute(sqlCmd)
'Response.Write(sqlCmd)
'======= החזרת תשובה ללקוח שפעולת העדכון בוצעה בהצלחה =======
Response.Write("<html><body dir='rtl'><h1><center>נתוני המשתמש עודכנו בהצלחה!</center></h1></body></html>")
End If

'======= סגירת מסד הנתונים =======
rec.Close()
con.Close()
%>
</BODY>
</HTML>

השורה הבעיתית :

con.Execute(sqlCmd)

פורסם

הוא אומר שהבעיה היא בשאילתא שאתה שולח לו, כלומר, בשרשור שאתה מבצע לו שם במחרוזתsqlCmd.

תדפיס ע"H response.write את SQLCMD לפני השורה conn.excecute, ותשלח כאן.

פורסם
  • מחבר

מה שהוא מציג זה את הדבר הבא:


UPDATE users SET firstname='ניר',lestname='.',age='17.5',sex='male',pw='1111',street='',homenumber='',city='',freetext='שלום לכם' &

השרשור חייב להתבצע בשורה אחת או שניתן לפצל אותו לכמה שורות כמו שאני רשמתי בהודעה הנ"ל ?

פורסם

יש לך & "' מיותר אחרי הFREETEXT.

בשביל זה צריך לכתוב למסך את השאילתא שלך אם יש בעיית תחביר.

פורסם
  • מחבר

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

איך פותרים את הבעיה הזאת ?

פורסם

מה ההדפסה נותנת עכשיו?

פורסם
  • מחבר

ההדפסה עכשיו היא:


UPDATE users SET firstname='ניר',lestname='.',age='17.5',sex='male',pw='1111',street='',homenumber='',city='',freetext=''

פורסם

לא תיקנת טוב את השורה הזו. תשלח את השורה הזו, אחרי השינוי כדי שאראה מה לא טוב בה.

פורסם
  • מחבר

שורת הקוד היא :


sqlCmd = "UPDATE users SET firstname='" & firstname & "',lestname='" & lestname & "',age='" & age & "',sex='" & sex
sqlCmd = sqlCmd & "',pw='" & pw & "',street='" & street & "',homenumber='" & homenumber& "',city='" & city
sqlCmd = sqlCmd & "',text='" & text & "'"',more='" & more & "'"',internet='" & internet & "' WHERE username='" & username & "'"

פורסם

מה זה:

"'"'

תתקן את המחרוזות, הן אלה שגורמות לך לשגיאה.

פורסם
  • מחבר

למה לשנות את זה ?

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים