网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP面向对象编程探讨及比较.
.用ASP建立站内搜索.
.动态网站首页的静态生成方法.
.用ASP编程实现网络内容快速查找.
.asp下闰年计算方法.
.清除浏览器历史记录代码.
.关于Adodb.Stream的使用说明.
.提高ASP页面的执行效率(中).
.SQL存储过程初探.
.微软dvwssr.dll后门.
.分解质因数(asp 分布递归法).
.MD5不可逆加密算法的ASP实现实例.
.判断输入是否为中文的函数.
.网页之定时器详解.
.IIS 处理 SEARCH 请求漏洞.
.isNull(str), isEmpty(str)和 st.
.一个查看ASP的JavaScript程序.
.JavaScript在ASP中实现掩码文本框.
.最大限度优化你的Asp性能.
.仅用xsl和asp实现分页功能.

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

发表日期:2000-4-28


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

  使用系统数据源(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中华网如要转载请注明出处,谢谢
上一篇:处理二进制数据 人气:12008
下一篇:Recordset对象方法详解 人气:12061
浏览全部DSNless的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐