PracticU

CLR - פונקצית ReadOnly

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › CLR - פונקצית ReadOnly
מילון מושגים:
CLR - סביבת הריצה של .NET שמריצה את הקוד, מנהלת את הזיכרון ומטפלת בשגיאות (Common Language Runtime).
DLL - קובץ ספרייה ב-Windows המכיל קוד ופונקציות שתוכנות שונות יכולות לטעון ולהשתמש בהן במשותף.
Visual Studio - סביבת פיתוח משולבת (IDE) של מיקרוסופט לכתיבה, ניפוי והרצה של קוד, בעיקר בשפות .NET.
.NET - פלטפורמת פיתוח של מיקרוסופט להרצת יישומים בשפות כמו C#, הכוללת ספריות וסביבת ריצה משותפות.
SQL Server - מערכת ניהול מסדי נתונים יחסיים של מיקרוסופט, הנשלטת בשפת T-SQL.
ספרייה - אוסף קוד מוכן, כמו פונקציות ומחלקות, שמפתחים משתמשים בו בתוכניותיהם במקום לכתוב הכול מחדש.
מתודה - פונקציה המוגדרת בתוך מחלקה ומתארת פעולה שאובייקטים מאותה מחלקה יכולים לבצע.
פריימוורק - מסגרת תוכנה שמספקת מבנה וכלים מוכנים לפיתוח יישומים, כדי לחסוך כתיבת קוד חוזר.

CLR - פונקצית ReadOnly
השיעור מראה איך בונים קובץ DLL של CLR ב-Visual Studio, כדי שאפשר יהיה להפעיל קוד .NET מתוך SQL Server. בשיעור נבנה רק הקובץ.
השלבים העיקריים
1. פרויקט: בוחרים Class Library ולא Console Application, כי הקוד לא ירוץ כתוכנית עצמאית.
2. מחלקה ומתודה: המתודה מוגדרת public static, כדי שאפשר יהיה לקרוא לה בלי ליצור אובייקט. היא לא מחזירה ערך ומדפיסה מחרוזת.
3. Attribute: מעל המתודה מוסיפים את התכונה Microsoft.SqlServer.Server.SqlProcedure, ומציינים את סוג SQL Procedure. ה-using המתאים מוסיפים לראש הקובץ.
4. הפלט: המחרוזת נשלחת דרך SqlContext.Pipe.Send, והיא מוחזרת למי שמפעיל את הפרוצדורה ב-SQL Server.
5. גרסת .NET: בדוגמה SQL Server הוא 2008 R2, שתומך ב-.NET Framework 3.5 בלבד. לכן משנים את Target Framework של הפרויקט מ-4 ל-3.5, ומתקבלת אזהרה שאפשר שיהיו שינויים.
6. בנייה: לאחר Build מתקבלת הודעת Build succeeded, וקובץ ה-DLL מוכן.
שימו לב
התאמת גרסת הפריימוורק חשובה, כי SQL Server תומך רק בגרסאות מסוימות של .NET.
בסיום תוכלו לכתוב מחלקת CLR פשוטה ולבנות ממנה DLL.
השיעור הבא בקורס: CLR - חיבור לסביבת SQL

פרקי ההרצאה: CLR - פונקצית ReadOnly

  1. 00:00

    מטרת התרגיל: פונקציית CLR ב-SQL Server

  2. 00:38

    יצירת פרויקט Class Library ב-Visual Studio

  3. 01:12

    הגדרת פונקציה ציבורית וסטטית

  4. 01:52

    תכונת SqlProcedure מעל הפונקציה

  5. 02:31

    שליחת מחרוזת לשרת דרך SqlContext

תמלול ההרצאה: CLR - פונקצית ReadOnly

הטקסט המלא של הדקות הראשונות בהרצאה «CLR - פונקצית ReadOnly» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:21

    את התרגיל שלנו היום אנחנו נתחיל דווקא מתוך הוויז'ואל סטודיו. אני עובד על ויז'ואל סטודיו 2010, אולטימט, ובתוך סביבה זו אנחנו ניצור כאן קובץ ריצה, קובץ DLL, ולאחר שאנחנו נקמפל אותו וניצור ממנו שפת אינטרמידייט ללנינגוויץ', ה-IL, השפת ביניים,

  2. 00:42

    אז אנחנו מתוך ה-SQL Server נפתח Store Procedure ונפעיל אותו. איך אנחנו עושים זאת? שימו לב, אני ניגש קודם כל ל-New Project, כיוון שאני לא רוצה ליצור כאן תוכנית ריצה מלאה, אני לא לוחץ על ה-Consult Application, אלא אני אכנס כאן ל-Class Library,

  3. 00:59

    ובתוך ה-Class Library בואו ניתן שם לתוכנית שאותה אנחנו רוצים ליצור, MyCellar. לאחר מכן אני לוחץ על אוקיי, ונפתחת לי כאן התוכנית.

  4. 01:10

    בתוך התוכנית יש לנו כבר ב-Default, אנחנו מקבלים את השם של ה-Namespace כשם של ה-Solution, אני יכול לוותר על זה. וכל מה שאני נדרש לעשות זה בתוך ה-Class, קיבלתי כרגע את השם קלאס אחד אנחנו יוצרים כאן בעצם את הפונקציה שאותה אנחנו רוצים להפעיל אני מעוניין שהפונקציה שלי תהיה מוכרת מחוץ לקלאס גם ללא יצירת מופע של

  5. 01:32

    הקלאס ולכן אנחנו נגדיר אותה כפאבליק והיא תהיה מוגדרת כסטטיק אינה מחזירה דבר וכל שהיא עושה היא בעצם מדפיסה לי מחרוזת כפלט על מנת להצהיר על הפונקציה הזאת שאני יכול להשתמש בה בתוך הsql server כ-store procedure אנחנו צריכים להוסיף עליה Attributes.

  6. 01:57

    בתוך ה-Attributes אנחנו קוראים ל-Microsoft SQL Server Server ובתוך ה-Server יש לי אפשרות להצהיר עליה היכן אני רוצה להשתמש בה וכיוון שאנחנו רוצים להשתמש בה כמטוס בתוך ה-Store Procedure אז אנחנו לוחצים כאן על SQL Procedure.

  7. 02:18

    שימו לב על מנת לקרוא לאובייקטים שיהיו רלוונטיים בתוך ה-Store Procedure שאני אגדיר אותם אז אני צריך כאן להוסיף Using. מיקרוסופט sql server.server מה שנותן לי אפשרות לקרוא לאובייקט הבא שהוא נקרא sql context שבתוך הsql context יש לי אפשרות לפתוח פייפ כאשר לתוך הפייפ הוא הקונקשן שלי הוא בעצם הפייפ בין הסביבת הדוטנט בין הdll ובין הsql

  8. 02:48

    server ומתוכו אני יכול לקרוא למתודה שנקראת send שאליה אני שולח סטרינג שהוא זה שיתקבל בתוך ה-SQL Server. בתוך ה-send, ה-send יודע לקבל לי בעצם כפרמטר סטרינג מסאג' מסאג' שאותו אני מעביר דרך הפייפ לתוך ה-SQL Server לכל מי שיקרא בעצם לפונקציה הזאת, וכאן אנחנו נכתוב את המחוזת המתאימה.

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: CLR - מבוא

ההרצאה הבאה: CLR - חיבור לסביבת SQL

הרצאות קשורות מקורסים אחרים

  • משתנים לקריאה בלבד - readonly

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI