ASP数据库编程技巧

  • ASP数据库编程技巧
  • ragment-->  Active Server
    Pages是功能强大、易于学习的服务器端脚本编程环境,ASP内置ADO组件,因此可以轻松
    的存取各种数据库,从而大大缩短了程序开发时间。本文将笔者从事ASP数据库编程的两
    点经验贡献出来,供大家参考。
    一、 与数据库建立连接
      我们常用的数据库一般为Microsoft Access或SQL
    Server,为了使用这两种数据库,我们通常需要先创建和配置ODBC数据源,但事实上,
    ASP脚本可以使用OLD
    DB的其他驱动程序直接把ADO绑定到数据库而不使用ODBC作为一个附加层,请看:
    1. 与Microsoft Access数据库建立连接
    Set Cnn = Server.CreateObject("ADODB.Connection")
    Cnn.Open
    "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &
    Server.MapPath("spdata")
    & "example.mdb;"
      在这里,Server对象的MapPath方法将指定的虚拟路径转换为真实的文件路径,最终
    结果类似:c:InetPubhomespdataexample.mdb。
    2. 与SQL Server数据库建立连接
    Set Cnn =
    Server.CreateObject("ADODB.Connection")
    strConn = "Provider=sqloledb;
    User ID=sa; Password=; Initial Catalog=pubs; Data
    Source=16.62.5.8"
    Cnn.Open strConn
      Initial Catalog后指定数据库名,Data Source后为机器名或IP地址。
    二、 从ASP脚本中访问数据库的两种方法
    1. 通过SQL语句来访问数据库
    1) 若需要返回 Recordset
    对象引用(如查询操作)先要建立一个名为Cnn的连接
    strQry = "SELECT * FROM authors"
    Set
    rsTest = Cnn.Execute(strQry)
    然后可以通过循环显示记录集rsTest中的有关数据。
    2)
    若不需要返回数据(如增加、修改、删除操作)
    strQ = "INSERT INTO Shippers (CompanyName, Phone)
    VALUES ('O''Conner Delivery', '(503)
    555-0201')"
    Cnn.Execute
    strQ
    2.
    通过Recordset对象的Open、AddNew、Delete、Update和UpdateBatch方法访问数据库
    Set rsTest =
    Server.CreateObject("ADODB.Recordset") '创建Recordset对象
    rsTest.CursorLocation = adUseServer   '使用服务器端游标
    rsTest.CursorType = adOpenForwardOnly '使用仅向前游标类型
    rsTest.LockType
    = adLockOptimistic   '开放式记录锁定(逐条)
    rsTest.Open "SELECT * FROM Shippers
    WHERE CompanyName = 'United Package'", Cnn, , ,
    adCmdText
    '
    第五个参数:adCmdText指示数据源是一个SQL语句。
    rsTest("Phone") = "(503) 555-8888"
    rsTest.Update
    Response.Write "更新单个记录 " & objRS("Phone")
    & ".
    "
      为了更好的理解ADO的数据库编程,下面提供一个完整的实例(NorthWind.mdb是Mic
    rosoft
    Access97自带的一个数据库,文件adovbs.inc可在C:Program FilesCommon FilesSy
    stemADO下找到):
    <% @LANGUAGE = VBScript %>
    <!--#include file="adovbs.inc"-->
    <%
    Response.Expires = 0
    Dim StrCnn,Cnn,objRS, strOut, ID
    Set Cnn = Server.CreateObject("ADODB.Connection")
    StrCnn="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &
    Server.MapPath("sp24") & "NorthWind.mdb;"
    Cnn.Open StrCnn
    Response.Write StrCnn & "<Br>"  '看看输出的结果
    Set objRS = Server.CreateObject("ADODB.Recordset")
    objRS.CursorLocation = adUseServer
    objRS.CursorType = adOpenKeyset
    objRS.LockType = adLockOptimistic
    objRS.Open "运货商", Cnn, , , adCmdTable
    objRS.AddNew
    objRS("公司名称") = "吴丰"
    objRS("电话") = "571-7227298"
    objRS.Update
    ID = objRS("运货商ID")
    Response.Write "新增记录运货商ID为 "
    Response.Write ID & ".<BR><BR>"
    objRS.Close
    objRS.CursorLocation = adUseClient
    objRS.CursorType = adOpenForwardOnly
    objRS.LockType = adLockReadOnly
    objRS.Open "运货商", Cnn, , , adCmdTable
    %>
    <HTML><BODY>
      下面为显示信息部分-运货商ID: 公司名称 电话<BR><BR>
    <%
    While Not objRS.EOF
    strOut = objRS("运货商ID") & ": " & objRS("公司名称")
    strOut = strOut & " " & objRS("电话")
    Response.Write Server.HTMLEncode(strOut) & "<BR>"
    objRS.MoveNext
    Wend
    objRS.close : Cnn.close
    Set objRS = Nothing : Set Cnn = Nothing
    %>
    </BODY></HTML>

     
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值