手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

ASP数据库编程技巧

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
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("\asp\data")

& "\example.mdb;"

  在这里,Server对象的MapPath方法将指定的虚拟路径转换为真实的文档路径,最终结果类似:c:\InetPub\home\asp\data\example.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是Microsoft Access97自带的一个数据库,文档adovbs.inc可在C:\Program Files\Common Files\System\ADO下找到):
<% @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("\asp24") & "\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>





文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS