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

不是谁都不可以

不是谁都不可以

2016-01-29 17:56

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

  使用系统数据源(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:thatserveraccount17nwind.mdb"一样。不过Sever.MapPath方法能够将相对路径转为绝对路径。我们就不用担心了!

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


<HTML<HEAD
<TITLEnwind.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
<TITLEsqldsn.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
<TITLEsqlDSNless.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 isnul
展开更多 50%)
分享

猜你喜欢

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

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

VB与大型数据库无数据源的连接

编程语言 网络编程
VB与大型数据库无数据源的连接

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

不通过数据源完全控制MDB数据库

ASP
不通过数据源完全控制MDB数据库

Jsp连接Access数据库(不通过建立ODBC数据源的方法)

Web开发
Jsp连接Access数据库(不通过建立ODBC数据源的方法)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

通过VS中的数据源选择对话框简单实现数据库连接配置

Web开发
通过VS中的数据源选择对话框简单实现数据库连接配置

asp不用DSN访问数据库

ASP
asp不用DSN访问数据库

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Windows XP:巧屏蔽插件安装窗口方法

Windows XP:巧屏蔽插件安装窗口方法

清除任务栏隐藏图标记录

清除任务栏隐藏图标记录
下拉加载更多内容 ↓