|
|
主题: 关于数据库连接的问题,请指教,谢谢!
|
 wangzairen
职务:普通成员
等级:2
金币:0.0
发贴:291
注册:2003/1/24 12:45:59
|
#12003/2/27 11:18:10
我在用字符串做一个数据连接时,用到的连接语句是: MM_conn_STRING = "Driver={Microsoft Access Driver (*.mdb)};dbq=" &Server.Mappath("\exec.mdb") %> 数据库路径没有错,绝对路径是:E:\MXEXEC\EXEC\EXEC.MDB 可是测试时出现了下面的错误: 图片如下:  不知道为何,请指教,谢谢!
|
 沉默是金
职务:普通成员
等级:6
金币:11.2
发贴:4357
注册:2004/2/18 11:17:25
|
#22003/2/27 13:44:06
干嘛要用绝对路径呢?
难人一个……
|
 wangzairen
职务:普通成员
等级:2
金币:0.0
发贴:291
注册:2003/1/24 12:45:59
|
#32003/2/28 8:15:32
我用的是相对路径啊,用SERVER MAPPATH啊,后来用OLEDB用绝对路径一试才连上,真是出鬼了,怎么回事啊.总之就是用相对路径不行啦.高手快出招啦!
|
 zhongrq
职务:普通成员
等级:1
金币:0.0
发贴:24
注册:2001/3/29 20:11:22
|
#42003/2/28 18:13:43
UltraDev数据源链接的四种方法 第一种: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文件的语句,比如: 当你在页面内建立记录集时,就会使用该文件中设置的变量“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”自定义链接字符串项,在“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中的数据绑定视窗中也可以正常操作。 ASP中五种连接数据库的方法 第一种: strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("aspfree.mdb") set conn = server.createobject("adodb.connection") conn.open strconn 这种方法多用在ACCESS中 第二种:strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1;UID=LoginID;PWD=Password;DATABASE=Database_Name set conn = server.createobject("adodb.connection") conn.open strconn 这种方法多用在SQL SERVER中 第三种:strconn="Driver={MicrosoftAccessDriver(*.mdb)};" &_ "DBQ=F:\Inetpub\wwwroot\somedir\db1.mdb;DefaultDir=f:\Inetpub\wwwroot\somedir;uid=LoginID;" &_ "pwd=Password;DriverId=25;FIL=MSAccess;" set conn = server.createobject("adodb.connection") conn.open strconn 第四种:运用系统数据源 set conn = server.createobject("adodb.connection") conn.open "Example" 第五种:使用ODBC数据源,前提是你必须在控制面板的ODBC中设置数据源 set rs = server.createobject("adodb.recordset") rs.open "tblname", "DSNName", 3, 3
|
 wangzairen
职务:普通成员
等级:2
金币:0.0
发贴:291
注册:2003/1/24 12:45:59
|
#52003/3/3 14:36:46
多谢前辈指教!!!
|