林海谐缘

 找回密码
 审核注册
搜索
查看: 1797|回复: 0

DW-MX数据源链接的四种方法

[复制链接]
发表于 2006-5-13 15:07:51 | 显示全部楼层 |阅读模式
在使用DW-MX制作WEB应用程序的时候,数据源链接是一个很重要的环节。虽然这个问题解决并不困难,并且在DW-MX的帮助文件中也可以找到答案,不过在论坛上对它有疑问的网友并不在少数。我在利用DW-MX开发WEB应用程序的过程中,共了解了四种数据源链接的方法,下面就举例链接Access库结合自己的体会一一说明,希望对你在使用DW-MX的时候有所帮助。
第一种:DSN数据源链接方式

这是最常用的链接方式,在控制面版中的ODBC数据源管理器中建立一个系统DSN,指向硬盘上存在的MDB数据库,然后在DW-MX中建立一个数据源链接指向该DSN即可。

这种方式是最方便的做法,不需要写任何链接字符串,都是通过对话框完成的。

但是这种链接方式有一个非常大的弊端,就是当你完成了WEB应用程序将它上传到服务器上时,由于服务器上没有建立相应的系统DSN数据源而ASP文件无法正确执行。所以这种链接方式一般在本地调试中较多采用,如果要在远程服务器上使用还要更改链接字符串,这在后面会说到。

完成DSN数据源链接后在你的站点根目录下会产生一个系统目录“Connections”,目录中有一个ASP文件,文件名就是以你在DW-MX中建立的数据源链接的名字。这种链接方式产生的代码如下:

<%
FileName="Connection_odbc_conn_dsn.htm"
Type="ADO"
HTTP="false"
Catalog=""
Schema=""
MM_forum_STRING = "dsn=forum;"
%>

如此,在你建立的ASP文件中,DW-MX都会在页首加上调用该ASP文件的语句,比如:

<!--#include file="Connections/forum.asp" -->

当你在页面内建立记录集时,就会使用该文件中设置的变量“MM_forum_STRING”来指定数据源,比如建立一个名字为“w1”的记录集,代码如下:

<%
set w1 = Server.CreateObject("ADODB.Recordset")
w1.ActiveConnection = MM_forum_STRING
w1.Source = "SELECT * FROM w_win"
w1.CursorType = 0
w1.CursorLocation = 2
w1.LockType = 3
w1.Open()
w1_numRows = 0
%>

第二种:文件相对路径链接

这是以前最常用的修改方法,在本地使用DSN完成数据源链接后,修改“Connections”目录中的ASP文件成为如下代码:

<%
FileName="Connection_ado_conn_string.htm"
Type="ADO"
HTTP="false"
Catalog=""
Schema=""
MM_forum_STRING = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.Mappath("data.mdb")
%>

这种链接方式是利用ASP中的“Server.MapPath”方法,将虚拟路径转换为实际路径,不至于ASP文件找不到数据库。这个方法曾是网上用得最多的,但是也有两点非常不合适之处。比如你的数据库放在网站根目录下,而你在根目录下存在ASP文件和有一个文件夹,文件夹中又有ASP文件,那么上述代码就无法适应了。还有一点就是你更改了链接字符串后在DW-MX中将无法使用记录集了,因为DW-MX认为你使用不符合规定的字符串。这样一来这种链接方式的实用价值大打折扣了,不过没有关系,我们还有其它的链接方法解决数据源问题。

第三种:硬盘绝对路径链接

在使用DW-MX建立数据源链接时,点击“New”新建数据源时可以选择“Custom Connections String”自定义链接字符串项

在“Connections String”内填入字符串:

Driver={Microsoft Access Driver (*.mdb)};DBQ=I:\winworld\data.mdb

这样设置后在系统目录“Connections”中的ASP文件代码如下:

<%
FileName="Connection_ado_conn_string.htm"
Type="ADO"
HTTP="false"
Catalog=""
Schema=""
MM_forum_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=I:\winworld\data.mdb"
%>

这种链接方式是采用硬盘的实际路径访问数据库,这样基本没有什么错误发生,只是前提是要你知道数据库所存在硬盘的位置,如果你是申请或者购买来的空间一般不会知道当前硬盘路径不过我们可以通过ASP程序中的“Server.MapPath”方法得到真实路径,代码如下:

<%= Server.MapPath(".")%>

将该语句存为ASP文件上传至你的空间,在浏览器中查看该文件后就可以得到当前位置的硬盘路径了。

第四种:站点根目录路径链接

这是一种OLEDB链接方式,在性能上要优于前面三种ODBC的链接方式。在DW-MX的新建数据源的“Connections String”对话框中填入链接字符串为:

"rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( "/winworld/data.mdb")

其中“winworld”是站点根目录名,设置完成后在系统目录“Connections”中的ASP文件代码如下:

<%
FileName="Connection_ado_conn_string.htm"
Type="ADO"
HTTP="true"
Catalog=""
Schema=""
MM_forum_STRING = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( "/winworld/data.mdb")
%>

这种相对站点根目录的链接方式应该是最完美的,因为它在设置字符串后不需要任何改动就可以上传到空间或者移动到其它的WEB共享目录中执行,并且在DW-MX中的数据绑定视窗中也可以正常操作。

好了,这里一共说了四种在DW-MX中数据源链接的方式,如果你有兴趣不妨都试试,找一种你最适合的方法去做。
您需要登录后才可以回帖 登录 | 审核注册

本版积分规则

QQ|手机版|小黑屋|林海谐缘论坛 ( 豫ICP备07015145号 ) |
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论 | 管理员:linker(QQ:80555546) 群:3067918

GMT+8, 2024-11-21 20:13 , Processed in 0.025021 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表