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

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

בניה 16-07-06 20:37

שאלה על אופן הפעולה של dataset
 
ב"ה



אם ממלאים אותו בטבלה מהמסד נתונים אז הוא לוקח אליו את הטבלה או שהוא רק יודע שהוא אמור לטפל בטבלה הזו?

אלעד, איפה אתה כשצריכים אותך|Rolleyes|

RS324 16-07-06 23:48

אני אשמח לדעת על מה אתה מדבר.... באיזה שפה זה ?

בניה 17-07-06 10:36

ב"ה


זה אוביקט לטיפול במידע בצורה של מסד נתונים.
שאפשר למלא אותו ממסד נתונים.

Eye-Soft 17-07-06 11:14

אממ, אם אני לא טועה, אלעד לא יודע ASP.NET (אני בטוח ה99% :O) בכל מקרה:
"אז הוא לוקח אליו את הטבלה או שהוא רק יודע שהוא אמור לטפל בטבלה הזו?"
תתנסח כראוי ויוכלו לענות על השאלה שלך. אין לי מושג מה אתה שואל, אז אני לא יכול לענות לך.

בניה 17-07-06 12:09

ב"ה


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

עריכה:
קראתי שהוא כן שומר הכל, אז מה הרעיון בו? לקחת את כל המסד לזיכרון של המחשב?
זה הדבר הכי לא יעיל שיכול להיות.

eLad 17-07-06 12:18

יש לך את הנתונים במטמון - גישה מהירה יותר ללא צורך ב connection שיהיה פתוח, מבנה XMLי

דן, סבבה .......

בניה 17-07-06 12:38

ציטוט:

נכתב במקור על ידי eLad
יש לך את הנתונים במטמון - גישה מהירה יותר ללא צורך ב connection שיהיה פתוח, מבנה XMLי

ב"ה


אז למה כ"כ מתלהבים ממנו הכל התיאורים של asp.net...
ומתלהבים מזה שאפשר להגדיר לו קישורים ולא צריך ללהשתמש ב join וכו'
הוא פשוט לוקח את כל הנתונים גם אם אתה צריך רק אחד.

נהוג להשתמש בו תמיד? או רק במקרים מיוחדים?

omaniusd 17-07-06 13:01

אם אתה משתמש ב DataTableAdapter ועושה Fill אל ה DataSet הספיציפי, הוא יכיל את התכנים כפי שקיימים בDB או במקור ממנו אתה עושה Fill).
לחילופין, אם אתה מכניס תכנים ישירות ל DataSet (ואז יהיו לו תכנים משלו, בלי קשר לאלו שיש בDV)
הוא מיועד לעבודה א-סינכרונית מול מסד-הנתונים (פחות קריאות למסד, ופחות עומס). אתה יכול להשתמש רק ב DataSet בלי מסד, אם תקפיד כל פעם לייצא ולייבא קובץ XML (קיימות מתודות מוכנות לכך).

אחד מהדברים הטובים בו, זה שכשאתה עושה Fill של DB שלם, או לחילופין מצייר DB, אתה יכול לשמור בו יחסי-גומלין, בשביל הייבוא אתה לא צריך לעשות שאילתות JOIN (הוא יכול להכיל טבלאות, קשרי גומליו וכו', לא צריך כמו ב RecordSet לעשות JOIN בשביל שימוש במספר טבלאות).

בנוסף, נהוג להשתמש ב Typed DataSet באפליקציות גדולות, שזה DS שמשותף לאפליקציה ונותן לך אפילו עוד מרחב פעולה.
בנוסף, כשאתה מחלק לשכבות, זה מקל מאד (תלוי בדרך העבודה).

בניה 17-07-06 13:13

ב"ה


אז אין בו שום דבר טוב.(אני מדבר כרגע על עבודה מול/עם מסד נתונים)
זה שלא צריך להשתמש בjoin גורם לזה שהוא ישלוף הרבה נתונים מיותרים.

omaniusd 17-07-06 13:16

ציטוט:

נכתב במקור על ידי בניה
ב"ה


אז אין בו שום דבר טוב.(אני מדבר כרגע על עבודה מול/עם מסד נתונים)
זה שלא צריך להשתמש בjoin גורם לזה שהוא ישלוף הרבה נתונים מיותרים.

להיפך.
יש בו מ-ל-א יתרונות. תפרט לי בבקשה את הפעולה שאתה רוצה לעשות, ואני אגיד לך ספיציפית מה היתרונות המשמעותיים במקרה הזה.

בניה 17-07-06 13:33

ב"ה


יש לי 2 טבלאות.
users ו cats.
יש תא ב cats שקוראים לו oid וב users יש id ו name.
אני רוצה לשלוף את כל השורות שיש ב cats שה oid שלהם שווה ל id של הname "בניה"

בניה 19-07-06 12:09

ב"ה


הוקפץ באישור של תומר.

omaniusd 19-07-06 13:34

באמצעות פעילות א-סינכרונית, עם DataSet, תוכל לעשות את כל זה בלי שאילתות JOIN, כשאתה עובד עם realation ships בכלל לא על הDB, ומשתמש בDB רק לפעולה אחת, שליפה.
מעבר לזה, שזה מסתדר יותר טוב בתור OOP.

BlueNosE 19-07-06 17:45

ציטוט:

נכתב במקור על ידי omaniusd
באמצעות פעילות א-סינכרונית, עם DataSet, תוכל לעשות את כל זה בלי שאילתות JOIN, כשאתה עובד עם realation ships בכלל לא על הDB, ומשתמש בDB רק לפעולה אחת, שליפה.
מעבר לזה, שזה מסתדר יותר טוב בתור OOP.

אוקיי, אז לא השתמשתי בJOIN.
אבל זה מפצה על הזמן שהרווחתי בטעינה של קובץ וירטואלי (שלוקח אותו זמן כמו התחברות למסד בערך..) וגם פעולת הקריאה והאיתור מקובץ הXML..

אני עם בניה בעניין הזה.

omaniusd 19-07-06 17:51

ציטוט:

נכתב במקור על ידי BlueNosE
אוקיי, אז לא השתמשתי בJOIN.
אבל זה מפצה על הזמן שהרווחתי בטעינה של קובץ וירטואלי (שלוקח אותו זמן כמו התחברות למסד בערך..) וגם פעולת הקריאה והאיתור מקובץ הXML..

אני עם בניה בעניין הזה.

כל הבדיקות מוכיחות שכן.
כי דבר ראשון, אתה טוען את הטבלאות שאתה רוצה, עם ה realation שלהן, עובד איתן ומעדכן רק את הרשומה שבה היה שינוי.
למעשה, אתה עושה פחות פעולות מבכל שיטה אחרת.

בניה 20-07-06 13:49

ציטוט:

נכתב במקור על ידי omaniusd
כל הבדיקות מוכיחות שכן.
כי דבר ראשון, אתה טוען את הטבלאות שאתה רוצה, עם ה realation שלהן, עובד איתן ומעדכן רק את הרשומה שבה היה שינוי.
למעשה, אתה עושה פחות פעולות מבכל שיטה אחרת.

ב"ה


אני לא רוצה לעדכן כלום אני רק רוצה לשלוף 5 שורות אבל במקום זה טענתי לזיכרון המחשב 2 טבלאות שלמות.

omaniusd 20-07-06 14:30

ציטוט:

נכתב במקור על ידי בניה
ב"ה


אני לא רוצה לעדכן כלום אני רק רוצה לשלוף 5 שורות אבל במקום זה טענתי לזיכרון המחשב 2 טבלאות שלמות.

דבר ראשון, כנראה שלא עשית את העבודה נכון. אם אתה עובד עם DS, בעיקר עם Typed DataSet (יותר נוח), אתה יכול להגדיר שליפה לפי פרמטרים, וכך יוצא שלא שלפת את כל הטבלא.

בניה 20-07-06 14:41

ציטוט:

נכתב במקור על ידי omaniusd
דבר ראשון, כנראה שלא עשית את העבודה נכון. אם אתה עובד עם DS, בעיקר עם Typed DataSet (יותר נוח), אתה יכול להגדיר שליפה לפי פרמטרים, וכך יוצא שלא שלפת את כל הטבלא.

ב"ה


אני לא עובד.
אני רק מדבר בתאוריה כרגע.
אם משתמשים ב join המסד נתונים נותן לך את מה שאתה צריך.
בdataset השרת נותן לך ובחוסר יעילות יחסית למסד נתונים כי הוא גם לוקח יותר נתונים ממה שצריך וגם מחפש את מה שאתה צריך.
כן או לא?
כל הרעיון ב join זה שלא יצטרכו לשלוף הרבה נתונים ולעשות השוואות בשרת.

omaniusd 20-07-06 14:44

ציטוט:

נכתב במקור על ידי בניה
ב"ה


אני לא עובד.
אני רק מדבר בתאוריה כרגע.
אם משתמשים ב join המסד נתונים נותן לך את מה שאתה צריך.
בdataset השרת נותן לך ובחוסר יעילות יחסית למסד נתונים כי הוא גם לוקח יותר נתונים ממה שצריך וגם מחפש את מה שאתה צריך.
כן או לא?
כל הרעיון ב join זה שלא יצטרכו לשלוף הרבה נתונים ולעשות השוואות בשרת.

לא.
אתה יכול באמצעות ה Adapter למלא אותו רק בנתונים לפי שאילתה כלשהי שיועברו אליה פרמטרים בצורה דינאמית.

בניה 20-07-06 14:57

ציטוט:

נכתב במקור על ידי omaniusd
לא.
אתה יכול באמצעות ה Adapter למלא אותו רק בנתונים לפי שאילתה כלשהי שיועברו אליה פרמטרים בצורה דינאמית.

יופי ככה שכבר הdataset מיותר במקרה כזה.
אז יותר יעיל להשתמש בשאילתא עם join מאשר לשלוף את הטבלאות ואז להשתמש בrelations.

omaniusd 20-07-06 15:04

ציטוט:

נכתב במקור על ידי בניה
יופי ככה שכבר הdataset מיותר במקרה כזה.
אז יותר יעיל להשתמש בשאילתא עם join מאשר לשלוף את הטבלאות ואז להשתמש בrelations.

בלי הDS, איך תשתמש ב realations?
ולמה זה כבר לא יעיל? היתרון בDS זה שהוא מסודר בצורה מצויינת מבחינה לוגית, גם.

בניה 20-07-06 15:13

ב"ה


(התכוונתי לשלוף את הטבלאות לתוך dataset)
יותר יעיל לשלוף רק מה שאתה צריך במקום לשלוף ואז לבדוק מה שאתה צריך ממה ששלפת נכון?
ככה שבמקרה הזה ל dataset אין עליונות.
אולי יותר נח אבל לא יותר מזה.


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

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