ASP は ActiveRecord データのクエリと更新を実装します
導入:
PHP フレームワーク ThinkPHP または CI フレームワークを使用したことのある学生は、これらのフレームワークに付属するデータ クエリ ActiveRecord がデータのクエリとデータの更新に使用されると便利であることを知っています。
これらに限らず、多くの PHP フレームワークは ActiveRecord をサポートしているため、面倒なオリジナルの SQL クエリ ステートメントを多数記述する必要がなくなり、プロジェクトのメンテナンスがより便利になります。
現在、Asp コードのシミュレーションにも使用しています。「AspBox フレームワークに基づく AppCore」のアプリケーションに適用することに成功しました。
アプリケーションのコア コードは AppCore から分離されています。
================================================= ===============
[1]: クエリデータ
a. 結果を取得します。
出力 SQL ステートメントを表示します: Dao.getSQL() の使用法
AliasDao.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("メディア").select("id,name").top(10).List()
注: list' は 2 次元配列を返します
ディミ、ID、名前
Fori=0ToUbound(リスト,2)
id=リスト(0,i)
名前=リスト(1,i)
Response.Writeid":"名前""
次
Dao.Result() の使用法
エイリアス Dao.GetRs() または Dao.Fetch()
ディムR
SetRs=Dao.T("メディア").select("id,name").top(10).Result()
ab.traceRs
DowhilenotRs.eof
Response.WriteRs("id")":"Rs("name")""
Rs.ムーブネクスト
ループ
Dao.Row(n) の使用法 (n はデータの n+1 行目を取得することを意味します) Dao.Row(0) はデータの最初の行を取得することを意味します
ディムR
SetRs=Dao.Query("selecttop10id,namefrom@media").Row(4)' データの 5 行目を取得します
IfNotRs.EofThen
Response.WriteRs("id")":"Rs("name")
EndIf
b. クエリ条件:
Dao.T() の使用法は Dao.From() の使用法と同じです。
Dao.Select() の使用法は Dao.Field() の使用法と同じです
Dao.Where() の使用法と Dao.Find() の使用法:
注: Where の使用法は基本的に Find の使用法と同じで、どちらも条件に基づいてデータをフィルターします。
検索の使用法がより柔軟になります。Dao.Find("1,3,5") を使用して、自動番号 (ID) 1,3,5 を使用してデータをクエリできます。
Dao.Find("1,3,5") は次のように記述することもできます。
Dao.Find(配列(1,3,5))
Dao.Find("idin(1,3,5)")
Dao.Where("idin(1,3,5)")
Dao.Where("id=1orid=3orid=5")
Dao.Limit() の使用法:
mysqlのlimit(offset,rows)の使用量をシミュレートする
使用法:
limit(0,0) はすべてのデータ (最初の (0+1=1) データの先頭から末尾までのデータ) を取得します。
limit(0,1)は(1番目のデータ(0+1=1)つまり1番目から1番目まで)から1個のデータを取ります(合計1個)
limit(3,0) は、4 番目 (3+1=4) 個のデータの先頭から末尾までのデータを取得します。つまり、4 番目から最後のデータまでです)
limit(2,5)は、3番目のデータ(2+1=3)から3番目から7番目までの5個のデータ(合計5個)を表します。
limit(1,2)は、2番目のデータから始まる2つのデータ(1+1=2)、つまり2番目から3番目)(合計2個)を表します。
limit(4,6) は次のように計算できます。つまり、アイテム 4+1=5 から 4+6=10) (合計 6 アイテム)
@注意: 使用制限はクエリにのみ使用でき、Rs データの更新には使用できません。
ディムル
Setrs=Dao.T("テスト").Where("pid=1").Limit(0,5).Fetch()
添付のクエリ例:
Dao.T("テスト").フィールド("id,name").where("id>0").order("createtimedesc,iddesc")
Dao.T("テスト").select("id,name").top(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("メディア").フィールド("id,name").limit(1,5).Fetch()
完全なクエリの例:
ディムSQL
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("ユーザー").where("id=14").del()
Dao.t("ユーザー").delete("1,3,5")
Dao.t("ユーザー").where("id=13").set(Array("ユーザー名:55"))
Dao.t("ユーザー").where("id=13").setField("名前","aaa1111")
Dao.query("update@usersetusername='ttt'whereid<7").exec()
Dao.query("delete*from@userwhereid>7").exec()
response.writeDao.AffectedRows()'影響を受ける行数
Dao.t("ユーザー").add(Array("ユーザー名:tttt","パスワード:5fe84ad35fb5f95b","メール:[email protected]"))
arr(0)="id>5"
arr(1)="時間>#1986#"
arr(2)="oradd=555"
response.writedao.t("メディア").where(arr).lastSQL()
Seto_ds=Server.CreateObject("scripting.Dictionary")
o_ds("id")="15"
o_ds("名前")="sss"
o_ds("ddds!=")="dsd"
response.writedao.t("メディア").where(o_ds).lastSQL()
response.writedao.t("メディア").Find(o_ds).lastSQL()