מיון בSTORED PROCEDURE לפי טופס

מיון בSTORED PROCEDURE לפי טופס

אני רוצה לקרוא לSTORED PROCEDURE, ולשלוח כפרמטר את השדה לפי ימיין האם זה אפשרי? האם ניתן לקרוא לSP כROWSOURCE של רשימה בצורה אחרת מאשר me.rowsource= "=EXEC SP_TRY @param1='d',@param2" (כמו שקוראים לשאילתת view) לדוג, me.rowSource="select * from V_TRY"
 
תגובה

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

Lucciano

New member
אז ככה

ROWSOURCE יכול להכיל גם פונקצית VBA שמחזירה RECORDSET. בתוך הפונקציה אפשר לקרוא ל SP... (עשיתי את זה פעם עם ORACLE, לא ניסיתי עם MSSQL)
 

אוריקס

New member
אפשר, 2 אפשרויות ../images/Emo13.gif

1. ב TSQL יש פונקציה שנקראת EXEC והיא מקבלת מחרוזת ומעריכה אותה מחדש כקוד T-SQL. תוכל להקריב מחרוזת עם הפרמטר שתקבל, ואז להפעיל את השאילתה ע"י EXEC. בניגוד לשפות אחרות, יש מקרים שאין מוצא אחר מלבד השימוש בפונקציה הזאת (שגורמת לאיטיות, כמובן). 2. אם אתה יכול לשחק קצת עם הפרמטרים ולא רוצה "לסדר לפי שם שדה שקיבלת" במלוא מובן המילה, תוכל לעשות משהו כזה:
SELECT * FROM [tbl] ORDER BY CASE @Param = 1 [SomeField] CASE @Param = 2 [SomeOtherField] END​
 
למעלה