ASP实现ActiveRecord数据查询更新 v1.0

2025-12-07 0 377

ASP实现ActiveRecord数据查询更新

引言:

用过PHP框架ThinkPHP或CI框架的同学,都知道这些框架自带的数据查询ActiveRecord用于查询数据和更新数据想到方便,

不单它们,很多PHP框架都支持ActiveRecord,省去了写过多繁琐的原生态SQL查询语句,项目维护更加方便。

现在我们也用在Asp代码上进行模拟.已经成功的应用于“基于AspBox框架的AppCore”的应用上。

应用核心代码是从AppCore里进行分离。

=================================================================

【一】:查询数据

a.获取结果:

查看输出SQL语句:Dao.getSQL()用法

别名Dao.lastSQL()

e.g.

Response.WriteDao.T("media").Top(10).lastSQL

Dao.Query()用法

dimrs

dimtb_prefix:tb_prefix=Dao.tbPrefix\’数据表前缀

Setrs=Dao.Query("selecttop10id,namefrom@media").Result()

等同于:Setrs=Dao.Query("selecttop10id,namefrom"tb_prefix"media").Result()

Dao.List()用法

dimlist

list=dao.t("media").select("id,name").top(10).List()

注:list\’返回一个二维数组

dimi,id,name

Fori=0ToUbound(list,2)

id=list(0,i)

name=list(1,i)

Response.Writeid":"name""

Next

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

Loop

Dao.Row(n)用法(n表示取得第n+1行数据)Dao.Row(0)表示取第一行数据

dimRs

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用法基本差不多,都是条件筛选数据。

Find用法更灵活,可以用Dao.Find("1,3,5")来查询自动编号(id)为1,3,5的数据

Dao.Find("1,3,5")又可以用以下写法:

Dao.Find(Array(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)取全部数据(第1条(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)数据开始的5条数据,即:第3~第7条)(共5条)

limit(1,2)表示第2条(1+1=2)数据开始的2条数据,即:第2~第3条)(共2条)

limit(4,6)可以这么算:表示第4+1=5条到第4+6=10条)(共6条)

@注意:Limit用法只能用于查询,不能用于Rs数据更新!

Dimrs

Setrs=Dao.T("test").Where("pid=1").Limit(0,5).Fetch()

附,查询示例:

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()

limit条件查询

Setrs=Dao.T("media").field("id,name").limit(1,5).Fetch()

完整的查询示例:

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

===============

【二】:修改数据

添加数据: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("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()\’影响的行数

Dao.t("user").add(Array("username:tttt","password:5fe84ad35fb5f95b","email:ttt@gmail.com"))

arr(0)="id>5"

arr(1)="time>#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()

下载源码

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 ASP实现ActiveRecord数据查询更新 v1.0 https://www.zuozi.net/30116.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务