موصى به: في ASP ، يقوم بتنفيذ تصدير البيانات من قاعدة بيانات DBF إلى جدول SQL الوصف: يجب أن تكون بنية قاعدة بيانات DBF متسقة مع جدول SQL. فيما يلي المحتوى المرجعي: <٪ dim conndbf_dbf ، driver_dbf ، sourcetype_dbf ، dbath_dbf dim conn_
8.4.3 إنشاء مجموعة سجلاتمن السهل جدًا إنشاء مجموعة سجلات ، يتم تحقيقها عن طريق استدعاء الطريقة المفتوحة لكائن مجموعة السجلات:
recordset.open [source] ، [activeConnection] ، [cursortype] ، [locktype] ، [Options]
وترد المعلمات والأوصاف في الجدول 8-3:
الجدول 8-3 المعلمات وأوصاف الطريقة المفتوحة
المعلمة
يوضح
مصدر
مصدر البيانات. يمكن أن يكون اسم جدول في قاعدة البيانات ، أو استعلام أو إجراء مخزن ، أو سلسلة SQL ، أو كائن أمر ، أو كائن أمر آخر مناسب للمزود
ActiveConnection
الاتصال المستخدمة من قبل مجموعة السجلات. يمكن أن تكون سلسلة اتصال أو كائن اتصال مفتوح
cursortype
نوع المؤشر المستخدم. يجب أن تكون واحدة من أنواع المؤشر المحددة ، القيمة الافتراضية هي adforwardonly
Locktype
نوع القفل المستخدم. يجب أن تكون واحدة من أنواع القفل المحددة ، القيمة الافتراضية هي adlockreadonly
خيارات
أخبر الموفر ما هو محتوى المعلمة المصدر ، مثل الجداول ، سلاسل النص ، إلخ.
على سبيل المثال ، لفتح مجموعة السجلات على جدول المؤلفين في حانات قاعدة البيانات:
قاتمة RSAuthors
تعيين rsauthors = server.createBject (adodb.recordset)
RSAUTHORS.OPEN مؤلفين ، Strconn
افعل شيئًا هنا
rsauthors.close
تعيين rsauthors = لا شيء
لاحظ أن هناك العديد من المعلمات التي لم يتم تحديدها. في الواقع ، جميع المعلمات اختيارية ، ويمكنك تعيين قيم الخصائص المقابلة لمجموعة السجل قبل فتحها:
قاتمة RSAuthors
تعيين rsauthors = server.createBject (adodb.recordset)
مع RSAuthors
.source = المؤلفين
.activeconnection = strconn
.cursortype = engeenforwardonly
.locktype = adlockreadonly
.يفتح
تنتهي
افعل شيئًا هنا
rsauthors.close
تعيين rsauthors = لا شيء
بمجرد فتح مجموعة التسجيلات ، يوجد المؤشر الحالي تلقائيًا في السجل الأول. إذا لم يكن هناك سجل في مجموعة السجلات ، فإن كل من سمات EOF و BOF صحيحة:
RSAUTHORS.OPEN مؤلفين ، Strconn
إذا rsauthors.bof و rsauthors.eof ثم
"مجموعة السجلات فارغة
إنهاء إذا
1. معلمة الخيارات
تتيح معلمة الخيارات للطريقة المفتوحة تحديد محتوى نص الأمر. يمكن أن تكون واحدة من ثوابت CommandTypeenum التالية:
ADCMDText: أوامر نصية ، مثل سلاسل SQL.
ADCMDTable: اسم الجدول.
ADCMDSTORDERPROC: اسم الإجراء المخزن.
ADCMDFILE: اسم ملف مجموعة السجلات المحفوظة.
ADCMDTABLERICT: اسم الجدول.
ADCMDURLBIND: عنوان URL.
الفرق بين ADCMDTable و ADCMDTabledirect صغير جدًا. إذا كنت ترغب في استخدام جميع الأعمدة في جدول ، فإن استخدام ADCMDTabledirect سيجعل التشغيل أسرع لأن ADO يؤدي بعض التحسينات الداخلية.
إذا لم يتم تحديد أي نوع أمر ، يجب على ADO حساب نوع الأمر الذي تم تنفيذه ، مما سيؤدي إلى زيادة النفقات العامة.
هناك خياران أخريان هنا: ADCMDUNSPECIDATE يعني أنه لا يوجد نوع محدد ؛ ADCMDunkNow يعني أن نوع الأمر غير معروف. قد لا يتم استخدامها بشكل عام.
خيارات إضافية
يمكن أن تكون معلمة الخيارات أي من الثوابت المذكورة أعلاه ، ولكن يمكن أيضًا إضافة ثوابت التنفيذ التالية:
adasyncexcute: تنفيذ الأوامر بشكل غير متزامن.
adasyncfetch: بعد الحصول على مجموعة الصف الأولي ، الحصول على الصفوف المتبقية بشكل غير متزامن.
adasyncfetchblocking: باستثناء الحصول على السجلات وعدم منع الأمر من التشغيل ، فإن الآخرين يشبهون adasyncfetch.
AdexechtenorEcords: لا يعيد الأمر أي سجلات.
تعني المعالجة غير المتزامنة أنه يتم تنفيذ العمليات في الخلفية ، يمكنك تشغيل الأوامر ثم متابعة العمل الآخر دون انتظار إكمالها (التشغيل المتزامن). يعد هذا مريحًا بشكل خاص عند إنشاء واجهة مستخدم ، لأنه يمكن إرجاعه من تنفيذ الأمر لعرض بعض المحتوى للمستخدم بينما لا يزال الحصول على البيانات في الخلفية. هذا ليس مفيدًا جدًا لمبرمجي ASP عند إرجاع RecordsEs ، لأن لغة البرمجة النصية لا تدعم أحداث ADO ، لذلك لا يُعرف متى أكملت مجموعة السجلات تحول التعبئة. عند معالجة التحديث أو حذف أو إدراج أوامر البيانات وعدم إرجاع مجموعة سجلات ، يمكن استخدام العمليات غير المتزامنة ، أي فقط إذا كنت لا تهتم بالنتائج.
من ناحية أخرى ، فإن خيار adexecutenorecords مفيد للغاية. يخبر ADO بتنفيذ الأوامر التي لا تُرجع أي بيانات. لذلك ، ليست هناك حاجة لإنشاء مجموعة سجلات (ربما فارغة باختصار). هذا يسرع تشغيل عمليات الاستعلام للحصول على التحديثات أو إضافات البيانات.
لإضافة أحد هذه الخيارات ، يمكنك استخدام الرمز أو الرمز (أي ما يعادل علامة Plus)
ADCMDSTORDERPROC أو ADEXECUTENORECORDS
ADCMDSTOREPROC ADEXECUTENORECORDS
في الفصل التالي ، سترى مقدمة أكثر تفصيلاً للمحتوى ذي الصلة ، لأن هذا سيكون أكثر فائدة عند التعامل مع الأوامر (بدلاً من مجموعات السجلات).
2. التحرك في مجموعة السجلات
بمجرد فتح مجموعة التسجيلات ، يكون من الضروري في كثير من الأحيان اجتياز كل سجل. هذا يتطلب استخدام سمة EOF. عندما يتم الوصول إلى نهاية مجموعة السجلات ، يصبح EOF صحيحًا ، لأنه يمكن إنشاء حلقة مثل هذا:
RSAUTHORS.OPEN مؤلفين ، Strconn
بينما لا rsauthors.eof
Response.write rsauthors (au_lname :) & ، & _
rsauthors (au_fname) & <br>
rsauthors.movenext
ويند
الحلقات أعلاه حلق حتى تكون سمة EOF صحيحة قبل الخروج. يتم استخدام طريقة Movenext للانتقال إلى السجل التالي.
إذا كانت مجموعة السجلات تسمح بحركة متتالية ، فيمكنك استخدام طريقة MovePrevious. في هذه الحالة ، يجب اكتشاف قيمة سمة BOF في الحلقة. هناك أيضًا أساليب Movefirst و Movelast التي تنتقل إلى السجلات الأولى والأخيرة على التوالي:
RSAUTHORS.Open upists ، Strconn ، Adquerendynamic
'الآن في السجل الأول
rsauthors.movelast
'الآن في السجل الأخير
rsauthors.moveprevious
rsauthors.moveprevious
'الآن ثلاثة صفوف من نهاية مجموعة السجلات
rsauthors.movefirst
العودة في البداية مرة أخرى
3. استخدم مجموعات الحقول
تحتوي مجموعة Fields على كائنات الحقول لكل حقل (عمود) في مجموعة السجلات. مجموعة Fields هي المجموعة الافتراضية لمجموعات السجلات ، بحيث يمكن حذفها عند الوصول إلى الحقول ، تمامًا كما هو الحال في الوقت الذي ... مثال على ذلك أعلاه. لذلك ، هناك طرق متعددة للوصول إلى الحقول:
rsauthors.fields (au_lname). value
rsauthors (au_lname). value
RSAuthors (1). القيمة
rsauthors.fields (1). القيمة
يمكنك استخدام اسم الحقل ، أو استخدام أجزاءه في المجموعة
مشاركة: يقوم ASP بتنفيذ إرسال إشعارات البريد الإلكتروني أثناء إرسال النماذج إلى قاعدة البيانات فيما يلي المحتوى المقتبس: <٪ dimcdomail set objcdomail = server.createObject (cdonts.newmail) objCdomail.from = xxx@h