עבור לתוכן

בעיה עם ASP

Featured Replies

פורסם

אני מנסה להוציא את המידע מהDATABADE באמצעות סלקט ויש לי רק שורה אחת בDATABASE ובניתי בקובץ ASP מקום ל3 תאים

<%
Set c = Server.CreateObject("ADODB.Connection")
set r = Server.CreateObject("ADODB.Recordset")

c.Provider="Microsoft.Jet.OLEDB.4.0"
c.Open Server.MapPath("proj.mdb")
r.activeconnection=c

r.open "select * from news"

if not r.eof then
response.write(r.fields("tit"))
response.write("</br>")
response.write(r.fields("mess"))
r.movenext
%>
<%
response.write(r.fields("tit"))
response.write("</br>")
response.write(r.fields("mess"))
r.movenext %>

<% response.write(r.fields("tit"))
response.write("</br>")
response.write(r.fields("mess"))
end if %>

הבעיה היא שכאשר יש רק שורה אחת או שתיים במסד נתונים הוא אומר לי

ADODB.Field (0x80020009)

‏‏BOF או EOF הם בעלי ערך True או שהרשומה הנוכחית נמחקה. הפעולה המבוקשת דורשת רשומה נוכחית.

אם אין שורות הוא עובד

איך אני מתקן את זה??

פורסם

יש לך שורה אחת, ואתה מנסה בקובץ ASP שלך לגשת ל- 3 שורות.

תשתמש בWHILE.

פורסם
  • מחבר

ניסתי גם עם WHILE ועדיין לא עובד

סוג שגיאה:

ADODB.Field (0x80020009)

‏‏BOF או EOF הם בעלי ערך True או שהרשומה הנוכחית נמחקה. הפעולה המבוקשת דורשת רשומה נוכחית.

פורסם

מה רשמת בידיוק בWHILE?

פורסם

השגיאה שהוא מקפיץ לך היא ככל הנראה בגלל שלא אמרת לו MoveFirst אבל לא בטוח.

בכל מקרה, הקוד שלך לא יעיל/לא כתוב מסודר.

תנסה את זה:

<%
Set objConn = Server.CreateObject("ADODB.Connection")
set objRs = Server.CreateObject("ADODB.Recordset")

objConn.Provider="Microsoft.Jet.OLEDB.4.0"
objConn.Open Server.MapPath("proj.mdb")

objRs.open "select * from news", objConn

do while not objRs.eof
response.write(objRs("tit"))
response.write("</br>")
response.write(objRs("mess"))
objRs.movenext
loop
objRs.Close
set objRs = Nothing
%>

אתה לא צריך לסגור ולפתוח כל הזמן את תגית ה ASP (%>).

פורסם

אם אתה רוצה רק 3, תרשום בשאילתא top 3(שים לב שבדרך כלל כדאי גם למיין את זה ע"H תאריך מסויים).

ותתן שמות קצת יותר משמעותיים ומובנים לשדות שלך. תרשום את השום המלא: title ו- message. שלא יתבלבלו עם משהו אחר.

פורסם

מה זה החארטה הזה ? ואם היית צריך להציג 200 רשומות ?

פורסם

כבר הסברנו לו שצריך להשתמש בWHILE.

וד.א. בפוסט הראשון - אתה מתכוון ל3 רשומות, לא 3 תאים.

ארכיון

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

דיונים חדשים