PracticU

CLR - חיבור לסביבת SQL

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

CLR - חיבור לסביבת SQL
השיעור ממשיך את בניית ה-DLL: מייבאים אותו לתוך SQL Server, מפעילים את הקוד שבו דרך Stored Procedure, ומוחקים אותו בסוף.
השלבים העיקריים
1. הפעלת CLR: בברירת מחדל האפשרות CLR enabled כבויה. מריצים sp_configure עם הערך 1, ואחר כך RECONFIGURE, כדי שההגדרה תיכנס לתוקף בלי הפעלה מחדש.
2. בדיקה: מריצים שוב sp_configure ורואים שהערך של CLR enabled השתנה ל-1.
3. יבוא ה-DLL: ב-Object Explorer, תחת Programmability ואז Assemblies, לוחצים על New Assembly ובוחרים את קובץ MyCLR.dll מתיקיית ה-Debug של הפרויקט.
4. יצירת פרוצדורה: מגדירים CREATE PROCEDURE רגיל, ובמקום גוף מופיעה המילה EXTERNAL NAME, שמפנה לאסמבלי, למחלקה ולמתודה. בדוגמה: האסמבלי MyCLR, המחלקה Class1, והמתודה Print בסוגריים מרובעים, כי Print היא מילה שמורה.
5. הפעלה: מפעילים את הפרוצדורה כמו כל פרוצדורה אחרת. הפלט של המתודה מופיע בלשונית Messages.
6. מחיקה: לא ניתן למחוק אסמבלי שמוגדרת עליו פרוצדורה. קודם מוחקים את הפרוצדורה, ואז את האסמבלי.
פקודות והגדרות
EXEC sp_configure 'clr enabled', 1; RECONFIGURE; להפעלת CLR, CREATE PROCEDURE ... AS EXTERNAL NAME ליצירת הפרוצדורה, ו-DROP PROCEDURE ואחריה DROP ASSEMBLY למחיקה.
שימו לב
הפרוצדורה יכולה לרוץ רק כשה-CLR מופעל. האסמבלי מוצג בתוך הדאטאבייס לאחר רענון (Refresh).
בסיום תוכלו לייבא DLL של CLR ל-SQL Server ולהפעיל ממנו פרוצדורה.
השיעור הבא בקורס: CLR - פונקצית עדכון

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

  1. 00:00

    מבוא: בניית קובץ DLL והגדרת סביבת SQL

  2. 01:00

    הפעלת CLR בשרת עם sp_configure

  3. 01:41

    RECONFIGURE להחלת ההגדרה

  4. 02:40

    מיפוי קובץ ה-DLL כ-Assembly בדאטהבייס

  5. 03:53

    בחירת קובץ ה-DLL מהדיסק

  6. 04:54

    יצירת Stored Procedure שמפעיל את הקוד

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

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

  1. 00:19

    אם כן, לאחר יצירת קובץ ה-DLL כאן מתוך סביבת ה-Visual Studio, אני מזכיר שיצרנו אותו על בסיס גרסה של .NET Framework 3.5. לאחר מכן ביצענו בילד ויצרנו קובץ של MyCLR.DLL.

  2. 00:39

    כל שנותר לנו כרגע לעשות זה לגשת ל-SQL Server Management Studio, וכאן בתוך הדאטאבס שלי למפות, להוסיף מיפוי לתוך הקובץ dll שאותו יצרתי. לפני שאנחנו עושים זאת, בואו נסתכל, יש לנו כאן פתור פרוציג'יה שנקרא SP-Config.

  3. 00:57

    אם אנחנו מריצים אותו, אני רואה שהוא בעצם נותן לי שלל של אפשרויות קונפיגורציה בתוך ה-Database, והאפשרות שכרגע מעניינת אותנו זה ה-CLR-Enabled. בי דיפולט, עם ההתקנה של דאטאבס של SQL Server אנחנו מקבלים את ה-SQL, ה-CLR Enabled כ-Configuration Verbal Value שווה לאפס, כלומר כרגע לא ניתן לעבוד מול קבצי CLR.

  4. 01:26

    כדי לשנות זאת אז אני צריך לתת ל-SP Config שני פרמטרים, קודם כל מהו המשתנה שאותו אני רוצה לשנות, שאת זה אני תוחם בתוך גרשיים, ולאחר מכן מהו הערך שאותו אני רוצה להכניס, ואני רוצה שבתוך CLR Enabled יהיה שווה לאחד, תחת 0, מה שקיים כרגע.

  5. 01:47

    F5, אני מריץ, אני מקבל הודעה שזה בוצע תקין, אבל שימו לב להודעה, run the reconfigure statement to install. כרגע הוא רק הדליק את הביט, את הבית, שווה ל-1 בתוך ה-CLR enabled, על מנת שזה יהיה בתוקף כבר בריצה הנוכחית של ה-SQL Server Management Studio,

  6. 02:08

    אני צריך לעשות reconfigure, כלומר תקלוט מהקובץ קונפיגורציה את כל ההגדרות מחדש, אני עושה F5 ומקבל אינדיקציה של Completed Successfully.

  7. 02:21

    אם כרגע אני אשוב ויריץ את ה-SP Configure על מנת לקבל את כל הגדרות הקונפיגורציה, אנחנו נראה שה-CLR Enabled בעמודה של Config Value כרגע השתנתה ל-1. כרגע אני יכול לבצע קריאה לתוך קבצי אסמבלי שנמצאים תחת ה-CLR.

  8. 02:48

    איך אנחנו ממפים את אותו DLL שיצרנו? אז בואו ניכנס לתוך הדאטאבייס, נגלול טיפה למטה. יש לנו כאן סקשן שנקרא פרוגרמביליטי, ובתוך פרוגרמביליטי אנחנו יכולים לפתוח שוב ולהיכנס לתוך אסמבליז.

  9. 03:06

    אסמבליז, אני יכול לפתוח אותו ולראות שיש לי כרגע שני אסמבליז מחוברים לתוך הדאטאבייס. אני רוצה להוסיף את האסמבלי הנוסף שאני כתבתי, אז קליק ימני New Assembly, פותח לי חלון שאומר לי תן לי את הנתיב המדויק לתוך הקובץ dll נחזור חצי דקה לתוך הוויז'ואל

  10. 03:26

    סטודיו כשאני עומד על השם של הקלאס כבר כטול טיפ נפתח לי הנתיב המלא אבל אני גם יכול ללחוץ על קליק ימני copy full path להעתיק את הנתיב המלא אמנם כאן זה הנתיב המלא של הקלאס נקודה cs כלומר של הקובץ source code ואנחנו רוצים את ה-DLL אבל מספיק שנדביק אותו ונוכל לחזור שתי רמות אחורה.

  11. 03:53

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

  12. 04:20

    mycllr.dll, אני לוחץ עליו, לוחץ על open וכרגע נותר לי רק ללחוץ על אוקיי על מנת לחבר אותו לדאטאביס שלי. נפתח שוב את ה-sql סרבר, כן, אז אנחנו רואים שבתוך האסמבליס שלי נוסף לי כרגע קובץ אסמבלי נוסף, זה אומר שישנה תאימות בין הפרמוורק שעליו עבדתי ב-dotnet, ב-c-sharp,

  13. 04:49

    ובין סביבת הפרמבורג שעליה אני עובד כאן מתוך ה-SQL Server Management Studio. MyCLR כרגע מחובר. איך אני משתמש בו? בואו נפתח New Query.

  14. 05:01

    כאן אנחנו ניצור Store Procedure חדש, שהוא בעצם יפעיל את הקוד שנמצא לי בתוך ה-MyCLR. כדי ליצור Store Procedure אנחנו כבר מכירים את הפקודה ככל אובייקט DDL.

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

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

ההרצאה הבאה: CLR - פונקצית עדכון

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

  • LINQ ל- SQL
  • התקנה של SQL
  • חיבור של NodeJS ל-MongoDB
  • חיבור מרחוק עם SSH

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

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