![]() |
שאלה על אופן הפעולה של dataset
ב"ה
אם ממלאים אותו בטבלה מהמסד נתונים אז הוא לוקח אליו את הטבלה או שהוא רק יודע שהוא אמור לטפל בטבלה הזו? אלעד, איפה אתה כשצריכים אותך|Rolleyes| |
אני אשמח לדעת על מה אתה מדבר.... באיזה שפה זה ?
|
ב"ה
זה אוביקט לטיפול במידע בצורה של מסד נתונים. שאפשר למלא אותו ממסד נתונים. |
אממ, אם אני לא טועה, אלעד לא יודע ASP.NET (אני בטוח ה99% :O) בכל מקרה:
"אז הוא לוקח אליו את הטבלה או שהוא רק יודע שהוא אמור לטפל בטבלה הזו?" תתנסח כראוי ויוכלו לענות על השאלה שלך. אין לי מושג מה אתה שואל, אז אני לא יכול לענות לך. |
ב"ה
האם dataset שומר את כל הנתונים שהוא קיבל מהמסד נתונים או שהוא רק יודע שהם קיימים במסד נתונים והוא ניגש אליהם אם מבקשים ממנו? עריכה: קראתי שהוא כן שומר הכל, אז מה הרעיון בו? לקחת את כל המסד לזיכרון של המחשב? זה הדבר הכי לא יעיל שיכול להיות. |
יש לך את הנתונים במטמון - גישה מהירה יותר ללא צורך ב connection שיהיה פתוח, מבנה XMLי
דן, סבבה ....... |
ציטוט:
אז למה כ"כ מתלהבים ממנו הכל התיאורים של asp.net... ומתלהבים מזה שאפשר להגדיר לו קישורים ולא צריך ללהשתמש ב join וכו' הוא פשוט לוקח את כל הנתונים גם אם אתה צריך רק אחד. נהוג להשתמש בו תמיד? או רק במקרים מיוחדים? |
אם אתה משתמש ב DataTableAdapter ועושה Fill אל ה DataSet הספיציפי, הוא יכיל את התכנים כפי שקיימים בDB או במקור ממנו אתה עושה Fill).
לחילופין, אם אתה מכניס תכנים ישירות ל DataSet (ואז יהיו לו תכנים משלו, בלי קשר לאלו שיש בDV) הוא מיועד לעבודה א-סינכרונית מול מסד-הנתונים (פחות קריאות למסד, ופחות עומס). אתה יכול להשתמש רק ב DataSet בלי מסד, אם תקפיד כל פעם לייצא ולייבא קובץ XML (קיימות מתודות מוכנות לכך). אחד מהדברים הטובים בו, זה שכשאתה עושה Fill של DB שלם, או לחילופין מצייר DB, אתה יכול לשמור בו יחסי-גומלין, בשביל הייבוא אתה לא צריך לעשות שאילתות JOIN (הוא יכול להכיל טבלאות, קשרי גומליו וכו', לא צריך כמו ב RecordSet לעשות JOIN בשביל שימוש במספר טבלאות). בנוסף, נהוג להשתמש ב Typed DataSet באפליקציות גדולות, שזה DS שמשותף לאפליקציה ונותן לך אפילו עוד מרחב פעולה. בנוסף, כשאתה מחלק לשכבות, זה מקל מאד (תלוי בדרך העבודה). |
ב"ה
אז אין בו שום דבר טוב.(אני מדבר כרגע על עבודה מול/עם מסד נתונים) זה שלא צריך להשתמש בjoin גורם לזה שהוא ישלוף הרבה נתונים מיותרים. |
ציטוט:
יש בו מ-ל-א יתרונות. תפרט לי בבקשה את הפעולה שאתה רוצה לעשות, ואני אגיד לך ספיציפית מה היתרונות המשמעותיים במקרה הזה. |
ב"ה
יש לי 2 טבלאות. users ו cats. יש תא ב cats שקוראים לו oid וב users יש id ו name. אני רוצה לשלוף את כל השורות שיש ב cats שה oid שלהם שווה ל id של הname "בניה" |
ב"ה
הוקפץ באישור של תומר. |
באמצעות פעילות א-סינכרונית, עם DataSet, תוכל לעשות את כל זה בלי שאילתות JOIN, כשאתה עובד עם realation ships בכלל לא על הDB, ומשתמש בDB רק לפעולה אחת, שליפה.
מעבר לזה, שזה מסתדר יותר טוב בתור OOP. |
ציטוט:
אבל זה מפצה על הזמן שהרווחתי בטעינה של קובץ וירטואלי (שלוקח אותו זמן כמו התחברות למסד בערך..) וגם פעולת הקריאה והאיתור מקובץ הXML.. אני עם בניה בעניין הזה. |
ציטוט:
כי דבר ראשון, אתה טוען את הטבלאות שאתה רוצה, עם ה realation שלהן, עובד איתן ומעדכן רק את הרשומה שבה היה שינוי. למעשה, אתה עושה פחות פעולות מבכל שיטה אחרת. |
ציטוט:
אני לא רוצה לעדכן כלום אני רק רוצה לשלוף 5 שורות אבל במקום זה טענתי לזיכרון המחשב 2 טבלאות שלמות. |
ציטוט:
|
ציטוט:
אני לא עובד. אני רק מדבר בתאוריה כרגע. אם משתמשים ב join המסד נתונים נותן לך את מה שאתה צריך. בdataset השרת נותן לך ובחוסר יעילות יחסית למסד נתונים כי הוא גם לוקח יותר נתונים ממה שצריך וגם מחפש את מה שאתה צריך. כן או לא? כל הרעיון ב join זה שלא יצטרכו לשלוף הרבה נתונים ולעשות השוואות בשרת. |
ציטוט:
אתה יכול באמצעות ה Adapter למלא אותו רק בנתונים לפי שאילתה כלשהי שיועברו אליה פרמטרים בצורה דינאמית. |
ציטוט:
אז יותר יעיל להשתמש בשאילתא עם join מאשר לשלוף את הטבלאות ואז להשתמש בrelations. |
ציטוט:
ולמה זה כבר לא יעיל? היתרון בDS זה שהוא מסודר בצורה מצויינת מבחינה לוגית, גם. |
ב"ה
(התכוונתי לשלוף את הטבלאות לתוך dataset) יותר יעיל לשלוף רק מה שאתה צריך במקום לשלוף ואז לבדוק מה שאתה צריך ממה ששלפת נכון? ככה שבמקרה הזה ל dataset אין עליונות. אולי יותר נח אבל לא יותר מזה. |
כל הזמנים הם GMT +2. הזמן כעת הוא 02:37. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ