עבודה נכונה מול DB

udiko

New member
עבודה נכונה מול DB

כך אני עובד כיום, פונקציה בדף שקוראת לפונקציות סטטיות אחרות שמטפלות רק בנושא ה DB. האם העבודה הזו נכונה ? ומה לגבי זה שהשאילתה עצמה בתוך הקוד ולא כסטור פרסידר ? זה משמעותי ? הנה קוד לדוגמא לקריאת תוכן כתבה:
DataView dv = Com.DataCom.SelectArticle(ArticleID); ------------ Com.DataCom ----------------------- public static DataView SelectArticle(int AID) { string sql; sql = "select ArticleTitle,ArticleAbstract,ArticleContent from ContentArticles" + " where ArticleID=" + AID.ToString(); return Com.DataCom.LoadTblBySQL(sql); } public static DataView LoadTblBySQL(string sql) { SqlConnection conn = new SqlConnection(Com.GlobalVar.dsn); SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); da.Fill(ds,"0"); DataView dv = new DataView(ds.Tables["0"]); return dv; }​
 

Zeliran

New member
......

אם אתה עובד עם SQL Server הרבה יותר עדיף להשתמש ב SP בגלל שהביצועים יותר טובים וגם ההאבטחה יותר טובה (זה מונע SQL Injection)
 

nirtheking

New member
...

בקשר ל-SQL INJECTION אז אם אני לא טועה כאשר עובדים עם שאילתות דינמיות בתוך SP אז עדיין יש פירצה.
 

Zeliran

New member
האמתי

שאישית לא יצא לי להשתמש יותר מדיי ב SP אבל מה שכן, במספר WebCasts מטעם מייקרוסופט בנושאי אבטחה, אז בכל מה שקשור ל SQL Injection אז מתוך מספר הפתרונות שנתנו, השימוש ב SP היה הבולט ביותר
 

udiko

New member
לכמה הכוונה ב SP ?

אני חדש עם המסד הזה אתה מתכוון ל store procedure ? חוץ מזה יש עוד המלצות ?
 

udiko

New member
יש עוד טיפים ?

מה לגבי שהפונקציות לטיפול ב DB סטטיות ? טוב, לא טוב ? (הרבה דפים ניגשים לאותם פונקציות)
 

ייוניי

New member
טיפים

מבחינת עבודת ה SQL שווה לך לבדוק את אובייקט SqlCommand שמאפשר הזנת פרמטרים בתצורה נכונה יותר מאשר שרשור מחרוזת. אגב, הדבר מונע SQL injection לחלוטין וגם בריא יותר מבחינת ביצועים. לגבי פונקציות סטאטיות אין בעיה להשתמש בהן, אך מומלץ לסדר אותן בצורה נוחה בתוך Class-ים חיצוניים על מנת לאפשר גישה אליהן מכל מקום בקוד האפליקציה. (זה לא ממש נכון מבחינת תכנות OO אבל פונקציות סטאטיות מהסגנון הזה שייכות לתכנות פרוצדוראלי).
 
למעלה