الفرق بين conn.execute وrs.open هو أن استخدام أساليب conn.execute وrs.open وcommand.execute مختلف تمامًا
عادةً لتكوين مجموعة سجلات، يمكنك استخدام
Set rs=conn.execute (SQL).
أو مباشرة
rs=CONN.execute(SQL)
و
Set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,CONN,0,1 أو rs.open SQL,CONN
في هذه الحالة، عادة ما يكون أداء الفتح أفضل قليلاً من الأداء السابق.
(كائن الأمر أكثر مرونة وله نطاق تنفيذ أوسع)
باستخدام CONN.execute، يمكنك تنفيذ المجموعة التالية مباشرة rs=conn.execute(SQL) دون إغلاقها.
لكن الأداء والسرعة سينخفضان بشكل كبير!!
إنه أبطأ بحوالي 2 إلى 5 مرات !! (لقد اختبرت هذا شخصيًا في حلقة msSQL 1000 مرة، إذا كنت لا تصدق ذلك، اختبره بنفسك على الفور)، لذا قبل تنفيذ الأمر rs=conn.execute التالي!! انها
فكرة جيدة العادة!
عند استخدام rs rs.open لكائن واحد، قبل فتح مجموعة السجلات التالية، يجب إغلاق الشاشة، وإلا سيحدث خطأ، فالسرعة هي نفسها في حالة SQL، CONN، 0، 1،
لذلك أحب ذلك لاستخدام CreateObject(" adodb.recordser" (إذا لم تكن هناك حاجة لتشذير مجموعات سجلات متعددة، فلا تمثل السجلات المتعددة مشكلة!)
ثم استخدمه من البداية إلى النهاية!!!
فتح وإغلاق. المجموعة الأخيرة rs=لا شيء تصل إلى نهايتها
!
عندما تفتح صندوق الكنز، يمكنك رؤية كل شيء في الضوء الذهبي!
هناك العديد من المواقف التي يتعين عليك فيها استخدام الفتح!
ويريد conn.execute تغيير الفيلم تحت القماش الأسود~~~التسلل~بسيط جدًا!!!
على سبيل المثال:
rs1.open SQL1,conn,0,1
rs.open SQL، كون، 1،3
إذا كانت rs(0)<0 ثم rs(0)=0
rs(1)=aaa
rs(2)=bbb
rs.update 'تحديث مجموعة السجلات وكتابتها في قاعدة البيانات
rs.addnew' إضافة سجل جديد
روبية (0) = 1
rs(1)=ddd
روبية (2) = كك
rs.update
id=rs(3) rs(s) 'الحقل الذي تم التقاطه هو الرقم التلقائي، احصل فورًا على معرف الرقم التلقائي للسجل الجديد. // هذا شائع جدًا.
يضيف rs1.addnew سجلاً جديدًا مرتبطًا بـ rs1 معرف روبية.
rs1("id"=id
rs1(1)=...
..
rs1.update
rs1.Close:set rs1=لا شيء
rs. Close:set rs = لا شيء
إذا تم استخدام CONN.execute للعملية المذكورة أعلاه، فسيتم استخدام أربعة CONN.execute
CONN.execute("update .."
CONN.execute("أدخل في الجدول 1:"
rs=CONN.execute("حدد معرفًا تلقائيًا جديدًا"
CONN.execute("أدخل في الجدول 2"
ما هي الطريقة الأكثر منطقية ووضوحًا في لمحة؟
هناك أيضًا طريقة مثيرة للاهتمام لاستخدام مجموعة السجلات المفتوحة للتسجيل!!
إنه أمر مربك بعض الشيء عندما أفكر فيه.
Set rs=server.CreateObject("Adodb.recordset"
تعيين rs=server.CreateObject("Adodb.recordset"
rs.open SQL1,CONN
rs.open SQL2، يقوم CONN
بتعيين كائنين بنفس الاسم في نفس الوقت لفتح مجموعتين من السجلات، وهما متاحان!
'طالما أن أسماء الأعمدة متوافقة مع البيانات التعريفية في مجموعتي السجلات هاتين
' إذن العملية طبيعية !!
قم بتوسيع
المجموعة rs=server.CreateObject("Adodb.recordset"
تعيين rs=server.CreateObject("Adodb.recordset"
تعيين rs=server.CreateObject("Adodb.recordset"
تعيين rs=server.CreateObject("Adodb.recordset"
rs.open SQL1,CONN
rs.openSQL2، CONN
rs.open SQL3، CONN
rs.open SQL4، CONN،
وهو أكبر من اثنين rs بنفس الاسم !!
يبدو الأمر وكأنه استعلام مشترك مع SQL ثم افتح مجموعة السجلات ~~~
لقد استخدمته مثل هذا من قبل! لا ينبغي أن يكون مبهرًا!!
===============
متى نستخدم ماذا؟
هذا يعتمد فقط على تجربتي الشخصية:
إذا كنت بحاجة إلى لمس قاعدة البيانات مرة واحدة فقط، فاستخدم تنفيذ
إذا كنت تريد تنفيذ عمليات معقدة على قاعدة البيانات، فمن الأفضل استخدام rs.open