בולנט - דברים מיוחדים...     פרוטו - בניית אתרים

Israeli ASP Organization

ארגון ה-ASP הישראלי

מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > ASP

מחלקה המדמה RS

שימוש בשיטה GetRows של אובייקט ה-recordset

בד"כ כאשר אנו מציגים מידע מתוך מסד נתונים נשתמש בשיטה הבאה :

Do while not Recordset.EOF Response.write Recordset("UserId") Response.write Recordset("UserName") Loop יצירת אובייקט Recordset והחזקה של אובייקט Connection במצב פתוח מהווים עומס ניכר על השרת ועל ביצועי האפליקציה.
אם כל שברצוננו לעשות עם אובייקט ה- Recordset הוא לעבור בלולאה על כל הרשומות ולבצע פעולות קצרות על כל רשומה (למשל הדפסת נתוני הרשומה למסך) אזי המלצתי היא להמשיך להשתמש בשיטות המוכרות למעבר על אובייקט ה- Recordset.
אולם, כאשר אנו רוצים לבצע פעולות ארוכות המשתמשות בנתוני הרשומות שב- Recordset ניתן להשתמש בשיטה(method) GetRows של האובייקט.
השיטה GetRows מייצאת את כל נתוני ה- Recordset לתוך מערך דו מימדי.
לאחר השימוש בשיטה ניתן לסגור את ה- Recordset ואת ה-Connection ולהמשיך לעבוד עם המערך. העבודה עם המערך: arr=RS.GetRows RS.Close Set RS=nothing Set Connection=nothing for i=0 to ubound(arr,2) for j=0 to UBound (arr,1) response.write arr(j,i) <-- שימו לב לסדר next next הקוד המתואר (לדעתי) אינו נוח לעבודה ובפרט לתחזוקה של הקוד.
בכדי לפתור בעייה זו ייצרתי מחלקה LocalRecordset - (class) אשר מהווה "עטיפה" למערך המכיל את נתוני ה-Recordset ,וניתן לפנות אליה כפי שפונים לאובייקט Recordset . המחלקה מכילה את רוב המאפיינים והשיטות הנפוצות של Recordset.
מאפיינים: BOF,EOF,RecordCount
שיטות: MoveFirst ,MoveLast ,MoveNext ,MovePrevious
השיטה Open מקבלת כפרמטר אובייקט Recordset לצורך "שאיבת הנתונים" (בעזרת GetRows) ואתחול המחלקה.
לאחר הפעלת השיטה "Open" ניתן ניתן לסגור את ה- Recordset ואת ה-Connection ולהמשיך לעבוד עם המחלקה.
עבודה עם המחלקה LocalRecordset:
< !--#include file = "LocalRecordset.inc"-> set Conn=server.CreateObject("ADODB.Connection") Conn.ConnectionString=Application("ConnectionString") Conn.Open Set RS=Server.CreateObject("ADODB.Recordset") objRS.Open sqlQuery, Conn '********************************************************** set LocalRS=new LocalRecordset LocalRS.Open RS '********************************************************** RS.Close set RS=nothing Conn.Close set Conn=nothing '********************************************************** Response.Write "Num of records :" & LocalRS.RecordCount & "<BR>" do while not LocalRS.EOF Response.write LocalRS.Fields("UserId") Response.write LocalRS.Fields("UserName") LocalRS.MoveNext Loop set LocalRS=nothing · למסמך זה מצורף הקובץ "LocalRecordset.inc" המכיל את קוד המחלקה ויש לצרפו לפרוייקט ולהכלילו בדף שנעשה בו שימוש ע"י פקודת ה-include: < !--#include file = "LocalRecordset.inc"-> או לחילופין, להעתיק את הקוד במלואו לתוך דף ה-asp בו נעשה שימוש במחלקה. פעולה זו מאפשרת למפתחים בסביבת Visual InterDev לראות באופן אוטומטי את השיטות והמאפיינים של המחלקה בעת יצירת מופע חדש של המחלקה ...

בהצלחה

קובץ מצורף
LocalRecordset.zipקובץ זיפ עם קובץ המחלקה



         

מחבר: רזניקוב אלכסרמת קושי: 2  ||  עוד לא דורגכל הזכויות שמורות ל-IAO ©

חנות לסטלן  |   מתכונים  |   חגי ישראל  |   פורטל משחקים  |   חנויות מחשבים ו-ציוד הקפי  |   מגזין מסטול לסטלן המצוי  |   קליפרים  |   גידול צמחים פרחים  |   ספא פינוק מושלם