بالنسبة لشركة Oracle العملاقة، فإن Asp ممتد حقًا للاستخدام. خاصة عندما يتعلق الأمر بإرجاع مجموعة النتائج (Recordset)، فإن ذلك يجعل العديد من الأشخاص يواجهون صعوبات. بعد الاستكشاف والممارسة، كتبت الحل الخاص بي أدناه:
يوضح:
إصدار عميل Oracle الخاص بي هو Oracle 9i. عند تثبيت العميل، لا يمكنك استخدام التثبيت الافتراضي. يجب عليك تخصيصه، ثم تحديد كافة محتويات OLEDB وتثبيته، وإلا فلن تجده عند الانتقال إلى المزود أدناه.
انسخ رمز الكود كما يلي:
<%@Language=VBSCRIPT CodePage=936 LCID=2052%>
<%الخيار الصريح%>
<!-- #include file=../adovbs.inc -->
<%
ديم كنورا
وظيفة Connect2OracleServer
خافت كونستر
conStr = Provider=MSDAORA.Oracle;مصدر البيانات=xx;معرف المستخدم=?;كلمة المرور=?
تعيين cnOra = Server.CreateObject(ADODB.Connection)
cnOra.CursorLocation = adUseClient '=3
على خطأ استئناف التالي
cnOra.Open conStr
Connect2OracleServer = (Err.Number = 0)
وظيفة النهاية
قطع الاتصال الفرعي من OracleServer
إذا لم يكن cnOra لا شيء ثم
إذا cnOra.State = 1 ثم
cnOra.Close
نهاية إذا
تعيين cnOra = لا شيء
نهاية إذا
نهاية الفرعية
صدى فرعي (شارع)
الاستجابة.الكتابة (شارع)
نهاية الفرعية
نتيجة الإخراج الفرعي
خافت كمدورا
خافتات
تعيين cmdOra = Server.CreateObject(ADODB.Command)
مع كمدورا
.CommandType = adCmdText '=1
.CommandText = {استدعاء PKG_TEST.GetItem(?,?)}
.Parameters.Append cmdOra.CreateParameter(p1, adNumeric, adParamInput, 10, 1)
.Parameters.Append cmdOra.CreateParameter(p2, adVarChar, adParamInput, 10, xx)
.ActiveConnection = cnOra
تعيين rs = cmdOra.Execute
إذا لم يكن rs.Eof ثم
في حين لا روبية.Eof
صدى آر إس(0)
صدى --
إيكو آر إس(1)
صدى <br>
rs.MoveNext
ويند
روبية. إغلاق
نهاية إذا
سيترز = لا شيء
تعيين cmdOra = لا شيء
نهاية مع
قطع الاتصال من OracleServer
نهاية الفرعية
إذا Connect2OracleServer ثم
نتيجة الإخراج
آخر
الاستجابة.الكتابة (خطأ.الوصف)
نهاية إذا
%>
ما يلي هو البرنامج النصي SQL الخاص بـ Oracle
---------------------------------- البرنامج النصي SQL ---------- ---- ----------------------
--حزمة البناء---------------------------------
انسخ رمز الكود كما يلي:
إنشاء أو استبدال الحزمة PKG_TEST
يكون
نوع rfcTest هو مؤشر المرجع؛
الحصول على الإجراء
(ص1 في العدد،
p2 في VARCHAR2،
p3 خارج rfcTest
);
نهاية؛--مواصفات الحزمة PKG_TEST
-------------------------------------------------- -
--بناء حزمة الجسم ----------------------------------
إنشاء أو استبدال نص الحزمة PKG_TEST
يكون
الحصول على الإجراء
(ص1 في العدد،
p2 في VARCHAR2،
p3 خارج rfcTest
)
يكون
يبدأ
فتح ص3 ل
حدد * من اسم الجدول حيث المعرف = p1 والاسم = p2 وrownum < 10؛
استثناء
عندما الآخرين بعد ذلك
باطل ؛
نهاية؛
نهاية؛--نص الحزمة PKG_TEST