כותב |
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 02 July 2007 בשעה 13:00 | | IP רשוּם
|
|
|
|
אני משתמש ב ADO אם אני רוצה להראות את כול מהשתמשים שיש לי במסד נתונים ובסוף לכתוב "נמצאו X משתמשים" כאשר X זה מספר האנשים שיש אותה הטבלה אני מכיר את הדרך שבה עוברים עד ל EOF וכול פעם סופרים אחד עם counter, אבל אין איזה שהוא מאפיין או פעולה ב ADO שמחזירה את מספר הרשומות שיש ב RECORDSET ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 02 July 2007 בשעה 13:11 | | IP רשוּם
|
|
|
|
יש, אבל הוא לא תמיד זמין.
RecordCount
אתה עלול לקבל שגיאה, אפילו די סביר. (ואין לי כוח להסביר)
צריך לשנות את סוג השאילתה וכל מיני כאלה דברים (חפש בגוגל reocordset recordcount)...
אם אתה מציג את כל המשתמשים בעמוד אחד (משמע שגם ככה יש לך את כל הרשומות) פשוט תספור.
אם לא, פשוט תריץ שאילתה עם אותו WHERE כמו בשאילתת בחירה, רק במקום כל השדות תשים COUNT(users.id) כאשר users.id זה עמודה כלשהיא מהטבלה של המשתמשים, בלי group by, וזה יחזיר לך שורה ועמודה אחת ובה יש את מספר המשתמשים...
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 02 July 2007 בשעה 13:20 | | IP רשוּם
|
|
|
|
עשיתי זה היה זמין אבל זה החזיר -1 (מינוס אחד) כאילו לא נמצאו רשומות ויש לי 5 מה לא בסדר ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 02 July 2007 בשעה 15:11 | | IP רשוּם
|
|
|
|
כמו שאמרתי, צריך להריץ את השאילתה בצורה קצת שונה כדי שזה יעבוד.
קוד:
set recoreset = server.createobject("adodb.recordset") Recordset.Open sSQL,connection,3,3 |
|
|
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 02 July 2007 בשעה 15:34 | | IP רשוּם
|
|
|
|
לא יודע למה זה קצת שונה אצלי אני לא עשיתי את זה :
קוד:
set recoreset = server.createobject("adodb.recordset")
|
|
|
עוד מהתחלה אלא יצרתי אובייקט :
קוד:
c.open "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=; DBQ= " & Server.MapPath("members.mdb")
|
|
|
ועשיתי :
קוד:
r=c.Execute("select * from members")
|
|
|
אבל זה עדיין רקורדסט פשוט לא עשיתי לו OPEN אז כדאי להמשיך ככה כמו עשיתי או להתחיל מחדש ולהצהיר על RECORDSET ולעשות לו OPEN ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 02 July 2007 בשעה 16:41 | | IP רשוּם
|
|
|
|
כמו שכבר אמרתי פעמיים, צריך להשתמש בשיטה שונה כדי לקבל את האפשרות הזאת (וגם אז לא תמיד תמיד מקבלים אותה)
תשנה את זה ל-
קוד:
set r = server.createobject("adodb.recordset") r.open "select * from members",o,3,3 |
|
|
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 02 July 2007 בשעה 17:35 | | IP רשוּם
|
|
|
|
אוקי שאלה חדשה : מה עדיף ?
להכריז על רקורדסט כך למשל :
קוד:
set objRecordset=Server.CreateObject("ADODB.recordset")
|
|
|
או לפתוח אובייקט תקשורת כזה :
קוד:
c.open "DRIVER={Microsoft Access Driver (*.mdb)};uid=;pwd=; DBQ= " & Server.MapPath("members.mdb")
|
|
|
ואז לעשות :
קוד:
set r=c.Execute("select * from members")
|
|
|
אז מה עדיף \ מה יותר נכון בלי קשר ל מאפיין RecordCount אלא בכללי כאשר אני כותב דפי ASP במה צריך להשתמש ?
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 02 July 2007 בשעה 17:54 | | IP רשוּם
|
|
|
|
את החיבור בכל מקרה פותחים.
אני רק יכול לומר לך שלא תעשה את הראשון אם אתה עומד להמשיך עם השני (set r = ) ולא לעשות איזו פעולה עם r בגלל שזה סתם אתחול מיותר של אובייקט.
בסה"כ אני מניח שאם מריצים כמה שאילתות עדיך להשתתמש בראשון בגלל שזה חוסר טיפונת עבודה של אתחול אובייקט, אבל זה לא שאני כתבתי את המימוש של ASP ו-ADO שאני יודע...
אם אתה רוצה לדעת יותר אני מניח שאתה יכול לחפש בגוגל asp ado best practices או משהו בסגנון...(אם תקבל תוצאות ב-asp.net תחפש classic asp או asp 3.0)
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
:) אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 02 July 2007 בשעה 18:37 | | IP רשוּם
|
|
|
|
למישהו יש במקרה קוד מקור (דפי ASP) של אתר שבנוי ב ASP עם מסד נתונים ACCESS להביא לי לצורכי למידה כי זה קשה להבין ככה מדוגמא של אתר בנוי אפשר להבין בשניה. . . ?
|
חזרה לתחילת העמוד |
|
|