1 هذه أيضًا أبسط طريقة، حيث تحتوي على معلمتين للإدخال ولا توجد قيمة إرجاع:
تعيين الاتصال = server.createobject(adodb.connection)
اتصال.فتح بعضDSN
Connection.Execute procname varvalue1، varvalue2
'امسح كافة الكائنات إلى لا شيء وحرر الموارد
اتصال.إغلاق
ضبط الاتصال = لا شيء
2 إذا كنت تريد إرجاع مجموعة السجلات:
تعيين الاتصال = server.createobject(adodb.connection)
اتصال.فتح بعضDSN
مجموعة rs = server.createobject(adodb.recordset)
rs.Open Exec procname varvalue1، varvalue2،connection
'امسح كافة الكائنات إلى لا شيء وحرر الموارد
rs. Close
اتصال.إغلاق
setrs=لا شيء
ضبط الاتصال = لا شيء
3 لا يمكن أن تحتوي أي من الطريقتين المذكورتين أعلاه على قيمة إرجاع (باستثناء مجموعة السجلات). إذا كنت ترغب في الحصول على قيمة الإرجاع، فأنت بحاجة إلى استخدام طريقة الأوامر.
أولاً، هناك نوعان من قيم الإرجاع. أحدهما هو إرجاع قيمة مباشرة في الإجراء المخزن، تمامًا مثل قيمة إرجاع الدالة C وVB، والآخر هو إرجاع قيم متعددة، ويجب تحديد أسماء المتغيرات لتخزين هذه القيم في معلمات الاستدعاء أولاً .
يحتاج هذا المثال إلى التعامل مع معلمات متعددة ومعلمات الإدخال ومعلمات الإخراج ومجموعات سجلات الإرجاع وقيمة الإرجاع المباشرة (هل هي كاملة بما فيه الكفاية؟)
الإجراء المخزن هو كما يلي:
استخدام الحانات
يذهب
- إنشاء إجراء مخزن
إنشاء إجراء sp_PubsTest
- تحديد ثلاثة متغيرات للمعلمات لاحظ أن المعلمة الثالثة تم تمييزها خصيصًا للإخراج.
@au_lname فارتشار (20)،
@intID int،
@intIDOut int OUTPUT
مثل
حدد @intIDOut = @intID + 1
يختار *
من المؤلفين
حيث au_lname مثل @au_lname + '%'
- إرجاع القيمة مباشرة
العودة @intID + 2
برنامج asp الذي يستدعي هذا الإجراء المخزن هو كما يلي:
<%@ اللغة=VBScript %>
<%
خافت كمدسب
ديمادو آر إس
خافت adCmdSPStoredProc
خافت adParamReturnValue
خافت adParaminput
خافت adParamOutput
خافت عدد صحيح
خافت iVal
خافت البيضاوي
حقل اللغط الخافت
خافت adVarChar
'هذه القيم هي ثوابت محددة مسبقًا في VB ويمكن استدعاؤها مباشرة، ولكنها غير محددة مسبقًا في VBScript
أدكمدسبسستوريدبروك = 4
قيمة adParamReturnValue = 4
معلمة الإدخال = 1
أدبارامأوتبوت = 2
عدد صحيح = 3
أدفارتشار = 200
اي فال = 5
البيضاوي = 3
'إنشاء كائن أمر
اضبط CmdSP = Server.CreateObject(ADODB.Command)
"إنشاء رابط."
CmdSP.ActiveConnection = Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs
"حدد اسم استدعاء كائن الأمر."
CmdSP.CommandText = sp_PubsTest
'قم بتعيين نوع استدعاء الأمر ليكون إجراءً مخزنًا (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc
'أضف معلمات إلى كائن الأمر
'حدد الإجراء المخزن ليكون له قيمة إرجاع مباشرة، وهو عدد صحيح. القيمة الافتراضية هي 4
CmdSP.Parameters.Append CmdSP.CreateParameter(RETURN_VALUE, adInteger, adParamReturnValue, 4)
"تحديد معلمة إدخال الأحرف."
CmdSP.Parameters.Append CmdSP.CreateParameter(@au_lname, adVarChar, adParaminput, 20, M)
"تحديد معلمة إدخال عدد صحيح."
CmdSP.Parameters.Append CmdSP.CreateParameter(@intID, adInteger, adParamInput, , iVal)
'تحديد معلمة إخراج عدد صحيح
CmdSP.Parameters.Append CmdSP.CreateParameter(@intIDOut, adInteger, adParamOutput, oVal)
'قم بتشغيل الإجراء المخزن واحصل على مجموعة السجلات التي تم إرجاعها
قم بتعيين adoRS = CmdSP.Execute
'اطبع كل سجل، الحقول افتراضية ويمكن تجاهلها.
بينما لا أعشقRS.EOF
لكل adoField في adoRS.Fields
Response.Write adoField.Name & = & adoField.Value & <br> & vbCRLF
التالي
الرد.اكتب<br>
adoRS.MoveNext
ويند
'طباعة قيمتين الإخراج:
Response.Write <p>@intIDOut = & CmdSP.Parameters(@intIDOut).Value & </p>
Response.Write <p>قيمة الإرجاع = & CmdSP.Parameters(RETURN_VALUE).Value & </p>
'التنظيف العام
تعيين adoRS = لا شيء
تعيين CmdSP.ActiveConnection = لا شيء
تعيين كمدسب = لا شيء
%>
هناك أيضًا طرق أخرى أكثر انحيازًا قليلاً وسنتحدث عنها لاحقًا.
تشير هذه المقالة إلى العديد من المقالات، التي لم يتم سردها هنا.