最近参与了一个ASP项目,而且这也是自己第一次进行web方面的编程;作为3P之一的ASP应该是很老的技术了,但这并妨碍自己的积累和学习,尤其是web编程方面。在这里我想跟大家分享下在ASP服务端如何 通过 ADO 访问 ACCESS和SQL SERVER: ADO是一个 访问 数据库中
1)新建一个txt文件,并修改后缀名为.udl;直接双击打开该udl文件后我们就可以根据需要获取特定数据库的连接字符串了;打开udl后的界面如图-1所示:
图-1
2)在这里我们选择Microsoft.Jet.OLEDB.4.0数据库提供程序来访问access,点击下一步后界面如图-2所示:
图-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
图-3
1.)新建ProDatBase.asp文件,并插入空的ASP代码段;在该代码段中声明三个全局变量;分别用来存储ADO记录集对象、ADO连接对象、以及连接字符串;
将上面获取的连接字符串赋值给g_ConStr
<p><span>Dim g_Rs,g_Con,g_ConStr</span></p><p><span>g_ConStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\IIS\webapps\My_Test\GXY_DB1.mdb;Persist Security Info=False"</span></p>
'连接数据库
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
'插入记录
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 function4.)创建更新记录函数
'更新记录 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 function7.)创建资源释放函数
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
图-4(id自动增长) 图-5(没有记录)
准备:新建ProDataBase_Test.asp文件,添加包含ProDataBase.asp文件的语句,插入空的asp代码块
1.)插入记录函数测试:插入10条记录,name和age依次从name0和15岁到name9和24岁
测试代码:
Metafox 是一个企业内容管理系统,使用一个特别的模板系统,你可通过一些特定的设计和代码来轻松创建 Web 网站,内容存储在 SQL 关系数据库,通过 Web 进行管理,简单、快速而且高效。 Metafox 0.9.1 发布,该版本改用一种更棒的 URL 风格,实现了 RSS 源(可包含远端网站内容到 Metafox 段中),重定向老的访问密钥到新的密钥,增加 RotateAntispam 技
0
<% for i=0 to 9 str="'name"&i&"',"&i+15&"" InsertRecord "Test_Table","name,age",str next %>
测试结果如图-6所示:
图-6
2.)获取记录函数测试:获取age在18到23之间的记录并显示在网页上
测试代码:
<body>
<div align="center">
Test_Table
<table border="2" bgcolor="#99FFFF">
<%
GetRecords "Test_Table","age between 18 and 23"
response.Write("<tr>")
for each x in g_Rs.fields
response.Write("<th>")
response.write(x.name)
response.Write("</th>")
next
response.Write("</tr>")
do until g_Rs.eof
response.Write("<tr>")
for each x in g_Rs.fields
response.Write("<td width=90>")
response.write(x.value)
response.Write("</td>")
next
response.Write("</tr>")
g_Rs.movenext
loop
ReleaseResource()
%>
</table>
</div>
</body>测试结果如图-7所示:
图-7
3.)更新记录函数测试:将name=name7的记录的name改为newname,age改为99岁,并将获取所有记录显示在网页上
测试代码:
<body>
<div align="center">
Test_Table
<table border="2" bgcolor="#99FFFF">
<%
UpdateRecord "Test_Table","name,age","'newname',99","name='name7'"
GetRecords "Test_Table",""
response.Write("<tr>")
for each x in g_Rs.fields
response.Write("<th>")
response.write(x.name)
response.Write("</th>")
next
response.Write("</tr>")
do until g_Rs.eof
response.Write("<tr>")
for each x in g_Rs.fields
response.Write("<td width=90>")
response.write(x.value)
response.Write("</td>")
next
response.Write("</tr>")
g_Rs.movenext
loop
ReleaseResource()
%>
</table>
</div>
</body>测试结果如图-8所示:
图-8
4.)删除记录函数测试:删除age大于18岁的记录,并将获取所有记录显示在网页上
测试代码:
<body>
<div align="center">
Test_Table
<table border="2" bgcolor="#99FFFF">
<%
DeleteRecord "Test_Table","age>18"
GetRecords "Test_Table",""
response.Write("<tr>")
for each x in g_Rs.fields
response.Write("<th>")
response.write(x.name)
response.Write("</th>")
next
response.Write("</tr>")
do until g_Rs.eof
response.Write("<tr>")
for each x in g_Rs.fields
response.Write("<td width=90>")
response.write(x.value)
response.Write("</td>")
next
response.Write("</tr>")
g_Rs.movenext
loop
ReleaseResource()
%>
</table>
</div>
</body>测试结果如图-9所示:
图-9
上述所有函数在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);
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号