asp ado php,ASP中通过ADO访问ACCESS和SQL SERVER

本文介绍了如何在ASP中使用ADO组件连接并操作ACCESS和SQLSERVER数据库。通过创建数据库连接字符串,建立数据连接和断开连接的函数,以及插入、更新、删除和查询记录的函数,详细展示了在ASP环境下进行数据库操作的过程。作者还提供了针对不同数据库操作的测试案例,验证了这些函数在不同平台和数据库版本上的可用性。
摘要由CSDN通过智能技术生成

最近参与了一个ASP项目,而且这也是自己第一次进行web方面的编程;作为3P之一的ASP应该是很老的技术了,但这并妨碍自己的积累和学习,尤其是web编程方面。在这里我想跟大家分享下在ASP服务端如何 通过 ADO 访问 ACCESS和SQL SERVER: ADO是一个 访问 数据库中

最近参与了一个ASP项目,而且这也是自己第一次进行web方面的编程;作为3P之一的ASP应该是很老的技术了,但这并妨碍自己的积累和学习,尤其是web编程方面。在这里我想跟大家分享下在ASP服务端如何通过ADO访问ACCESS和SQL SERVER:

ADO是一个访问数据库中数据的编程接口,是微软的一个Active-x组件,会随IIS被自动安装;在做ASP编程的时候,安装IIS(即Internet informations service)是必不可少的;

首先确保OS上已正确安装了ACCESS和SQL SERVER,由于家里电脑上没有装SQL SERVER,下面以在xp平台上访问ACCESS2003数据库为例来测试下自己写的几个数据库访问函数

1.通过.udl文件获取数据库连接字符串

1)新建一个txt文件,并修改后缀名为.udl;直接双击打开该udl文件后我们就可以根据需要获取特定数据库的连接字符串了;打开udl后的界面如图-1所示:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423214358265%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-1

2)在这里我们选择Microsoft.Jet.OLEDB.4.0数据库提供程序来访问access,点击下一步后界面如图-2所示:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423214829671%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-2

3)输入或选择数据库所在路径后,其它选项保持默认,点击测试连接后,没有问题的情况下会弹出提示【测试连接成功】的消息框;

这时,我们点击确定后用UE或者其它文本编辑工具打开该udl文件后,即可获取连接该access数据库的连接字符串;

如图-3所示:这里的连接字符串即为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\IIS\webapps\My_Test\GXY_DB1.mdb;Persist Security Info=False

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423215653937%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-3

2.通过连接字符串创建相关数据库操作函数

1.)新建ProDatBase.asp文件,并插入空的ASP代码段;在该代码段中声明三个全局变量;分别用来存储ADO记录集对象、ADO连接对象、以及连接字符串;

将上面获取的连接字符串赋值给g_ConStr

Dim g_Rs,g_Con,g_ConStr

g_ConStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\IIS\webapps\My_Test\GXY_DB1.mdb;Persist Security Info=False" 2.)创建数据连接和断开连接函数

'连接数据库

function ConnectDataBase()

set g_Con=server.CreateObject("ADODB.connection")

on error resume next

g_Con.mode=3 '将连接模式设为可读取写

g_Con.open g_ConStr

if err<>0 then

ConnectDataBase=false

response.Write(err.Description)

else

ConnectDataBase=true

end if

end function

'断开数据库连接

function DisconnectDataBase()

on error resume next

g_Con.close

set g_Con=nothing

if err<>0 then

DisconnectDataBase=false

response.Write(err.Description)

else

DisconnectDataBase=true

end if

end function 3.)创建插入记录函数

'插入记录

function InsertRecord(table,sqlFields,sqlValues)

if ConnectDataBase() then

sql="insert into ["+table+"] ("+sqlFields+") values ("+sqlValues+") "

on error resume next

g_Con.Execute sql

if err<> 0 then

response.Write(err.Description)

end if

DisconnectDataBase()

end if

end function

4.)创建更新记录函数

'更新记录

function UpdateRecord(table,sqlFields,sqlValues,strCondition)

if ConnectDataBase() then

sql="update ["+table+"] set "

sql_fd=split(sqlFields,",")

sql_fv=split(sqlValues,",")

for i=0 to ubound(sql_fd)

if i<>ubound(sql_fd) then

sql=sql & ""&sql_fd(i)&"="&sql_fv(i)&","

else

sql=sql & ""&sql_fd(i)&"="&sql_fv(i)&""

end if

next

sql=sql&" where "&strCondition&""

on error resume next

g_Con.Execute sql

if err<> 0 then

response.Write(err.Description)

end if

DisconnectDataBase()

end if

end function

5.)创建删除记录函数

'根据条件删除记录

function DeleteRecord(table,strCondition)

if ConnectDataBase() then

sql="delete from "+table+" where "&strCondition&" "

on error resume next

g_Con.Execute sql

if err<> 0 then

response.Write(err.description)

end if

DisconnectDataBase()

end if

end function

6.)创建记录获取函数

'根据条件获取记录

function GetRecords(table,strCondition)

if ConnectDataBase() then

sql="select * from ["+table+"]"

if strCondition<> "" then

sql=sql&" where "&strCondition&""

end if

on error resume next

set g_Rs=Server.CreateObject("ADODB.recordset")

g_Rs.Open sql,g_Con

if err<> 0 then

response.Write(err.description)

end if

end if

end function

7.)创建资源释放函数

function ReleaseResource()

on error resume next

g_Rs.close

set g_Rs=nothing

DisconnectDataBase()

if err<>0 then

response.Write(err.description)

end if

end function

3、对创建的数据库函数进行测试,这里以GXY_DB1数据库下的表Test_table为例,该表的各字段及全部记录如图-4和图-5所示:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423222533421%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423222536593%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-4(id自动增长) 图-5(没有记录)

准备:新建ProDataBase_Test.asp文件,添加包含ProDataBase.asp文件的语句,插入空的asp代码块

1.)插入记录函数测试:插入10条记录,name和age依次从name0和15岁到name9和24岁

测试代码:

测试结果如图-6所示:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423223854484%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-6

2.)获取记录函数测试:获取age在18到23之间的记录并显示在网页上

测试代码:

Test_Table

")

for each x in g_Rs.fields

response.Write("")

response.write(x.name)

response.Write("")

next

response.Write("")

do until g_Rs.eof

response.Write("

")

for each x in g_Rs.fields

response.Write("")

response.write(x.value)

response.Write("")

next

response.Write("")

g_Rs.movenext

loop

ReleaseResource()

%>

测试结果如图-7所示:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423224507343%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-7

3.)更新记录函数测试:将name=name7的记录的name改为newname,age改为99岁,并将获取所有记录显示在网页上

测试代码:

Test_Table

")

for each x in g_Rs.fields

response.Write("")

response.write(x.name)

response.Write("")

next

response.Write("")

do until g_Rs.eof

response.Write("

")

for each x in g_Rs.fields

response.Write("")

response.write(x.value)

response.Write("")

next

response.Write("")

g_Rs.movenext

loop

ReleaseResource()

%>

测试结果如图-8所示:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423225859843%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-8

4.)删除记录函数测试:删除age大于18岁的记录,并将获取所有记录显示在网页上

测试代码:

Test_Table

18"

GetRecords "Test_Table",""

response.Write("

")

for each x in g_Rs.fields

response.Write("")

response.write(x.name)

response.Write("")

next

response.Write("")

do until g_Rs.eof

response.Write("

")

for each x in g_Rs.fields

response.Write("")

response.write(x.value)

response.Write("")

next

response.Write("")

g_Rs.movenext

loop

ReleaseResource()

%>

测试结果如图-9所示:

test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20140423225906203%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDAwNTUwOA%3D%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Fu010005508%2Farticle%2Fdetails%2F24384159

图-9

4.总结:

上述所有函数在win7和xp平台以及access2003和sql server2008 express版(vs2010自带的)上均测试过,可以正常运行;下面提供一个连接sql server2008的连接字符串供参考:(也是通过udl文件创建的,数据提供程序选择sql server native client 10.0)

g_ConStr="Provider=SQLNCLI10.1;Persist Security Info=False;User ID=gxy;Password=54321;Initial Catalog=GXY_DB1;Data Source=(local); 第一次发博客,文笔又不行,vbscript刚接触,函数写的不够高效及简洁。。。等等。。。。。如有不当及纰漏之处,请各路大牛多多指教

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值