يعد تعلم استخدام الإجراءات المخزنة أحد الدورات التي يجب على مبرمجي ASP تعلمها. تدعم جميع قواعد البيانات الكبيرة الإجراءات المخزنة. مقالة اليوم هي مجموعة كاملة من استخدام الإجراءات المخزنة ASP التي شاركها محرر المحرر للتكنولوجيا الجديدة. دعنا نذهب إلى المقالة التالية لمعرفة المزيد!
1. إجراءات المكالمات المخزنة بدون معلمات
<٪
تعيين conn = server.createObject ("adodb.connection")
تعيين cmd = server.createBject ("adodb.command")
strconn = "dsn = pubs ؛ uid = sa ؛ pwd"
Conn.Open Strconn
تعيين cmd.activeconnection = conn
cmd.CommandText = "{call nono}"
"ضبط RS = cmc.exe أو cmd.execute
تعيين rs = cmd.execute ()
٪>
2. إجراء مخزن لمعلمات الإدخال
<٪
تعيين conn = server.createObject ("adodb.connection")
تعيين cmd = server.createBject ("adodb.command")
strconn = "dsn = pubs ؛ uid = sa ؛ pwd"
Conn.Open Strconn
تعيين cmd.activeconnection = conn
cmd.CommandText = "{call OneInput (؟)}"
cmd.parameters.append cmd.createparameter ("@aaa" ، adinteger ، adparaminput)
CMD ("@aaa") = 100
cmd.execute ()
٪>
3. معلمة إدخال ومعلمة إخراج
<٪
تعيين conn = server.createObject ("adodb.connection")
تعيين cmd = server.createBject ("adodb.command")
strconn = "dsn = pubs ؛ uid = sa ؛ pwd"
Conn.Open Strconn
تعيين cmd.activeconnection = conn
cmd.CommandText = "{call OneInout (؟ ،؟)}"
cmd.parameters.append cmd.createparameter ("@aaa" ، adinteger ، adparaminput)
CMD ("@aaa") = 10
cmd.parameters.append cmd.createparameter ("@bbb" ، adinteger ، adparamoutput)
cmd.execute ()
BBB = CMD ("@BBB")
٪>
4. معلمة إدخال واحدة ، معلمة إخراج واحدة ، وقيمة إرجاع واحدة
<٪
تعيين conn = server.createObject ("adodb.connection")
تعيين cmd = server.createBject ("adodb.command")
strconn = "dsn = pubs ؛ uid = sa ؛ pwd"
Conn.Open Strconn
تعيين cmd.activeconnection = conn
cmd.CommandText = "{؟ = call Oneereturn (؟ ،؟)}"
cmd.parameters.append cmd.createparameter ("@return_value" ، adinteger ، adparamreturnvalue)
cmd.parameters.append cmd.createparameter ("@aaa" ، adinteger ، adparaminput)
CMD ("@aaa") = 10
cmd.parameters.append cmd.createparameter ("@bbb" ، adinteger ، adparamoutput)
cmd.execute ()
BBB = CMD ("@BBB")
rrr = cmd ("@return_value")
٪>
كيفية استدعاء الإجراء المخزن SQL في ASP
www.lucky365.net 2002-2-7 Jixiang365
<٪ set connection1 = server.createBject ("adodb.connection")
connection1.Open ... 'انضم
set command1 = server.createObject ("adodb.command")
SET Command1.ActivEconnection = Connection1
command1.CommandType = 4
command1.CommandText = "sp_1" 'sp
command1.parameters (1) = ... 'قيمة المعلمات
command1.parameters (2) = ...
SET RecordSet1 = command1.execute ()
٪>
نصائح لاستدعاء ASP الإجراءات المخزنة
1. أبسط واحد هو كما يلي
قاتمة objconn
تعيين OBJConn = server.createBject ("Adobd.Connection")
تطبيق ObjConn.Open ("Connection_String")
استدعاء الإجراء المخزن لزيادة عداد على الصفحة
objconn.execute "exec sp_addhit"
لا توجد معلمات ، لا عودة ، لا معالجة خطأ ، هذا كل شيء
2. مكالمة مع المعلمات
objconn.execute "exec sp_addhit 'http://www.aspalliance.com' ، 1"
يرجى ملاحظة أنه لا يتم إرجاع معلمات الانقسام إلى السجلات.
3. العودة إلى السجل
قاتمة objconn
قاتمة objrs
تعيين OBJConn = server.createBject ("Adobd.Connection")
تعيين objrs = server.createBject ("adobd.recordset")
تطبيق ObjConn.Open ("Connection_String")
استدعاء الإجراء المخزن لزيادة عداد على الصفحة
objrs.open objconn ، "exec sp_listarticles '1/15/2001'"
"حلقة من خلال مجموعة السجلات وعرض كل مقالة
4 ....
قاتمة objconn
قاتمة OBJCMD
'كائنات مثلية
تعيين OBJConn = server.createBject ("ADODB.CONNECTION")
تعيين OBJCMD = server.createBject ("ADODB.Command")
تطبيق Conn.Open ("ConnectionString")
مع OBJCMD
.activeconnection = conn 'يمكنك أيضًا تحديد سلسلة اتصال هنا
.CommandText = "sp_insertarticle"
.CommandType = ADCMDSTORDERPROC '
أضف معلمات الإدخال
.parameters.append .createparameter ("@columber_id" ، addouble ، adparaminput ، ، columber_id)
.Parameters.Append .CreateParameter ("@url" ، advarchar ، adparaminput ، 255 ، url)
.Parameters.Append .CreateParameter ("@title" ، advarchar ، adparaminput ، 99 ، url)
.Parameters.Append .CreateParameter ("@Description" ، Adlongvarchar ، _
Adparaminput ، 2147483647 ، الوصف)
إضافة معلمات الإخراج
.parameters.append .CreateParameter ("@link_id" ، adinteger ، adparamoutput ، ، 0)
تنفيذ الوظيفة
"إذا لم ترد مجموعة سجلات ، فاستخدم خيار معلمة AdExecutEnorEcords
.Execute, , adExecuteNoRecords
link_id = .parameters ("@link_id")
تنتهي
5. رمز الإجراء المخزن
إنشاء الإجراء dbo.sp_insertarticle
((
columnist_id int ،
url varchar (255) ،
title varchar (99) ،
نص description
@link_id int الإخراج
)
مثل
يبدأ
أدخل في dbo.t_link (columber_id ، url ، العنوان ، الوصف)
القيم (@columber_id ،@url ،@title ،@الوصف)
حدد link_id = الهوية
نهاية
عدة طرق لاستدعاء الإجراءات المخزنة مع المعلمات
في الآونة الأخيرة ، طرح العديد من الأصدقاء أسئلة حول استدعاء الإجراءات المخزنة. فيما يلي مقدمة موجزة لعدة طرق لاستدعاء ASP إجراءات مخزنة مع المعلمات.
1 هذه هي أيضًا أسهل طريقة ، مع معلمتين إدخالين ، لا قيمة إرجاع:
تعيين الاتصال = server.createBject ("ADODB.CONNECTION")
اتصال. Open Somedsn
connection.execute "procname varvalue1 ، varvalue2"
"قم بمسح جميع الكائنات في لا شيء ، وموارد مجانية
connection.close
تعيين اتصال = لا شيء
2 إذا كنت ترغب في إرجاع مجموعة مجموعة السجلات:
تعيين الاتصال = server.createBject ("ADODB.CONNECTION")
اتصال. Open Somedsn
SET RS = Server.createObject ("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 ("@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
"طباعة كل سجل ، الحقول الموجودة فيه افتراضية ، يمكنك تجاهله
بينما لا adors.eof
لكل adofield في Adors.fields
Response.write adofield.name & "=" & adofield.value & "
"& vbcrlf
التالي
الرد. write "
"
adors.movenext
ويند
'' طباعة قيمتين للإخراج:
الرد. write "
intidout = "& cmdsp.parameters ("@intidout "). القيمة و"
"
الرد. write "
قيمة الإرجاع = "& cmdsp.parameters (" return_value "). القيمة و"
"
التنظيف الكبير
تعيين adors = لا شيء
تعيين cmdsp.activeConnection = لا شيء
ضبط cmdsp = لا شيء
٪>
هناك طرق أخرى ، والتي تتوقف قليلاً ، وسأتحدث عنها لاحقًا
أشارت هذه المقالة إلى العديد من المقالات ، ولن يتم سردها هنا.
باستخدام الإجراءات المخزنة في ASP
من أجل تحسين كفاءة برامج ASP ، يكون من الضروري في بعض الأحيان استخدام تقنية التخزين باستخدام SQL Server في ASP. هنا مقدمة موجزة.
إنشاء الإجراءات المخزنة
فيما يلي مقدمة موجزة عن كيفية إنشاء الإجراءات المخزنة في مدير Enterprise of SQL Server:
(1) مدير المؤسسة المفتوحة
(2) حدد مجموعة Server Group (SQL Server Group) ، الخادم ، قاعدة البيانات (قاعدة البيانات) وقاعدة البيانات المقابلة ، انقر بزر الماوس الأيمن على عنصر المحطات المخزنة ضمن قاعدة البيانات المقابلة ، حدد إجراءً جديدًا مخزنًا في القائمة المنبثقة ، وأدخل العبارة لإنشاء إجراء مخزن في خصائص الإجراءات المخزنة. هنا مثال:
إنشاء إجراء proctest@mycola char (10) ،@mycolb char (10) ،@mycolc text as
أدخل في chatdata (mycola ، mycolb ، mycolc) قيم (@mycola ،@mycolb ،@mycolc)
في توثيق SQL Server ، بناء الجملة الخاص به هو:
إنشاء proc [edure] storeure_name [؛ number] [
{parameter data_type} [varying] [= default] [Output]]
[، ... n] [مع {recompile | التشفير
| إعادة الترجمة ، التشفير}] [للتكرار] كما
sql_statement [... n]
إذا لم تكن معتادًا على SQL Syntax ، فيمكنك استخدام Syntax للتحقق من بناء الجملة. في المثال أعلاه ، هذا يعني أنه يتم إنشاء الإجراء المخزن باستخدام إجراء مخزن يسمى Mycola و 3 معلمات. المعلمة الأولى نوع بيانات ميكولا هو char والعرض 10 ؛ نوع بيانات المعلمة الثاني هو char و width 10 ، ونوع بيانات المعلمة الثالثة هو نص. فيما يلي نوع البيانات لخادم SQL.
بعد إنشاء الإجراء المخزن ، ما يلي هو كيفية استدعاء الإجراء المخزن في برنامج ASP: من أجل تحسين كفاءة برنامج ASP ، في بعض الأحيان يكون من الضروري استخدام تقنية التخزين باستخدام SQL Server في ASP. فيما يلي طريقة بسيطة لإضافة معلمات في البيان أعلاه P.Append CM.CreateParameter ("@mycolc" ، 201 ، 1 ، 250) ، التنسيق هو:
P.Append CM.CreateParameter ("اسم المعلمة" ، النوع ، الاتجاه ، الحجم)
معنى نوع قيمة المعلمة هو كما يلي:
وظيفة قيمة قيمة عدد صحيح
addbtimestamp 135 نوع بيانات التاريخ والوقت
addecimal 14 قيمة عدد صحيح عشري
addouble 5 قيمة عشرية دقة مزدوجة
Aderror 10 رسالة خطأ في النظام
adguid 72 معرف فريد عالمي
addispath 9 com/Ole Outomatic Object (كائن الأتمتة)
Adinteger 3 4-بايت موقعة عدد صحيح
Adiunknown 13 كوم/أولي كائن
adlongvarbinary 205 قيمة كبيرة 2 بايت
Adlongvarchar 201 قيمة سلسلة كبيرة
adlongvarwchar 203 سلسلة كبيرة غير مشفرة
adnumeric 131 قيمة عدد صحيح عشري
Adsingle 4 حديد عائم عائم العشرية العشرية
adsmallint 2 2-بايت موقعة عدد صحيح
adtinyint 16 1 بايت موقعة عدد صحيح
adunsignedbigint 21 8-بايت غير موقعة
adunsignedint 19 عدد صحيح 4 بايت غير موقعة
adunsignedSmallint 18 2-بايت عدد صحيح غير موقّع
adunsignedtinyint 17 1 بايت عدد صحيح غير موقعة
AdUserDefined 132 نوع البيانات المعرفة من قبل المستخدم
Advariant 12 Ole كائن
advarbinary 204 قيمة متغيرة للحرف بايت مزدوج
قيمة متغير الأحرف Advarchar 200
Advarchar 202 قيمة متغيرة السلسلة غير المشفرة
adwchar 130 سلسلة غير مشفرة
معنى قيم الاتجاه هو كما يلي:
وظيفة قيمة قيمة عدد صحيح
adparaminput 1 تسمح بإدخال البيانات في هذه المعلمة
يسمح AdParamoutput 2 بإخراج البيانات لهذه المعلمة
يسمح AdParamInputoututput 3 بإدخال البيانات والإخراج لهذه المعلمة
يسمح AdParamreturnValue 4 بإعادة البيانات من روتين فرعي إلى هذه المعلمة
ما ورد أعلاه عبارة عن مجموعة كاملة من استخدام الإجراءات المخزنة ASP التي جمعها محرر قناة التكنولوجيا الجديدة الخاطئة. آمل أن يكون بعض المساعدة لتعلمك!