הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [ASP] שגיאה בדף מסוים (https://hosts.co.il/forums/showthread.php?t=47596)

stav 15-06-07 14:44

[ASP] שגיאה בדף מסוים
 
שלום לכולם ,
יש לי את הקוד הזה
קוד:


<!-- #INCLUDE FILE="Header.asp"-->
<%
if        session("memberOK")="no" then
    Response.Write("אין לך גישה לכאן")
    Response.End
end if
db=request.form("typeD")
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Driver={Microsoft Access Driver (*.mdb)}; Dbq="& Server.MapPath("data.mdb") &";"
set rec=Server.CreateObject("ADODB.RecordSet")
sql = "INSERT INTO "&db&" (rooms,ads,city,floor,ac,parc,price,comment,cell,phone,rs) VALUES(" &request.form("Rooms")& ", '"& request.form("ads") &"', '"& request.form("city") &"', "& request.form("Floor") &", "& request.form("ac") &","& request.form("parc") &","& request.form("price") &", '"& request.form("comment") &"', "& request.form("cphone") &","& request.form("phone") &",'"&session("username")&"')"
rec.Open sql,conn,3,3
conn.execute (sql)
response.write("הדירה נוספה")
response.Write("מספר הדירה"& rec.Fields("num").Value)
rec.Close
set rec=nothing
conn.close
set conn=nothing
%>
<!-- #INCLUDE FILE="Footer.asp"-->

מופיע לי שגיאה בשורה 15 איפה שאני מדפיס את מס' הדירה השגיאה היא
קוד:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/DoNewApt.asp, line 15

num הוא מספר שנקבע על ידי ה DB , בתור מספר אוטומטי.

תודה מראש לעוזרים .

Daniel 15-06-07 14:46

אני לא מבין כלום ב-ACCESS, אך יכול להיות שאתה צריך גם להכניס את NUM ולתת לו NULL?

כי כאן:
HTML קוד:

rooms,ads,city,floor,ac,parc,price,comment,cell,phone,rs
איני רואה "num",
אך איני בטוח, אך רק תנסה.

Tomer 15-06-07 14:47

ציטוט:

נכתב במקור על ידי MasterT (פרסם 500153)
אני לא מבין כלום ב-ACCESS, אך יכול להיות שאתה צריך גם להכניס את NUM ולתת לו NULL?

כי כאן:
HTML קוד:

rooms,ads,city,floor,ac,parc,price,comment,cell,phone,rs
איני רואה "num",
אך איני בטוח, אך רק תנסה.

הוא מדבר על ההדפה של num, לא ההכנסה למסד..

somebody 15-06-07 15:01

אתה מנסה לשלוף ערך ממסד ע"י שאילתת INSERT?
אתה צריך להשתמש בשאילתת SELECT, ורק אז תוכל לקחת את הערך מהטבלה.

INSERT זה להזנת נתונים.

"
rec.Open sql,conn,3,3 "


אין סיבה להשתמש בקוד הזה, אתה לא משתמש בו.
בכלל, כל הקוד שעשית לא נכון..
תקרא שוב מדריכים של איך להשתמש במסד נתונים עם ASP.

stav 15-06-07 15:07

החלק של ההכנסה עובד , אבל החלק של השליפה לא .
אני צריך לשולף את ה Num של הרשומה שהוא יצר כרגע , איך אני עושה זאת ?
חשבתי שה rec הולך על אותה הרשומה שנוצרה.

somebody 15-06-07 15:25

בשביל לשלוף אותו, אתה צריך לעשות SQL נוסף, של SELECT.
אתה לא יכול לשלוף משהו, אם לא הגדרת משאילתה שתוציא אותו תחילה מהטבלה.
sql="select num from tbl":
set rs=
rs.open sql,conn,3,1:
num=rs.fields("num"):

קודם עליך לעשות שאילתת SELECT(להפעיל)

stav 15-06-07 15:42

קוד:

conn.execute (sql)
sql="select num from "&db&" "
rec.open sql,conn,3,1
num=rec.Fields("num")

ככה ?
איך ב select הוא יודע איזה Num לשלוף ? הרי יש כמה Num או שהוא עושה זאת על הרשומה שהוכנה עכשיו ?

somebody 15-06-07 16:19

תגדיר WHERE.
אני ממליץ לך לקרוא מדריך SQL..

יש פה בפורום אחד שפעם ממזמן כתבתי, או בהרבה אתרים אחרים כדוגמת www.webmaster.org.il.

stav 15-06-07 16:51

קראתי כבר אבל אני פשוט לא מבין את הדרך שלך ..
WHERE מה ? num= למה ? הרי אני לא ידוע את הערך שלו....

somebody 16-06-07 01:01

אם הייתה יודע את הערך שלו, לא הייתה צריך לשלוף אותו|:

כדי לשלוף משהו מטבלה, אתה צריך לציין לפחות פרמטר אחד שיש באותה שורה, שלא חוזר על עצמו, ואז זה יביא לך את ה NUM.
לדוגמא את אחד הנתונים שהזנת בטבלה, כמה שורות לפני.
למשל:
select num from tbl where tbl.rooms="&request.form("rooms")&"

ושוב אני ממליץ לך לקרוא מדריך SQL..
בלי לקרוא מדריך טוב לא תצליך להתקדם, כי מה שאתה שואל זה דבר בסיסי, מאוד בסיסי..
שאילתת SELECT היא השאילתה הכי בסיסית ב SQL..


כל הזמנים הם GMT +2. הזמן כעת הוא 00:17.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ