ASP mengimplementasikan kueri dan pembaruan data ActiveRecord
perkenalan:
Siswa yang telah menggunakan kerangka PHP ThinkPHP atau kerangka CI semua tahu bahwa kueri data ActiveRecord yang disertakan dengan kerangka kerja ini digunakan untuk menanyakan data dan memperbarui data.
Tidak hanya itu, banyak kerangka kerja PHP mendukung ActiveRecord, sehingga menghilangkan kebutuhan untuk menulis terlalu banyak pernyataan kueri SQL asli yang membosankan dan membuat pemeliharaan proyek menjadi lebih nyaman.
Sekarang kami juga menggunakannya untuk simulasi pada kode Asp. Telah berhasil diterapkan pada aplikasi "AppCore berdasarkan kerangka AspBox".
Kode inti aplikasi dipisahkan dari AppCore.
==================== ===============
[1]: Data kueri
a.Dapatkan hasilnya:
Lihat keluaran pernyataan SQL: penggunaan Dao.getSQL()
AliasDao.lastSQL()
misalnya
Respon.WriteDao.T("media").Top(10).lastSQL
Penggunaan Dao.Query()
redup
dimtb_prefix:tb_prefix=Awalan tabel data Dao.tbPrefix
Setrs=Dao.Query("selecttop10id,namefrom@media").Hasil()
Setara dengan: Setrs=Dao.Query("selecttop10id,namefrom"tb_prefix"media").Result()
Penggunaan Dao.List()
daftar redup
daftar=dao.t("media").pilih("id,nama").top(10).Daftar()
Catatan: list' mengembalikan array dua dimensi
dimi,id,nama
Fori=0ToUbound(daftar,2)
id=daftar(0,i)
nama=daftar(1,i)
Respon.Writeid":"nama""
Berikutnya
Penggunaan Dao.Result()
Alias Dao.GetRs() atau Dao.Fetch()
redupRs
SetRs=Dao.T("media").pilih("id,nama").top(10).Hasil()
ab.traceRs
LakukanWhilenotRs.eof
Response.WriteRs("id")":"Rs("nama")""
Rs.MoveNext
Lingkaran
Penggunaan Dao.Row(n) (n berarti mendapatkan data baris ke-n+1) Dao.Row(0) berarti mendapatkan data baris pertama
redupRs
SetRs=Dao.Query("selecttop10id,namefrom@media").Row(4)'Dapatkan data baris ke-5
JikaTidakRs.EofThen
Response.WriteRs("id")":"Rs("nama")
AkhirJika
b.Kondisi permintaan:
Penggunaan Dao.T() sama dengan penggunaan Dao.From()
Penggunaan Dao.Select() sama dengan penggunaan Dao.Field()
Penggunaan Dao.Where() dan penggunaan Dao.Find():
Catatan: Penggunaan Where pada dasarnya sama dengan penggunaan Find, yaitu keduanya memfilter data berdasarkan kondisi.
Penggunaan Find lebih fleksibel. Anda dapat menggunakan Dao.Find("1,3,5") untuk menanyakan data dengan nomor otomatis (id) 1,3,5
Dao.Find("1,3,5") juga dapat ditulis dengan cara berikut:
Dao.Temukan(Array(1,3,5))
Dao.Temukan("idin(1,3,5)")
Dao.Dimana("idin(1,3,5)")
Dao.Dimana("id=1orid=3orid=5")
Penggunaan Dao.Limit():
Simulasikan penggunaan batas mysql (offset, baris).
penggunaan:
limit(0,0) mengambil semua data (data dari awal hingga akhir data pertama (0+1=1))
limit(0,1) mengambil 1 data mulai dari (data pertama (0+1=1), yaitu: data ke-1 hingga ke-1) (total 1 buah)
limit(3,0) mengambil data dari awal sampai akhir data ke-4 (3+1=4), yaitu: data ke-4 sampai terakhir)
limit(2,5) mewakili 5 buah data yang dimulai dari data ke-3 (2+1=3), yaitu: ke-3 sampai ke-7) (total 5 buah)
limit(1,2) mewakili 2 buah data yang dimulai dari data ke-2 (1+1=2), yaitu: buah ke-2 hingga ke-3) (total 2 buah)
limit(4,6) dapat dihitung seperti ini: artinya item 4+1=5 hingga 4+6=10) (total 6 item)
@Catatan: Batasan penggunaan hanya dapat digunakan untuk kueri, bukan untuk pembaruan data Rs!
Redup
Setrs=Dao.T("test").Where("pid=1").Limit(0,5).Fetch()
Terlampir, contoh kueri:
Dao.T("test").field("id,nama").dimana("id>0").order("createtimedesc,iddesc")
Dao.T("test").pilih("id,nama").top(10)
Dao.T("test").pilih("id,nama").order("Rnd(ID)")
Dao.t("pengguna").where("id<>{rq:id}andemail='{rq:email}'").find("id>5").result()
batasi permintaan kondisi
Setrs=Dao.T("media").field("id,nama").batas(1,5).Fetch()
Contoh kueri lengkap:
dimsql
sql=dao.select("id,nama").dari("media").di mana("id>10").join("table2").on("table2.cid=user.cid").order ("iddesc,cidasc").group("id").having("id>5").union("pilih*fromtablexx").getSQL
===============
[2]: Ubah data
Tambahkan data: Dao.Tambahkan()
Ubah data: Dao.Update() atau Dao.Set()
Hapus data: Dao.Del() atau Dao.Delete()
Simpan data cerdas (tambah atau ubah): Dao.Save()
Perbarui nilai bidang Dao.setField()
Dao.AffectedRows() atau Dao.affRows() mengembalikan jumlah baris yang terpengaruh
dimo_ds,arr(5),str
Dao.t("pengguna").di mana("id=14").del()
Dao.t("pengguna").hapus("1,3,5")
Dao.t("pengguna").dimana("id=13").set(Array("nama pengguna:55"))
Dao.t("pengguna").dimana("id=13").setField("nama","aaa1111")
Dao.query("update@usersetusername='ttt'whereid<7").exec()
Dao.query("hapus*dari@userwhereid>7").exec()
respon.writeDao.AffectedRows()'jumlah baris yang terpengaruh
Dao.t("pengguna").add(Array("nama pengguna:tttt","kata sandi:5fe84ad35fb5f95b","email:[email protected]"))
arr(0)="id>5"
arr(1)="waktu>#1986#"
arr(2)="oratambahan=555"
respon.writedao.t("media").dimana(arr).lastSQL()
Seto_ds=Server.CreateObject("scripting.Kamus")
o_ds("id")="15"
o_ds("nama")="sss"
o_ds("ddds!=")="dsd"
respon.writedao.t("media").dimana(o_ds).lastSQL()
respon.writedao.t("media").Temukan(o_ds).lastSQL()