最新公告
  • 欢迎您光临牛品源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • ASP实现ActiveRecord数据查询更新 v1.0

    • 授权方式:开源软件
    • 界面语言:简体中文
    • 文件大小:57.9 KB
    • 更新时间:2014-03-26
    • 资源类型:国产软件
    • 推荐等级:★★★☆☆
    • 平台环境:ASP/Access/MSSQL
    • 作者主页:点击查看
    • 演示地址:点击查看

    详细介绍 – [ ASP实现ActiveRecord数据查询更新 v1.0 ]

    ASP实现ActiveRecord数据查询更新
    引言:
    用过 PHP框架 ThinkPHP 或 CI框架的 同学,都知道 这些框架自带的数据查询 Active Record 用于查询数据 和 更新数据 想到方便,
    不单它们,很多PHP框架都支持 Active Record,省去了写过多繁琐的原生态SQL查询语句,项目维护更加方便。

     

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

     

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

     

    【一】: 查询数据
    a. 获取结果:
    查看输出SQL语句: Dao.getSQL() 用法
    别名 Dao.lastSQL()
    e.g.
    Response.Write Dao.T("media").Top(10).lastSQL
    Dao.Query() 用法
    dim rs
    dim tb_prefix : tb_prefix = Dao.tbPrefix \’数据表前缀
    Set rs = Dao.Query("select top 10 id,name from @media").Result()
    等同于: Set rs = Dao.Query("select top 10 id,name from "& tb_prefix &"media").Result()
    Dao.List() 用法
    dim list
    list = dao.t("media").select("id, name").top(10).List()
    注:list \’返回一个二维数组
    dim i, id, name
    For i = 0 To Ubound(list,2)
    id = list(0, i)
    name = list(1, i)
    Response.Write id & " : " & name & ""
    Next
    Dao.Result() 用法
    别名 Dao.GetRs() 或 Dao.Fetch()
    dim Rs
    Set Rs = Dao.T("media").select("id, name").top(10).Result()
    ab.trace Rs
    Do While not Rs.eof
    Response.Write Rs("id") & " : " & Rs("name") & ""
    Rs.MoveNext
    Loop
    Dao.Row(n) 用法 (n表示取得第n+1行数据) Dao.Row(0) 表示取第一行数据
    dim Rs
    Set Rs = Dao.Query("select top 10 id,name from @media").Row(4) \’获取第5行数据
    If Not Rs.Eof Then
    Response.Write Rs("id") & " : " & Rs("name")
    End If

     

    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( "id in (1,3,5)" )
    Dao.Where( "id in (1,3,5)" )
    Dao.Where( "id=1 or id=3 or id=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数据更新!
    Dim rs
    Set rs = Dao.T("test").Where("pid=1").Limit(0,5).Fetch()

     

    附,查询示例:
    Dao.T("test").field("id,name").where("id > 0").order("createtime desc,id desc")
    Dao.T("test").select("id, name").top(10)
    Dao.T("test").select("id, name").order("Rnd(ID)")
    Dao.t("user").where("id<>{rq:id} and email=\'{rq:email}\’").find("id>5").result()
    limit条件查询
    Set rs = Dao.T("media").field("id, name").limit(1,5).Fetch()

     

    完整的查询示例:
    dim sql
    sql = dao.select("id,name").from("media").where("id>10").join("table2").on("table2.cid = user.cid").order("id desc, cid asc").group("id").having("id>5").union("select * from tablexx").getSQL
    ===============

     

     

    【二】: 修改数据
    添加数据: Dao.Add()
    修改数据: Dao.Update() 或 Dao.Set()
    删除数据: Dao.Del() 或 Dao.Delete()
    智能保存数据(添加或修改): Dao.Save()
    更新某个字段值 Dao.setField()
    Dao.AffectedRows() 或 Dao.affRows() 返回影响的行数
    dim o_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 @user set username=\’ttt\’ where id<7").exec()
    Dao.query("delete * from @user where id>7").exec()
    response.write Dao.AffectedRows() \’影响的行数

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

    arr(0) = "id>5"
    arr(1) = "time>#1986#"
    arr(2) = "or add=555"
    response.write dao.t("media").where(arr).lastSQL()

    Set o_ds = Server.CreateObject("scripting.Dictionary")
    o_ds("id") = "15"
    o_ds("name") = "sss"
    o_ds("ddds!=") = "dsd"
    response.write dao.t("media").where(o_ds).lastSQL()
    response.write dao.t("media").Find(o_ds).lastSQL()
     

     

    发表评论

    售后服务:

    • 售后服务范围 1、商业模板使用范围内问题免费咨询
      2、源码安装、模板安装(一般 ¥50-500)服务答疑仅限SVIP用户
      3、单价超过200元的模板免费一次安装,需提供服务器信息。
      付费增值服务 1、提供dedecms模板、WordPress主题、discuz模板优化等服务请详询在线客服
      2、承接 WordPress、DedeCMS、Discuz 等系统建站、仿站、开发、定制等服务
      3、服务器环境配置(一般 ¥50-500)
      4、网站中毒处理(需额外付费,1000元/次/质保三个月)
      售后服务时间 周一至周日(法定节假日除外) 9:00-23:00
      免责声明 本站所提供的模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: niupinyuanma@foxmail.com),我们会及时删除,给您带来的不便,我们深表歉意!