PracticU

CLR - פונקציה עם פרמטרים - חלק 2

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

CLR - פונקציה עם פרמטרים - חלק 2
CLR - פונקציה עם פרמטרים, חלק 2, ממשיך את הדוגמה הקודמת: קריאה לפונקציית CLR עם פרמטרים מתוך פרוצדורה מאוחסנת ב-SQL Server, והוספת שורות לטבלת Employees.
השלבים העיקריים
1. חיבור ה-Assembly: במסד הנתונים Northwind מחברים את ה-Assembly שנוצר בהרצאה הקודמת, בשם CLR-Insert.
2. פרוצדורה חיצונית: יוצרים Stored Procedure שמפנה למתודה במחלקה שבתוך ה-DLL. השם בפרוצדורה חייב להתאים לשם המחלקה והמתודה ב-.NET.
3. התאמת מספר הפרמטרים: אם מספר הפרמטרים בפרוטוטייפ של הפרוצדורה לא תואם למספר הפרמטרים של המתודה ב-.NET, ההרצה נכשלת עם הודעה על אי התאמה.
4. התאמת טיפוסים: nvarchar בצד SQL מתאים לטיפוס string בצד .NET. המרצה מזהיר מלהשתמש ב-varchar, כי הוא לא מתאים באותה צורה לערכים מסביבות אחרות.
5. הגדרת הפרמטרים: מוגדרים שני פרמטרים מסוג nvarchar באורך 50, בשם first name ו-last name, והם מועברים למתודה לפי הסדר.
6. הרצה: מריצים את הפרוצדורה עם שני ערכים, ומקבלים הודעת Completed successfully. המרצה מציין שהרצה נוספת עם ערכים אחרים נותנת אותה תוצאה.
7. בדיקה: בטבלה Employees, בתצוגה Edit Top Rows, רואים שהערכים שנשלחו נכנסו לטבלה.
שימו לב
המרצה מדגיש שמבחינת המשתמש הפרוצדורה נראית כמו פרוצדורה רגילה, אף על פי שהלוגיקה שלה רצה בתוך .NET.
בסיום ההרצאה הסטודנט יודע לקרוא לפונקציית CLR עם פרמטרים מתוך Stored Procedure, ולהתאים בין טיפוסי SQL לטיפוסי .NET.
השיעור הבא בקורס: CLR - יתרונות וחסרונות

פרקי ההרצאה: CLR - פונקציה עם פרמטרים - חלק 2

  1. 00:00

    חיבור Assembly ליצירת הפרוצדורה

  2. 01:37

    מיפוי טיפוסי נתונים בין SQL ל-.NET

  3. 02:16

    טעות נפוצה: varchar לעומת nvarchar

  4. 02:53

    הגדרת משתני nvarchar בפרוצדורה

תמלול ההרצאה: CLR - פונקציה עם פרמטרים - חלק 2

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

  1. 00:19

    נחזור לסביבת ה-SQL Server ואנחנו כאן פותחים קווירי חדש, שוב פעם אנחנו נמצאים על הדאטאבס של הנורפווינד, קליק ימני, ומה שאנחנו רוצים כרגע לעשות זה שוב פעם New Assembly לחבר את ה-Assembly שאותו כרגע יצרנו שזה ה-CLR-Insert, ברגע שהוא מחובר אנחנו בנוהל הרגיל רוצים כבר

  2. 00:41

    ליצור את הפרוצדורה, insert with params as external CLR insert שוב פעם אנחנו קוראים כאן לקלאס אחד ואנחנו קוראים כאן לפונקציה בדיוק כפי שציינו אותה כאן בתוך הדוטנט insert by CLR אני יודע שגם אם עכשיו אני אריץ את זה אני אקבל כאן הודעת שגיאה כיוון שהדוטנט כבר יודע שכרגע ה-DLL שלי מצפה לקבל פרמטרים failed because parameter count do not match.

  3. 01:24

    ה-insert by clr מצפה לקבל פרמטרים. את הפרמטרים שהוא רוצה לקבל אני בעצם רושם בפרוטוטייפ של ה-store procedure. כלומר, כאן אני צריך כבר לציין לו אילו פרמטרים אני רוצה לשלוח.

  4. 01:37

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

  5. 01:55

    אז כאן אנחנו יודעים שאם אני נכנס כאן לטבלה שאותה ראינו מקודם, ה-Mapping between אותם דאטה טייפס, אז אם אנחנו שם קראנו ל-SQL String, כלומר השתמשנו בדאטה טייפ הזה, אז הדאטה טייפ הרלוונטי המתאים לו זה ה-N Varchar.

  6. 02:16

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

  7. 02:33

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

  8. 02:50

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

  9. 03:28

    לפונקציית insert by clr. נקטין כאן את המסך, כדי שנוכל לראות טוב יותר, F5 אנחנו מריצים.

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

ההרצאה הקודמת: CLR - פונקציה עם פרמטרים - חלק 1

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

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

  • פונקציה - Function
  • פרמטרים לפונקציה Main
  • שמות פרמטרים של פעולות
  • שפת JavaScript - פונקציה רגילה

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

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