一个DSN连接需要服务器的系统管理员在服务器上用控制面板中的ODBC工具设置一个DSN或者使用一个第三方的服务器组件让你的ASP脚本在需要时通过修改注册表建立DSN
一个DSN连接通常需要的参数有:DSN名用户名口令例如我们用用户名student口令magic通过DSNstudent建立连接:
set conntemp=servercreateobject(nnection)
conntempopen DSN=Student; uid=student; pwd=magic
set rstemp=conntempexecute(select * from authors)
如果我们没有DSN该怎么做呢?
但是我们知道文件名(比如AccessParadoxFoxPro的数据库)或者数据源名(例如SQLserver的数据库)这里有一个方法我们不要DSN就可以访问数据库注意你必须知道实际的文件路径!比如: C:\thatserver\account\nwindmdb
幸好方法 servermappath 可以返回服务器上的地址
set conntemp=servercreateobject(nnection)
cnpath=DBQ= & servermappath(yourtablemdb)
conntempOpen DRIVER={Microsoft Access Driver (*mdb)}; & cnpath
set rstemp=conntempexecute(select * from authors)
<HTML><HEAD>
<TITLE>nwindasp</TITLE>
<body bgcolor=#FFFFFF></HEAD>
<%
set conntemp=servercreateobject(nnection)
不用DSN建立连接
DSNtemp=DRIVER={Microsoft Access Driver (*mdb)};
DSNtemp=dsntemp & DBQ= & servermappath(nwindmdb)
conntempOpen DSNtemp
不用DSN建立连接
set rstemp=conntempexecute(select * from customers where country=germany)
howmanyfields=unt
%>
<table border=>
<tr>
<% Put Headings On The Table of Field Names
for i= to howmanyfields %>
<td><b><%=rstemp(i)name %></B></TD>
<% next %>
</tr>
<% Now lets grab all the records
do while not rstempeof %>
<tr>
<% for i = to howmanyfields%>
<td valign=top><%=rstemp(i)%></td>
<% next %>
</tr>
<% rstempmovenext
loop
rstempclose
set rstemp=nothing
conntempclose
set conntemp=nothing%>
</table>
</BODY>
</HTML>
下面是典型的DRIVER参数值:
{Microsoft Access Driver (*mdb)}
driver=SQL Server; server=
^ SQLServer的IP地址
不通过数据源访问SQL和ACCESS
Using SQL Server :
set Conn = ServerCreateObject(ADODBConnection)
ConnOpen driver=SQL Server; server=server_name; uid=your_UID; pwd=your_PW; database=your_database;
Using Access:
set Conn = ServerCreateObject(ADODBConnection)
ConnOpen DRIVER={Microsoft Access Driver (*mdb)}; DBQ=c:\www\db\guestbookmdb