קריאה מאקסס ל-PROCEDURE
-
מצו"ב הפניה מתאימה לאשכול בנושא, עשיתי לו התאמה לMYSQL והוא עובד פרפקט.
http://tchumim.com/post/6753פורסם במקור בפורום CODE613 ב27/07/2016 11:04 (+03:00)
-
תודה, עזרת לי מאד.
אצרף את הקוד הרלוונטי בADP (במודול modsql).
Option Compare Database Public Function SetSqlServerRs(f As Form, Optional ssql As String = "") Dim rs As New ADODB.Recordset If Len(ssql) = 0 Then ssql = Eval(f.RecordSource) rs.CursorLocation = adUseClient rs.Open ssql, Application.CurrentProject.Connection, adOpenDynamic, adLockOptimistic Set f.Recordset = rs End Function Public Function ExecSQL(ssql As String) ' מטרת הפונקצייה להריץ קוד SQL בשרת Application.CurrentProject.Connection.Execute (ssql) End Function
בנוסף, אשאל, כיצד מקבלים פרמטרים חזרה מהפקודה?
תודה.פורסם במקור בפורום CODE613 ב28/07/2016 00:53 (+03:00)
-
נעשה סדר:
פונקציה - מיועדת לשליפת נתונים.
פרוצדורה - מיועדת להזנת + עדכון נתונים.לכן פונקציה זה מילה שאתה משלב בקוד והיא תביא לך את הנתונים שעומדים מאחוריה, ופרוצדורה זה משפט SQL שאתה "שולח" לשרת והיא מעדכנת נתונים.
יש אכן דרך ללכוד את התשובות שהפרוצדורה החזירה, זה נעשה באמצעות הרצה של פונקציה מיד אחרי הרצת הפרוצדורה, כשהפרוצדורה מכניסה את הערכים לתוך פונקציה זמנית.
לינק למאמר בנושא, המאמר הוא על MYSQL אך העקרונות דומים. https://internet-israel.com/מדריכים/mysql-מדריכים/stored-procedure-עם-משתנים-ב-mysql/
תחת הכותרת "קבלת משתנים מה-Stored Procedure" תמצא מענה לשאלתך.פורסם במקור בפורום CODE613 ב28/07/2016 09:41 (+03:00)
-
דוגמא:
מיד לאחר שאתה מריץ פרוצדורה:
sqlstr = "getAges(@ageMAX, @ageAVG);" ExecSQL (sqlstr)
תשלוף נתונים עם הפונקציה:
sqlstr = "SELECT @ageMax, @ageAVG" Set OLErs = New ADODB.Recordset OLErs.CursorLocation = adUseClient OLErs.Open sqlstr, GetGlobalConnection
התוצאה תהיה ערכת רשומות:
+---------+---------+ | @ageMax | @ageAVG | +---------+---------+ | 22 | 42 | +---------+---------+
פורסם במקור בפורום CODE613 ב28/07/2016 16:44 (+03:00)
-
לאחר נסיונות נפל רבים, עדיין לא הצלחתי בביצוע הפעולה (שכמובן שברגע שאני ידע איך עושים אותה, היא תהיה מאד פשוטה..).
בדרך שהוזכרה לעיל, לא הבנתי עדיין איך זה בכלל היה אמור לעבוד בVB, כל עוד הוא שולח את הפקודה במחרוזת, אם כן על מה אמורים לעשות את הSELECT?
ניסיתי בדרכים אחרות כאן וכאן וכאן, אבל גם כשהצלחתי לגשת לתוצאה הוא החזיר לי NUUL או שכלל הוא הכחיש את קיומם של שמות הפרמטרים שנשלחו או שהוחזרו.
אשמח לעזרה...
תודה.
פורסם במקור בפורום CODE613 ב29/07/2016 01:54 (+03:00)