יצירת SP ב-ACCESS

‏ • 27 באפריל, 2004

רובנו שומעים מידי יום את המונח SP (stored procedure) כשלמישהו יש שאלה על איך לייעל את העבודה מול מסד הנתונים או שהוא עובד על MSSQL והוא נתקל בבעיה ומזכיר את המונח הזה.
מכאן אנו מבינים שיצירת SP היא חלק בלתי נפרד מה-MSSQL אבל למזלנו (משתמשי ACCESS 🙂 אפשר ליצור מופעי SP גם ב-access.
בוא נתחיל בהגדרת המונח SP

Stored procedure (SP) – קבוצה נרחבת של הצהרות SQL (ב- access זה jet SQL) המקומפלות בשרת וניתן לתפעל אותן ע"י הצהרת SQL אחת (execute). אפשר להשפיע על קבוצת הצהרות ה-SQL ע"י משתנים(פרמטרים) הנשלחים כחלק מה-SP.

ישנם שני דרכים ליצירת SP ב-ACCESS :


  • תחביר TSQL המופעל דרך אלמנט ה-text area (ב-HTML) ושיטת ה-execute של אובייקט הקונקשיין, ואז ה-access מתרגם לשפה שלו jet sql
  • תחביר jet sql פשוט הנוצר ישירות באקסס
במאמר זה נדבר על הדרך השנייה.
עכשיו ניכנס לחלק של יצירת שאילתות (שאילתות,query בתפריט של אקסס) ואז ניכנס ליצירת שאילתא בתצוגת עיצוב ונבחר על מצב SQL

פסוקית PARAMETERS

כמו שמה תפקידה להגדיר את הפרמטרים (משתנים) שישלחו לשאילתא המתקבלת.
וזה התחביר שלה:











1  








PARAMTERS name DataType [,name2 datatype[,name3 datatype]]




  • Name – שם המשתנה
  • DataType – סוג המשתנה (אותם סוגי הנתונים המשמשים ליצירת טבלה באקסס)
דוגמא לשימוש בפסוקית PARAMETERS :










1  








PARAMETERS picID int, picTitle text(50), picDate DateTime


אחרי פסוקית הפרמטר עלינו להכניס סוג מסוים של שאילתא באם זה : שליפה, הכנסה, שדרוג(update), מחיקה (וכל סוג מסוים של שאילתא הנתמכת ב-access) בשאילתא שאנו מכניסים אנו יכולים להשתמש במשתנים שיצרנו בפסוקית ה-PARAMETERS .
חשוב מאוד – לא לתת לפרמטרים שמות זהית לשדות בטבלה.

לדוגמא: נגיד יש לנו טבלת בשם pictures בטבלה זו יש שלושה עמודות: id, title ו-link
Id – מספור אוטומטי
Title, link – טקסט
ואנו רוצים לשלוף את הקישור לתמונה (עמודת LINK) רק איפה שהמשתנה picID (שיצרנו בדוגמא קודם) שווה לשדה בעמודה ID ולכן כך תיראה השאילתא שלנו










1
2  








PARAMETERS picID int;
SELECT link FROM pictures WHERE id=[picID]


אנו יכולים להשתמש במשתנים שהגדרנו בפסוקית parameters רק בפסוקיות ה-WHERE ו-HAVING. לעומת ה-SQL SERVER שבו אפשר להשתמש בהם בכל מקום (אבל על זה אני לא ארחיב).

לאחר שכתבנו את ה-SP באקסס עלינו לשמור את הקובץ כדי שלא ניתקל בעת השמירה שלנו במלים שמורות נקרא ל-SP שלנו כך: spPicture (שימו לב לקידומת)

כדי לקרוא ל-SP עלינו לכתוב משפט SQL המשתמש בהצהרת EXECUTE ואחרי שם ה-SP והמשתנים.
זה התחביר של הצהרה זו










1  








EXECUTE sp_name [name1=<val>, [name2=<val>]]


(הערכים הנמצאים בסוגריים המסולסלות הם אופציונליים)
ואפשר גם כך:










1  








EXECUTE sp_name [name1[, name2]]


(הערכים הנמצאים במשתנים ע"פ הסדר בו הוגדרו ב-SP)
חשוב מאוד לשמור על הגדרות סוגי המשתנים ז"א משתנים מסוג תאריך יש לעטוף ב-#, משתנים טקסטואליים יש לעטוף בגרשים ומשתנים מספריים לא צריך לעטוף כלל.

וכדי להשלים את הדוגמא נכתוב את הצהרת ה-EXECUTE המתאימה ל-SP שלנו










1
2
3  








EXECUTE spPicture picID=1;
–or
EXECUTE spPicture 1;


וזו הדוגמא הסופית:

spPicture – יצירת ה-SP בתוך אקסס










1
2  








PARAMETERS picID int;
SELECT link FROM pictures WHERE id=[ picID];


קוד ה-ASP:










1
2
3
4  








<%
strSQL = "EXECUTE spPicture picID=1"
objConn.Open strSQL;
%>


תכנות נעים

תגיות: , , , ,

ניר טייב

בונה אתרים ומתכנת בשפות:HTML, CSS, JavaScript, PHP 5, JSP&Servlets ורובי.

תגובות בפייסבוק