يقوم ASP بتنفيذ استعلام بيانات ActiveRecord وتحديثه
مقدمة:
يعرف الطلاب الذين استخدموا إطار عمل PHP ThinkPHP أو إطار عمل CI أن استعلام البيانات ActiveRecord الذي يأتي مع هذه الأطر يُستخدم للاستعلام عن البيانات وتحديث البيانات، وهو أمر مناسب.
ليس فقط هذه، بل إن العديد من أطر عمل PHP تدعم ActiveRecord، مما يلغي الحاجة إلى كتابة الكثير من عبارات استعلام SQL الأصلية المملة ويجعل صيانة المشروع أكثر ملاءمة.
الآن نستخدمه أيضًا للمحاكاة على كود Asp، وقد تم تطبيقه بنجاح على تطبيق "AppCore المستند إلى إطار عمل AspBox".
يتم فصل الكود الأساسي للتطبيق عن AppCore.
================================================================================================== ==============
[1]: بيانات الاستعلام
أ. الحصول على النتائج:
عرض بيان SQL الناتج: استخدام Dao.getSQL()
الاسم المستعار.lastSQL()
على سبيل المثال
Response.WriteDao.T("الوسائط").Top(10).lastSQL
استخدام Dao.Query()
باهتة
dimtb_prefix:tb_prefix=Dao.tbPrefix'بادئة جدول البيانات
Setrs=Dao.Query("selecttop10id,namefrom@media").Result()
يعادل: Setrs=Dao.Query("selecttop10id,namefrom"tb_prefix"media").Result()
استخدام Dao.List()
القائمة الخافتة
list=dao.t("media").select("id,name").top(10).List()
ملاحظة: تعرض القائمة مصفوفة ثنائية الأبعاد
ديمي، معرف، اسم
فوري=0ToUbound(قائمة,2)
معرف = قائمة (0، ط)
الاسم = القائمة (1، ط)
Response.Writeid "الاسم""
التالي
استخدام Dao.Result()
الاسم المستعار Dao.GetRs () أو Dao.Fetch ()
dimRs
SetRs=Dao.T("media").select("id,name").top(10).Result()
ab.traceRs
DoWhilenotRs.eof
Response.WriteRs("id")":"Rs("name")""
Rs.MoveNext
حلقة
استخدام Dao.Row(n) (n يعني الحصول على صف البيانات n+1) Dao.Row(0) يعني الحصول على الصف الأول من البيانات
dimRs
SetRs=Dao.Query("selecttop10id,namefrom@media").Row(4)'احصل على الصف الخامس من البيانات
IfNotRs.EofThen
Response.WriteRs("id")":"Rs("name")
EndIf
ب. شروط الاستعلام:
استخدام Dao.T() هو نفس استخدام Dao.From()
استخدام Dao.Select() هو نفس استخدام Dao.Field()
استخدام Dao.Where() واستخدام Dao.Find():
ملاحظة: استخدام Where هو في الأساس نفس استخدام Find، وكلاهما يقوم بتصفية البيانات بناءً على الشروط.
يعد استخدام البحث أكثر مرونة. يمكنك استخدام Dao.Find("1,3,5") للاستعلام عن البيانات باستخدام الأرقام التلقائية (المعرف) 1,3,5.
يمكن أيضًا كتابة Dao.Find("1,3,5") بالطريقة التالية:
Dao.Find(صفيف(1,3,5))
Dao.Find("idin(1,3,5)")
داو.أين("idin(1,3,5)")
داو.أين("id=1orid=3orid=5")
استخدام Dao.Limit():
محاكاة استخدام حد MySQL (الإزاحة، الصفوف).
الاستخدام:
Limit(0,0) يأخذ جميع البيانات (البيانات من البداية إلى نهاية البيانات الأولى (0+1=1))
Limit(0,1) يأخذ قطعة واحدة من البيانات بدءًا من (القطعة الأولى من البيانات (0+1=1)، أي: القطعة الأولى إلى القطعة الأولى) (قطعة واحدة إجمالاً)
Limit(3,0) يأخذ البيانات من البداية إلى النهاية للبيانات الرابعة (3+1=4)، أي: من الرابع إلى الأخير)
يمثل الحد (2,5) 5 أجزاء من البيانات بدءًا من الجزء الثالث من البيانات (2+1=3)، أي: الجزء الثالث إلى الجزء السابع) (5 أجزاء إجمالاً)
يمثل الحد (1,2) قطعتي البيانات بدءًا من القطعة الثانية من البيانات (1+1=2)، أي: القطع الثانية إلى الثالثة) (قطعتان إجمالاً)
يمكن حساب الحد (4,6) على النحو التالي: يعني العناصر من 4+1=5 إلى 4+6=10) (إجمالي 6 عناصر)
@ملاحظة: لا يمكن استخدام حد الاستخدام إلا للاستعلام، وليس لتحديث بيانات Rs!
خافتات
Setrs=Dao.T("test").Where("pid=1").Limit(0,5).Fetch()
مرفق مثال للاستعلام:
Dao.T("اختبار").field("id,name").where("id>0").order("createtimedesc,iddesc")
Dao.T("اختبار").select("المعرف،الاسم").أعلى(10)
Dao.T("اختبار").select("id,name").order("Rnd(ID)")
Dao.t("user").where("id<>{rq:id}andemail='{rq:email}'").find("id>5").result()
الاستعلام عن حالة الحد
Setrs=Dao.T("media").field("id,name").limit(1,5).Fetch()
مثال الاستعلام الكامل:
com.dimsql
sql=dao.select("id,name").from("media").where("id>10").join("table2").on("table2.cid=user.cid").order ("iddesc، cidasc").group("id").having("id>5").union("select*fromtablexx").getSQL
==============
[2]: تعديل البيانات
إضافة البيانات: Dao.Add()
تعديل البيانات: Dao.Update() أو Dao.Set()
حذف البيانات: Dao.Del() أو Dao.Delete()
حفظ البيانات الذكية (إضافة أو تعديل): Dao.Save()
تحديث قيمة الحقل Dao.setField()
Dao.AffectedRows() أو Dao.affRows() ترجع عدد الصفوف المتأثرة
dimo_ds,arr(5),str
Dao.t("user").where("id=14").del()
Dao.t("المستخدم").delete("1,3,5")
Dao.t("user").where("id=13").set(Array("اسم المستخدم:55"))
Dao.t("user").where("id=13").setField("name"،"aaa1111")
Dao.query("update@usersetusername='ttt'whereid<7").exec()
Dao.query("حذف*من@userwhereid>7").exec()
Response.writeDao.AffectedRows()'عدد الصفوف المتأثرة
Dao.t("user").add(Array("اسم المستخدم:tttt"،"كلمة المرور:5fe84ad35fb5f95b"،"البريد الإلكتروني:[email protected]"))
آر (0) = "معرف> 5"
آر (1) = "الوقت>#1986#"
آر (2) = "oradd = 555"
Response.writedao.t("الوسائط").حيث(arr).lastSQL()
Seto_ds=Server.CreateObject("scripting.Dictionary")
o_ds("id")="15"
o_ds("name")=sss"
o_ds("ddds!=")="dsd"
Response.writedao.t("الوسائط").حيث(o_ds).lastSQL()
Response.writedao.t("الوسائط").Find(o_ds).lastSQL()