צפיות
תשובות
עדכון נתונים
שלום רציתי לשאול מה הבעיה הקוד הבא
<%@ Language=VBScript codepage=1255%>
<%if session("Login") <> true then Response.Redirect "login.asp"%>
<%
Dim uName, myStr, conn, rs, conStr, rsStr, uDate, titleStr,sqlText
uName = session("uName")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:outpost.mdb"
sqlText="UPDATE People"
SET U = Request.form("U")
SET P = Request.form("P")
SET NAME = Request.form("NAME")
SET Lastname = Request.form("Lastname")
SET ID = Request.form("ID")
SET address = Request.form("address")
SET CITY = Request.form("CITY")
SET zipcode = Request.form("zipcode")
SET telephone = Request.form("telephone")
SET cellular = Request.form("cellular")
SET email = Request.form("email")
WHERE People=("uName")
conn.Close
set conn = nothing
%>
שמופיע לי הודעת השגיאה הבאה
——————————————————————————–
Technical Information (for support personnel)
Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'WHERE'
/project1/UPDET.asp, line 34
Browser Type:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)
Page:
POST 106 bytes to /project1/UPDET.asp
POST Data:
name=&lastname=&ID=&address=&city=&zipcode=&phon=&cellular=&email=&submit1=%F2%E3%EB%E5%EF+%F4%F8%E8%E9%ED
Time:
יום שני י"ח תמוז תשס"ח, 22:08:51
More information:
Microsoft Support
נ.ב הקוד אמור לעדכן את נתוני המשתמש במערכת
14 תשובות
המשפט SQL שלך לא בנוי נכון
קרא על שאילתת UPDATE
שים לב במדריך איך מזינים כמה ערכים באמצעות שאילתא אחת
אלי ענתבי
entry interactive
http://www.entry.co.il
תוכל להסביר לי אייך עלי לתקן את הקוד
לא כל כך הבנתי במדריך
והאם עלי לשים את הקוד בחלק של הSCRIPT
או במקום אחר.
תודה
נתוני המשתמש אינם מתעדכנים למרות התיקון
תיקנתי את הקוד
להלן הקוד החדש
<%@ Language=VBScript codepage=1255%>
<%if session("Login") <> true then Response.Redirect "login.asp"%>
<%
Dim uName, myStr, conn, rs, conStr, rsStr, uDate, titleStr,sqlText
uName = session("uName")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:outpost.mdb"
sqlText="UPDATE People" & _
" SET U = "& Request.form("U") & _
" SET P = "& Request.form("P") & _
" SET NAME = "& Request.form("NAME") & _
" SET Lastname = "& Request.form("Lastname") & _
" SET ID = "& Request.form("ID") & _
" SET address = "& Request.form("address") & _
" SET CITY = "& Request.form("CITY") & _
" SET zipcode = "& Request.form("zipcode") & _
" SET telephone = "& Request.form("telephone") & _
" SET cellular = "& Request.form("cellular") & _
" SET email = "& Request.form("email") & _
" WHERE People = "& Request.form("uName")
conn.Close
set conn = nothing
%>
ונתוני המשתמש אינם מתעדכנים הדף רץ כמו שצריך רציתי לשאול מה הבעיה שנתוני המשתמש אינם מתעדכנם לי תודה
אברהם רפאל
עדיין המשפט SQL שלך לא תקין…
שאילתת עידכון נראית ככה:
UPDATE tblName
SET column1=value1,
column2=value2
WHERE condition(s)
ז"א יש לך פקודה SET אחת ולא הרבה כפי שעשית. עידכון הרפה שדות מתבצע ע"י הפרדת פסיקים.
בנוסף, אם אתה מעביר לבסיס נתונים מידע מסוג סטרינג, אתה צריך לעטוף את אותו המשתנה בגרשיים.
בנוסף, קרא גם על SQL Injection. זה שלב קצת יותר מתקדם בלמידת SQL, אבל אל תשכח לעבור עליו.
אלי ענתבי
entry interactive
http://www.entry.co.il
שיניתי כפי שאמרת לי ועדין לא מתעדכן הקוד
sqlText="UPDATE People" & _
" SET NAME = "& Request.form("NAME") & _
" , Lastname = "& Request.form("Lastname") & _
" , ID = "& Request.form("ID") & _
" , address = "& Request.form("address") & _
" , CITY = "& Request.form("CITY") & _
" , zipcode = "& Request.form("zipcode") & _
" , telephone = "& Request.form("telephone") & _
" , cellular = "& Request.form("cellular") & _
" , email = "& Request.form("email") & _
" WHERE People = "& Request.form("uName")
מה עלי לעשות על מנת שהנתונים יתעדכנו לי בקובץ האקסס
שם הטבלה People
ופרטי הטבלה לפי הסדר הם
NAME,Lastname,ID,address,CITY,zipcode,telephone,cellular,email
אברהם רפאל
לא הוספת גרשים לסטרינגים
לא חוזרת לך שגיאה?
אלי ענתבי
entry interactive
http://www.entry.co.il
אין לי שום הודעת שגיאה שאני מריץ את הקוד
מופיע לי הרקע שצריך להופיע שכתוב בו שהנתונים עודכנו בהצלחה
אברהם רפאל
תשובה
אין לך שגיאה כי אתה לא מריץ את השאילתה בכלל,
אתה רק הזנת אותה לתוך משתנה מחרוזת.
כדי להריץ את השאילתה במסד אתה צריך לכתוב:
conn.Execute(sqlText)
ורק אז תחזור לך שגיאה כי השאילתה אינה תקינה.
אם היא תקינה – לא תקבל שום שגיאה.
"החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
http://Www.Torec.Net * http://Www.Torec.In
עכשיו מופיע לי הודעת שגיאה
הודעת השגיאה
Technical Information (for support personnel)
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in UPDATE statement.
/project1/UPDuser.asp, line 28
Browser Type:
אברהם רפאל
תשובה
כמו שהשפוי אמר לך..יש לך שגיאה בשאילתת UPDATE.
תבדוק היטב, תלמד אותה טוב טוב.
"החיים הם רק הדרך במסע הנפש", בילד 2004-2008 <img src='/images/6.gif'>
http://Www.Torec.Net * http://Www.Torec.In
תוכל להסביר לי איכן צריך לתקן כי קראתי א
את המדריך ולא הבנתי איכן אני צריך לתקן
תודה
אברהם רפאל
[ללא נושא]
?
א.ר.ר
[ללא נושא]
?
א.ר.ר
תוכל להסביר לי איכן צריך לתקן
תוכל להסביר לי איכן צריך לתקן כי קראתי את המדריך ולא הבנתי איכן אני צריך לתקן
תודה
א.ר.ר