
הטקסט המלא של הדקות הראשונות בהרצאה «CLR - פונקציה עם פרמטרים - חלק 2» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
נחזור לסביבת ה-SQL Server ואנחנו כאן פותחים קווירי חדש, שוב פעם אנחנו נמצאים על הדאטאבס של הנורפווינד, קליק ימני, ומה שאנחנו רוצים כרגע לעשות זה שוב פעם New Assembly לחבר את ה-Assembly שאותו כרגע יצרנו שזה ה-CLR-Insert, ברגע שהוא מחובר אנחנו בנוהל הרגיל רוצים כבר
ליצור את הפרוצדורה, insert with params as external CLR insert שוב פעם אנחנו קוראים כאן לקלאס אחד ואנחנו קוראים כאן לפונקציה בדיוק כפי שציינו אותה כאן בתוך הדוטנט insert by CLR אני יודע שגם אם עכשיו אני אריץ את זה אני אקבל כאן הודעת שגיאה כיוון שהדוטנט כבר יודע שכרגע ה-DLL שלי מצפה לקבל פרמטרים failed because parameter count do not match.
ה-insert by clr מצפה לקבל פרמטרים. את הפרמטרים שהוא רוצה לקבל אני בעצם רושם בפרוטוטייפ של ה-store procedure. כלומר, כאן אני צריך כבר לציין לו אילו פרמטרים אני רוצה לשלוח.
כעת, שוב פעם אנחנו חוזרים לאותה שאלה כיצד אני מקשר בין הדאטה טייפ כפי שרשמתי אותו כאן בתוך ה-SQL Server ובין הדאטה טייפ כפי שרשמתי אותו כאן בתוך ה-Dotnet, ובין הדאטה טייפ בתוך ה-Store Procedure.
אז כאן אנחנו יודעים שאם אני נכנס כאן לטבלה שאותה ראינו מקודם, ה-Mapping between אותם דאטה טייפס, אז אם אנחנו שם קראנו ל-SQL String, כלומר השתמשנו בדאטה טייפ הזה, אז הדאטה טייפ הרלוונטי המתאים לו זה ה-N Varchar.
שימו לב, טעות נפוצה, להשתמש בוורצ'אר בתוך ה-SQL Server, אין לי בעצם דאטה טייפ אקוויוולנטי שיכול להכיל את הערכים שלו מתוך סביבות אחרות שאינן SQL Server.
כלומר, נמצאנו למדים כאן שאם אני מסתכל על ה-nVarchar שהוא בתוך ה-SQL Server הוא יכול לקבל או לשלוח ערכים לדאטה טייפ מסוג SQL String או פשוט לקבל String.
נחזור לתוך ה-SQL Server, לתוך הפרוצדורה שלי. אני רוצה לייצר כאן, אז אנחנו קוראים למשתנה nVarchar. בואו נגדיר קודם כל משתנים: fName מסוג nVarchar בגודל 50 ואותו דבר בגודל 50. אז גם כאן אנחנו מגדילים את שני המשתנים שלנו שאותם אנחנו שולחים. אלו שני המשתנים, הארגומנטים, הפרמטרים, שאותם אנחנו בעצם שולחים בסופו של דבר כאן
לפונקציית insert by clr. נקטין כאן את המסך, כדי שנוכל לראות טוב יותר, F5 אנחנו מריצים.