主题:  ::.. UC之数据库链接的四种方法 ..::

UC无限概念 站长

职务:普通成员
等级:2
金币:1.0
发贴:397
注册:2003/3/2 14:56:31
#12004/3/18 22:40:24
坛子里有很多人在问想类似的问题,希望以后不要再问了,我把我所用的到连接方式都归类在下面了,请仔细看了后在操作你自己的数据库!

第一种:DSN数据源链接方式

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

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

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

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

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

如此,在你建立的ASP文件中,UltraDev4都会在页首加上调用该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文件,那么上述代码就无法适应了。还有一点就是你更改了链接字符串后在UltraDev中将无法使用记录集了,因为UltraDev认为你使用不符合规定的字符串。这样一来这种链接方式的实用价值大打折扣了,不过没有关系,我们还有其它的链接方法解决数据源问题。

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

在使用UltraDev4建立数据源链接时,点击“New”新建数据源时可以选择“Custom Connections String”自定义链接字符串项,如图2
在“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的链接方式。在UltraDev的新建数据源的“Connections String”对话框中

填入链接字符串为:

"Provider=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 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath( "/winworld/data.mdb"
%>

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

好了,这里一共说了四种在UltraDev4中数据源链接的方式,如果你有兴趣不妨都试试,找一种你最适合的方法去做。

下面是两种UltraDev & Dreamweaver MX 链接SQL Server 2000的写法,建议使用第二种:
第一种:
Driver={SQL Server};Server=服务器名或者IP地址;Database=数据库名;UID=用户名;PWD=用户密码
第二种:
Provider=SQLOLEDB;Data Source=服务器名或者IP地址;Initial Catalog=数据库名;User ID=用户名;Password=用户密码;