欢迎光临
我们一直在努力

不用数据源打开数据库(DSNless connection)

建站超值云服务器,限时71元/月

每一个需要联结数据库的程序,首先必须在服务器上打开它。这里有许多的办法!

使用系统数据源(dsn)

这个就必须在服务器上设置。这是数据访问最好最快的方法。因为它只需在服务器上认证一下就行了,不需要联结。

使用文件数据源

这不是一个值得推荐的方法。因为这样的话,所有的用户都被限制了!根本不适用于网络。

不需要dsn的联结

这种方法就不需要在服务器设置任何的东东,只要这个数据库存在就行!当然你也得有访问密码。

这是一个没有办法的办法,因为在服务器上没有dsn设置,而且速度也没有设置dsn快,因为每次都必须和服务器联结一次

微软有关于这方面的文章在

http://support.microsoft.com/support/kb/articles/q193/3/32.asp

在这里所有的dsnless联结代码。我们在这里只说一小部分,如果觉得我们说的不清楚就到那儿去看英文版吧!

哈哈。

dsnless联结需你知道数据库文件的名字(i.e. file based databases like access, paradox, foxpro, etc.)或者数据库的服务器地址(sql server就是这样的)。还必须有打开这个数据库的权限,比如密码和用户名。有了这些你就可以打开这个数据库了!嘿嘿!

不过你要注意,如果你是用的access数据库你就必须知道它的绝对路径,就像"c:\thatserver\account17\nwind.mdb"一样。不过sever.mappath方法能够将相对路径转为绝对路径。我们就不用担心了!

下面是一个例子例用了dsnless,用它来访问名叫nwind.mdb的access的数据库。文件名为nwind.asp

<html><head>

<title>nwind.asp</title>

<body bgcolor="#ffffff"></head>

<%

accessdb="nwind.mdb"

mydsn="driver={microsoft access driver (*.mdb)};"

mydsn=mydsn & "dbq=" & server.mappath(accessdb)

mysql="select * from customers"

call query2table(mysql,mydsn)

%>

<!–#include virtual="/learn/test/lib_dbtable.asp"–>

</body>

</html>

下面的例子是使用dsn来访问sql server,文件名为sqldsn.asp

<html><head>

<title>sqldsn.asp</title>

<body bgcolor="#ffffff"></head>

<%

accessdb="nwind.mdb"

mydsn="dsn=student;uid=student;pwd=magic"

mysql="select * from publishers where state=ny"

call query2table(mysql,mydsn)

%>

<!–#include virtual="/learn/test/lib_dbtable.asp"–>

</body>

</html>

下面的例子是用dsnless来访问sql server数据库的方法。

<html><head>

<title>sqldsnless.asp</title>

<body bgcolor="#ffffff"></head>

<%

mydb="provider=msdasql;driver={sql server};"

mydb=mydb & "server=sql2.datareturn.com;database=;"

mydb=mydb & "uid=student;pwd=magic;"

mysql="select * from publishers where state=ny"

call query2table(mysql,mydb)

%>

<!–#include virtual="/learn/test/lib_dbtable.asp"–>

</body>

</html>

包含文件lib_dbtable.asp是以下的内容:

<%

sub query2table(inputquery, inputdsn)

dim conntemp, rstemp

set conntemp=server.createobject("adodb.connection")

conntemp.open inputdsn

set rstemp=conntemp.execute(inputquery)

howmanyfields=rstemp.fields.count -1%>

<table border=1><tr>

<% put headings on the table of field names

for i=0 to howmanyfields %>

<td><b><%=rstemp(i).name%></b></td>

<% next %>

</tr>

<% now lets grab all the records

do while not rstemp.eof %>

<tr>

<% for i = 0 to howmanyfields

thisvalue=rstemp(i)

if isnull(thisvalue) then

thisvalue="&nbsp;"

end if%>

<td valign=top><%=thisvalue%></td>

<% next %>

</tr>

<%rstemp.movenext

loop%>

</table>

<%

rstemp.close

set rstemp=nothing

conntemp.close

set conntemp=nothing

end sub%>

大家看明白了吗?嘿嘿,不清楚,那就在到论坛中问问各位大虾吧!

文章来自http://www.aspcn.com asp中华网如要转载请注明出处,谢谢

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 不用数据源打开数据库(DSNless connection)
分享到: 更多 (0)