ASP implementiert die Abfrage und Aktualisierung von ActiveRecord-Daten
Einführung:
Studenten, die das PHP-Framework ThinkPHP oder das CI-Framework verwendet haben, wissen alle, dass die mit diesen Frameworks gelieferte Datenabfrage ActiveRecord zum Abfragen und Aktualisieren von Daten verwendet wird.
Darüber hinaus unterstützen viele PHP-Frameworks ActiveRecord, wodurch das Schreiben zu vieler mühsamer Original-SQL-Abfrageanweisungen überflüssig wird und die Projektwartung komfortabler wird.
Jetzt verwenden wir es auch für die Simulation von Asp-Code. Es wurde erfolgreich auf die Anwendung „AppCore basierend auf dem AspBox-Framework“ angewendet.
Der Anwendungskerncode ist vom AppCore getrennt.
=============================================== ===============
[1]: Daten abfragen
a. Holen Sie sich die Ergebnisse:
Sehen Sie sich die ausgegebene SQL-Anweisung an: Verwendung von Dao.getSQL()
AliasDao.lastSQL()
z.B.
Response.WriteDao.T("media").Top(10).lastSQL
Verwendung von Dao.Query()
dimrs
dimtb_prefix:tb_prefix=Dao.tbPrefix'Datentabellenpräfix
Setrs=Dao.Query("selecttop10id,namefrom@media").Result()
Entspricht: Setrs=Dao.Query("selecttop10id,namefrom"tb_prefix"media").Result()
Verwendung von Dao.List()
dimlist
list=dao.t("media").select("id,name").top(10).List()
Hinweis: „list“ gibt ein zweidimensionales Array zurück
dimi,id,name
Fori=0ToUbound(list,2)
id=list(0,i)
name=list(1,i)
Response.Writeid: „Name““
Nächste
Verwendung von Dao.Result()
Alias Dao.GetRs() oder Dao.Fetch()
dimRs
SetRs=Dao.T("media").select("id,name").top(10).Result()
ab.traceRs
DoWhilenotRs.eof
Response.WriteRs("id")":"Rs("name")""
Rs.MoveNext
Schleife
Verwendung von Dao.Row(n) (n bedeutet, die n+1. Datenzeile abzurufen) Dao.Row(0) bedeutet, die erste Datenzeile abzurufen
dimRs
SetRs=Dao.Query("selecttop10id,namefrom@media").Row(4)'Holen Sie sich die 5. Datenzeile
IfNotRs.EofThen
Response.WriteRs("id")":"Rs("name")
EndIf
b. Abfragebedingungen:
Die Verwendung von Dao.T() ist dieselbe wie die Verwendung von Dao.From()
Die Verwendung von Dao.Select() ist dieselbe wie die Verwendung von Dao.Field()
Verwendung von Dao.Where() und Verwendung von Dao.Find():
Hinweis: Die Verwendung von „Where“ ist grundsätzlich dieselbe wie die Verwendung von „Find“, wobei beide Daten basierend auf Bedingungen filtern.
Die Suchverwendung ist flexibler. Sie können Dao.Find("1,3,5") verwenden, um Daten mit automatischen Nummern (ID) 1,3,5 abzufragen
Dao.Find("1,3,5") kann auch folgendermaßen geschrieben werden:
Dao.Find(Array(1,3,5))
Dao.Find("idin(1,3,5)")
Dao.Where("idin(1,3,5)")
Dao.Where("id=1orid=3orid=5")
Verwendung von Dao.Limit():
Simulieren Sie die Nutzung des MySQL-Limits (Offset, Zeilen).
Verwendung:
limit(0,0) nimmt alle Daten (Daten vom Anfang bis zum Ende der ersten (0+1=1) Daten)
limit(0,1) benötigt 1 Datenelement beginnend mit (dem 1. Datenelement (0+1=1), d. h. 1. bis 1. Element) (insgesamt 1 Element)
limit(3,0) nimmt die Daten vom Anfang bis zum Ende der 4. (3+1=4) Daten, d. h. vom 4. bis zum letzten)
limit(2,5) stellt die 5 Datenstücke dar, beginnend mit dem 3. Datenstück (2+1=3), d. h. 3. bis 7. Stück) (insgesamt 5 Stück)
limit(1,2) stellt die 2 Daten dar, beginnend mit dem 2. Datenteil (1+1=2), d. h. 2. bis 3. Datenteil) (insgesamt 2 Datenteile)
limit(4,6) kann wie folgt berechnet werden: Es bedeutet Elemente 4+1=5 bis 4+6=10) (insgesamt 6 Elemente)
@Hinweis: Die eingeschränkte Nutzung kann nur für Abfragen verwendet werden, nicht für Rs-Datenaktualisierungen!
Dimrs
Setrs=Dao.T("test").Where("pid=1").Limit(0,5).Fetch()
Anbei, Abfragebeispiel:
Dao.T("test").field("id,name").where("id>0").order("createtimedesc,iddesc")
Dao.T("test").select("id,name").top(10)
Dao.T("test").select("id,name").order("Rnd(ID)")
Dao.t("user").where("id<>{rq:id}andemail='{rq:email}'").find("id>5").result()
Abfrage der Grenzbedingung
Setrs=Dao.T("media").field("id,name").limit(1,5).Fetch()
Vollständiges Abfragebeispiel:
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]: Daten ändern
Daten hinzufügen: Dao.Add()
Daten ändern: Dao.Update() oder Dao.Set()
Daten löschen: Dao.Del() oder Dao.Delete()
Daten intelligent speichern (hinzufügen oder ändern): Dao.Save()
Aktualisieren Sie einen Feldwert Dao.setField()
Dao.AffectedRows() oder Dao.affRows() gibt die Anzahl der betroffenen Zeilen zurück
dimo_ds,arr(5),str
Dao.t("user").where("id=14").del()
Dao.t("user").delete("1,3,5")
Dao.t("user").where("id=13").set(Array("username:55"))
Dao.t("user").where("id=13").setField("name","aaa1111")
Dao.query("update@usersetusername='ttt'whereid<7").exec()
Dao.query("delete*from@userwhereid>7").exec()
Response.writeDao.AffectedRows()'Anzahl der betroffenen Zeilen
Dao.t("Benutzer").add(Array("Benutzername:tttt",Passwort:5fe84ad35fb5f95b",E-Mail:[email protected]"))
arr(0)="id>5"
arr(1)="Zeit>#1986#"
arr(2)="oradd=555"
Response.writedao.t("media").where(arr).lastSQL()
Seto_ds=Server.CreateObject("scripting.Dictionary")
o_ds("id")="15"
o_ds("name")="sss"
o_ds("ddds!=")="dsd"
Response.writedao.t("media").where(o_ds).lastSQL()
Response.writedao.t("media").Find(o_ds).lastSQL()