
הטקסט המלא של הדקות הראשונות בהרצאה «CLR - פונקצית ReadOnly» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
את התרגיל שלנו היום אנחנו נתחיל דווקא מתוך הוויז'ואל סטודיו. אני עובד על ויז'ואל סטודיו 2010, אולטימט, ובתוך סביבה זו אנחנו ניצור כאן קובץ ריצה, קובץ DLL, ולאחר שאנחנו נקמפל אותו וניצור ממנו שפת אינטרמידייט ללנינגוויץ', ה-IL, השפת ביניים,
אז אנחנו מתוך ה-SQL Server נפתח Store Procedure ונפעיל אותו. איך אנחנו עושים זאת? שימו לב, אני ניגש קודם כל ל-New Project, כיוון שאני לא רוצה ליצור כאן תוכנית ריצה מלאה, אני לא לוחץ על ה-Consult Application, אלא אני אכנס כאן ל-Class Library,
ובתוך ה-Class Library בואו ניתן שם לתוכנית שאותה אנחנו רוצים ליצור, MyCellar. לאחר מכן אני לוחץ על אוקיי, ונפתחת לי כאן התוכנית.
בתוך התוכנית יש לנו כבר ב-Default, אנחנו מקבלים את השם של ה-Namespace כשם של ה-Solution, אני יכול לוותר על זה. וכל מה שאני נדרש לעשות זה בתוך ה-Class, קיבלתי כרגע את השם קלאס אחד אנחנו יוצרים כאן בעצם את הפונקציה שאותה אנחנו רוצים להפעיל אני מעוניין שהפונקציה שלי תהיה מוכרת מחוץ לקלאס גם ללא יצירת מופע של
הקלאס ולכן אנחנו נגדיר אותה כפאבליק והיא תהיה מוגדרת כסטטיק אינה מחזירה דבר וכל שהיא עושה היא בעצם מדפיסה לי מחרוזת כפלט על מנת להצהיר על הפונקציה הזאת שאני יכול להשתמש בה בתוך הsql server כ-store procedure אנחנו צריכים להוסיף עליה Attributes.
בתוך ה-Attributes אנחנו קוראים ל-Microsoft SQL Server Server ובתוך ה-Server יש לי אפשרות להצהיר עליה היכן אני רוצה להשתמש בה וכיוון שאנחנו רוצים להשתמש בה כמטוס בתוך ה-Store Procedure אז אנחנו לוחצים כאן על SQL Procedure.
שימו לב על מנת לקרוא לאובייקטים שיהיו רלוונטיים בתוך ה-Store Procedure שאני אגדיר אותם אז אני צריך כאן להוסיף Using. מיקרוסופט sql server.server מה שנותן לי אפשרות לקרוא לאובייקט הבא שהוא נקרא sql context שבתוך הsql context יש לי אפשרות לפתוח פייפ כאשר לתוך הפייפ הוא הקונקשן שלי הוא בעצם הפייפ בין הסביבת הדוטנט בין הdll ובין הsql
server ומתוכו אני יכול לקרוא למתודה שנקראת send שאליה אני שולח סטרינג שהוא זה שיתקבל בתוך ה-SQL Server. בתוך ה-send, ה-send יודע לקבל לי בעצם כפרמטר סטרינג מסאג' מסאג' שאותו אני מעביר דרך הפייפ לתוך ה-SQL Server לכל מי שיקרא בעצם לפונקציה הזאת, וכאן אנחנו נכתוב את המחוזת המתאימה.