موصى به: تنفيذ إدخال بيانات الدُفعات ASP يستخدم إدخال الدُفعات على نطاق واسع في قواعد البيانات ، وهناك العديد من الطرق لإدخال الدُفعات. بعد ذلك ، سأتحدث عن كيفية تحقيقه بناءً على طلبي الفعلي. الاستخدام الرئيسي هو مفهوم جمع النماذج ، والذي يأخذ جميع البيانات في المجموعة من خلال الحلقة. بالنظر إلى أنه من المريح للجميع رؤيته ، قمت بدمجها في صفحة واحدة. أدناه هو الرمز المحدد
عدة طرق لاستدعاء الإجراءات المخزنة مع المعلمات
1 هذه هي أيضًا أسهل طريقة ، مع معلمتين إدخالين ، لا قيمة إرجاع:
تعيين الاتصال = server.createBject (ADODB.CONNECTION)
اتصال. Open Somedsn
connection.execute procname varvalue1 ، varvalue2
قم بمسح جميع الكائنات في لا شيء ، وموارد مجانية
connection.close
تعيين اتصال = لا شيء
2 إذا كنت ترغب في إرجاع مجموعة مجموعة السجلات:
تعيين الاتصال = server.createBject (ADODB.CONNECTION)
اتصال. Open Somedsn
تعيين rs = server.createBject (adodb.recordset)
Rs.Open exec procname varvalue1 ، varvalue2 ، اتصال
قم بمسح جميع الكائنات في لا شيء ، وموارد مجانية
Rs.close
connection.close
تعيين روبية = لا شيء
تعيين اتصال = لا شيء
3 لا يمكن أن يكون للطريقتين أعلاه قيمة إرجاع (باستثناء مجموعة السجلات). إذا كنت ترغب في الحصول على قيمة الإرجاع ، فأنت بحاجة إلى استخدام طريقة الأوامر.
بادئ ذي بدء ، هناك نوعان من قيم الإرجاع. أحدهما هو إرجاع قيمة مباشرة في الإجراء المخزن ، تمامًا مثل وظائف قيم إرجاع C و VB ؛ والآخر هو إرجاع قيم متعددة ،
يجب تحديد الأسماء المتغيرة التي تخزن هذه القيم أولاً في معلمة الاتصال.
سيتعامل هذا المثال مع معلمات متعددة ، ومعلمات الإدخال ، ومعلمات الإخراج ، ومجموعات السجلات الإرجاع وقيمة الإرجاع المباشر (هل كل ذلك كافي؟)
الإجراء المخزن هو كما يلي:
استخدم الحانات
يذهب
- إنشاء إجراءات مخزنة
إنشاء الإجراء sp_pubstest
- تحديد ثلاثة متغيرات معلمات ، لاحظت الطبقة الثالثة ، يتم استخدام العلامة الخاصة للإخراج
u_lname varchar (20) ،
intid int ،
intidout int الإخراج
مثل
حدد intidout = intid 1
يختار *
من المؤلفين
حيث au_lname مثل @au_lname '٪'
-احتجت قيمة مباشرة
إرجاع intid 2
برنامج ASP الذي يسمي الإجراء المخزن هو كما يلي:
<٪@ language = vbscript ٪>
<٪
قاتمة CMDSP
علامات خافتة
DIM ADCMDSPSTORDERPROC
خافت AdParamreturnvalue
قاتمة adparaminput
قاتمة adparamoutput
قاتمة adinteger
قاتمة
باهت بيضاوي
قاتمة أدوفيلد
قاتمة advarchar
"هذه القيم هي ثوابت محددة مسبقًا في VB ويمكن استدعاؤها مباشرة ، ولكنها غير محددة مسبقًا في VBSCript
ADCMDSPSTORDERPROC = 4
adparamreturnvalue = 4
adparaminput = 1
adparamoutput = 2
adinteger = 3
Advarchar = 200
إيفر = 5
بيضاوي = 3
"إنشاء كائن أمر
تعيين cmdsp = server.createBject (adodb.command)
"إنشاء رابط
cmdsp.activeconnection = driver = {sql server} ؛ server = (local) ؛ uid = sa ؛ pwd = ؛ database = pubs
حدد اسم استدعاء كائن الأمر
cmdsp.commandtext = sp_pubstest
"تعيين نوع استدعاء الأمر كإجراء مخزن (ADCMDSPSTORDERPROC = 4)
CMDSP.CommandType = ADCMDSPSTORDERPROC
أضف معلمات إلى كائن الأمر
"تحديد الإجراء المخزن له قيمة إرجاع مباشرة ، وهي عدد صحيح ، القيمة الافتراضية هي 4
cmdsp.parameters.append cmdsp.createparameter (return_value ، adinteger ، adparamreturnvalue ، 4)
حدد معلمة إدخال الحرف
cmdsp.parameters.append cmdsp.createparameter (ad_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
'طباعة كل سجل ، الحقول التي تكون افتراضية ، يمكنك تجاهلها
بينما لا adors.eof
لكل adofield في Adors.fields
Response.write adofield.name & = & adofield.value & <br> & vbcrlf
التالي
الرد. write <br>
adors.movenext
ويند
طباعة قيمتين للإخراج:
reponse.write <p> intidout = & cmdsp.parameters (intidout) .value & </p>
استجابة. write <p> قيمة الإرجاع = & cmdsp.parameters (return_value) .value & </p>
التنظيف الكبير
تعيين adors = لا شيء
تعيين cmdsp.activeConnection = لا شيء
ضبط cmdsp = لا شيء
٪>
هناك طرق أخرى ، والتي تتوقف قليلاً ، وسأتحدث عنها لاحقًا
أشارت هذه المقالة إلى العديد من المقالات ، ولن يتم سردها هنا.
المشاركة: عمليات تقديم متكررة متعددة من النماذج المقيدة في ASP على الإنترنت ، نواجه أشكالًا لا حصر لها كل يوم ، ونرى أيضًا أن معظمهم لا يمنع المستخدمون من تقديم نفس النموذج عدة مرات. يمكن أن يؤدي عدم وجود هذه القيود في بعض الأحيان إلى تحقيق بعض النتائج غير المتوقعة ، مثل الاشتراك المكررة في خدمات البريد الإلكتروني أو التصويت المكرر. تقدم هذه المقالة طريقة بسيطة في تطبيقات ASP لمنع المستخدمين من إرسال نفس النموذج عدة مرات خلال الجلسة الحالية