אפשר להריץ שאילתת sql על datatable?

juliazulay

New member
בוודאי וקוראים לזה

StoredProcedure ראשית משהו ספציפי שמראה לך כיצד עושים זאת גם ברמת הDB בבקשה הינה לינק לGOOGLE אשר נותן לך כמה אתרים שמראים דוגמאות בנושא מקווה שעזרתי יוליה
 

IdleThought

New member
לא

מוכרת לי אופציה לבצע דבר שכזה ישירות על DT , אני מכיר משחקים שמבצעים באמצעות XPATH או בשימוש בעמודת EXPRESSION
 

J u n k y

New member
יש מתודה Select

שבה רושמים את הקריטריון. לדוגמה:
myDataTable.Select("NodeID=0");​
זו כמובן לא "שאילתת SQL" אבל זה יכול לעשור לך.
 

EdotK

New member
שים לב רק שזמני הריצה של זה

לא טובים במיוחד ולכן עדיף להשתמש בזה רק כשזמן ריצה הוא לא פקטור, או כשאתה לא מוצא דרך אחרת. למיטב ידעתי DataTable לא יודע לממש אינדקסים של מסד נתונים, ולפיכך השאילתא הנ"ל (select("nodeID=0") תרוץ בזמן O(n), עם יעילות ממש נמוכה לעומת כל שאילתת SQL אמיתית. לפעמים, יש מצבים שבהם זה ממש מפשט פיצ'רים מסוימים ואז שווה להשתמש בזה, אבל מניסיוני בדר"כ זה נובע מחוסר מיומנות ב SQL.
 

J u n k y

New member
זה בד"כ טוב

כשיש טבלה קטנה יחסית (פחות מ - 20 רשומות) וכשצריכים לשלוף ממנה מעט שורות בתדירות גבוהה יחסית (כמו לדוגמה כדי לממש רקורסיה על המידע מה - DB). ואז - עדיף לעשות את ה - SELECT על ה - DATATABLE כי גישה ל - DB תהיה כרוכה ב - overhead לא שפוי. לגבי אינדקסים: גם שאילתה של SQL תרוץ בזמן O(n) אם לא הגדרת אינדקסים. כמו כן, אל תתפסו אותי במילה, אבל נראה לי שגם ב - DataTable יש פתרון לאינדקסים.
 

EdotK

New member
נכון, אבל

כמו שאמרתי, לממש רקורסיה על המידע מDB לא עושים ככה. בשביל זה יש אובייקטים כמו HashTable ודומיו שמאפשרים גישה ע"פ אינדקסים לתוך קבוצה של אובייקטים. לבצע Select לתוך DataTable זה דבר מאוד נוח, וכמעט תמיד לא נכון.. (חוץ מבמקרים שלא אכפת לך). כדוגמא קלאסית, לאחרונה בניתי מערכת פורומים "רקורסיבית" לאתר, וכתבתי קוד ששולף ומציג את ההודעות בפורום בO(n). אם הייתי משתמש בSelect על DataTable הייתי נפתר מהצורך לבצע הרבה קריאות לתוך הDB, אך עדיין האלגוריתם היה רץ ב O(n^2). (וזה קריטי כשמדובר באתר עם הרבה תעבורה - האתר המדובר הוא חלק מYnetCenter). ולגבי מצב בו המתכנת לא הגדיר אינדקסים מתאימים - אם המתכנת אידיוט שום דבר לא יעזור לו...
 

Misprint

New member
../images/Emo3.gif

ממתי כותבים אפליקציות שזמן הריצה בהן הוא פקטור בדוט נט? ועוד עם DB רגיל??
 

EdotK

New member
לא יודע איפה אתה חי,אבל זה קורה

לעיתים מאוד קרובות.
 
למעלה