当前位置:首页 > 网站旧栏目 > 学习园地 > 名师教程 > 利用ASP连接各种数据库

利用ASP连接各种数据库
2006-03-11 11:24:35  作者:木子摘录  来源:

ASP连接DBFDBCMDBExcelSQL Server型数据库的方法:
一、ASP的对象存取数据库方法
 
ASP中,用来存取数据库的对象统称ADOActive Data Objects),主要含有三种对象:ConnectionRecordset Command
Connection
:负责打开或连接数据
Recordset
:负责存取数据表
Command
:负责对数据库执行行动查询命令

二、连接各数据库的驱动程序
 
连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。

驱动程序          适用数据库类型
Microsoft.Jet.OLEDB.4.0
     Mdb
Microsoft Access Driver
     Access
Microsoft dBase Driver
      Dbase
Microsoft Excel Driver
      Excel
Microsoft Visual FoxPro Driver  Dbc
SQLOLEDB.1
          SQL srver7.0
  
而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " &

server.mappath("../db/bbs.mdb")

其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:
dim conn
set conn = server.createobject("adodb.connection")
conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.mappath("bbs.mdb")
有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了

 

ASP连接数据库的5种方法

 

第一种 - 这种方法用在ACCESS中最多
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _
& Server.MapPath("aspfree.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn

第二种-这种方法用在SQL SERVER中多
strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1;" _
&"UID=LoginID;Password=;DATABASE=Database_Name"
set conn = server.createobject("adodb.connection")
conn.open strconn

第三种
strconn="Driver={Microsoft Access Driver(*.mdb)};" _
&"DBQ=F:\Inetpub\wwwroot\somedir\db1.mdb;DefaultDir=" _
&"f:\Inetpub\wwwroot\somedir;uid=LoginID;" _
&"pwd=Password;DriverId=25;FIL=MSAccess;" 
set conn = server.createobject("adodb.connection")
conn.open strconn

第四种运用系统数据源
The following uses a Data Source Name: Example
set conn = server.createobject("adodb.connection")
conn.open "Example"

第五种运用ODBC数据源,前提是你必须在控制面板的ODBC中设置数据源
set rs = server.createobject("adodb.recordset")
rs.open "tblname", "DSNName", 3, 3  
第一种 - 这种方法用在ACCESS中最多
strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _
& Server.MapPath("aspfree.mdb")
set conn = server.createobject("adodb.connection")
conn.open strconn

 

ASP如何使用MYSQL数据库

 

mysql数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选
数据库,但一般都是用php+mysql相结合来开发各种动态页面,其实asp也可以
使用mysql数据库开发动态页面,小弟我也是刚刚学会,不敢独享,所以特写了
这篇文章供大伙参考。
我的环境是windows2000+iis5.0+mysql-3.23.32-win+php4
mysql-3.23.32-win
(这个是最新版的)
myodbc-2.50.36-dll
(这个是最重要的,mysql odbc的驱动程序,可以在www.mysql.com下载)
第一步:安装mysql odbd的驱动程序,将下载的myodbd-2.50.46-dll文件复制到windows\system目录下(windows2000winnt/system32)
然后建立一新文件,扩展名为reg(就是注册表文件),将以下内容复制到该文件中。
regedit4

[hkey_local_machine\software\odbc\odbcinst.ini\myodbc driver] 
"usagecount"=dword:00000002 
"driver"="c:\\windows\\system\\myodbc.dll" 
"setup"="c:\\windows\\system\\myodbc.dll" 
"sqllevel"="1" 
"fileusage"="0" 
"driverodbcver"="02.50" 
"connectfunctions"="yyy" 
"apilevel"="1" 
"cptimeout"="120" 
[hkey_local_machine\software\odbc\odbcinst.ini\odbc drivers] 
"myodbc driver"="installed" 

保存后双击该文件,将上面代码注册到windows注册表中。
如果安装在windows2000,driversetup主键的值要做相应改变,这里我想就不用多说了。
如果成功,在控制面板/odbd数据源的驱动程序里将看到myodbd driver这一项!

第二步:建立asp文件链接数据库。
这里有两种方法,一种是在odbc数据源中建立一个系统dsn。后来我发现不建立也可以在asp中使用mysql,方法在下文将讲道。
打开控制面板/odbd数据源,选择系统dsn,然后添加一个新的dsn,驱动程序选择myodbd driver,会出现一个对话框供输入mysql
相关信息。

windows dsn name: 
所要建立dsn的名称
mysql host (name or ip):mysql
服务器的名称或者是ip地址,通常填localhost
mysql database name:
需要使用数据库的名称,数据库在mysql管理程序中建立。这里我们使用一个例子。数据库名:
hc188
里面有数据表:user 数据表有两个字段分别是:usernamepassword,随便插入几个数据。

user:
链接数据库的用户名,我填的是root超级用户
password:
链接数据库用户密码,如果没有,可以不填
port(if not 3306)
mysql在服务器的端口,如果不填默认为3306
sql command on connect:
使用sql命令链接数据库,这项可以不填

填写完毕后选择ok保存。

下面链接数据库的asp代码!


strconnection = "dsn=hc188;driver={myodbd driver};server=localhost;uid=root;pwd=;database=hc188" 
set adodataconn = server.createobject("adodb.connection") 
adodataconn.open strconnection

strquery = "select * from user" 
set rs = adodataconn.execute(strquery) 
if not rs.bof then 
%
 
table
 
tr

tdbusername/b></td
td><bpassword/b></td
/tr 

do while not rs.eof 
%
 
tr

td><%=rs("username")%></td
td><%=rs("password")%></td
/tr 

rs.movenext 
loop 
%
 
/table
 

else 
response.write("sorry, no data found.") 
end if 

rs.close 
adodataconn.close 
set adodataconn = nothing 
set rsemaildata = nothing 
%

第二种方法:我在使用中想过如果不建立系统dsn,是否也可以使用mysql数据库呢?结果是可以的。
方法很简单,把上面asp代码第二行代码改为:
strconnection="defaultdir=;driver={myodbc driver};database=hc188"

我奇怪的发现,这种方法连用户名和密码都不需要就可以使用。是不是mysql的一个bug呢?

以上代码全部经测试通过!

 

ASP 编程中 20 个非常有用的例子

 

1.如何用Asp判断你的网站的虚拟物理路径
答:使用Mappath方法
< p align="center" >< font size="4" face="Arial" >< b >
The Physical path to this virtual website is:
< /b >< /font >
< font color="#FF0000" size="6" face="Arial" >
< %= Server.MapPath("\")% >
< /font >< /p >
2.
我如何知道使用者所用的浏览器?
答:使用the Request object方法
strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
If Instr(strBrowser,"MSIE") < > 0 Then
  Response.redirect("ForMSIEOnly.htm")
Else
  Response.redirect("ForAll.htm")
End If

3.
如何计算每天的平均反复访问人数
答:解决方法
< % startdate=DateDiff("d",Now,"01/01/1990")
if strdate< 0 then startdate=startdate*-1
avgvpd=Int((usercnt)/startdate) % >
显示结果
< % response.write(avgvpd) % >
that is it.this page have been viewed since November 10,1998

4.
如何显示随机图象
< % dim p,ppic,dpic
ppic=12
randomize
p=Int((ppic*rnd)+1)
dpic="graphix/randompics/"&p&".gif"
% >
显示
< img src="< %=dpic% >" >

5.
如何回到先前的页面
答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >
或用图片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >

6.
如何确定对方的IP地址
答:< %=Request.serverVariables("REMOTE_ADDR)% >

7.
如何链结到一副图片上
答:< % @Languages=vbscript % >
< % response.expires=0
strimagename="graphix/errors/erroriamge.gif"
response.redirect(strimagename)
% >

8.
强迫输入密码对话框
答:把这句话放载页面的开头
< % response.status="401 not Authorized"
response.end
% >

9.
如何传递变量从一页到另一页
答:用 HIDDEN 类型来传递变量
< % form method="post" action="mynextpage.asp" >
< % for each item in request.form % >
< input namee="< %=item% >" type="HIDDEN"
value="< %=server.HTMLEncode(Request.form(item)) % >" >
< % next % >
< /form >

10.
为何我在 asp 程序内使用 msgbox,程序出错说没有权限
答:由于 asp 是服务器运行的,如果可以在服务器显示一个对话框,那么你只好等有人按了确定之后,你的程序才能继续执行,而一般服务器不会有人守着,所以微软不得不禁止这个函数,并胡乱告诉你 (:) 呵呵) 没有权限。但是ASP和客户端脚本结合倒可以显示一个对话框,as follows:
< % yourVar="
测试对话框"% >
< % script language='javascript' >
alert("< %=yourvar% >")
< /script >

11.
有没有办法保护自己的源代码,不给人看到
答:可以去下载一个微软的Windows Script Encoder,它可以对asp的脚本和客户端javascript/vbscript脚本进行加密。。。不过客户端加密后,只有ie5才能执行,服务器端脚本加密后,只有服务器上安装有script engine 5(装一个ie5就有了)才能执行。

12.
怎样才能将 query string 从一个 asp 文件传送到另一个?
答:前者文件加入下句:Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))

13.global.asa
文件总是不起作用?
答:只有web目录设置为web application, global.asa才有效,并且一个web application的根目录下 global.asa才有效。IIS4可以使用Internet Service Manager设置application setting 怎样才能使得htm文件如同asp文件一样可以执行脚本代码?

14.
怎样才能使得htm文件如同asp文件一样可以执行脚本代码?
答:Internet Sevices Manager - > 选择default web site - >右鼠键- >菜单属性-〉主目录- > 应用程序设置(Application Setting- > 点击按钮 "配置"- > app mapping - >点击按钮"Add" - > executable browse选择 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 输入 htm method exclusions 输入PUT.DELETE 全部确定即可。但是值得注意的是这样对htm也要由asp.dll处理,效率将降低。

15.
如何注册组件
答:有两种方法。
第一种方法:手工注册 DLL 这种方法从安徽新华电脑学校专业职业规划师为你提供更多帮助【在线咨询

相关热词搜索:名师讲堂