主题:  再谈DW&UD数据库的驱动!

lazybugs

职务:普通成员
等级:1
金币:0.0
发贴:75
注册:2001/10/27 10:29:31
#12002/6/23 13:38:27
在大家熟悉的UD和MX里面,一般有两个方法连接数据库,一个是DSN,一个就是"custom connection string",这里以后者连接Access数据库连接为例,说明一下,同时,讨论一下出现的问题,该怎么解决?
在选择了"custom connection string"后,会出现这么个对话框,其中选项的意思如下:

"connection name"
这是设置连接的名字,没有特别的命名规则

"connection String"
这里呢,需要手工输入数据库驱动和数据库的位置,具体代码在后面会写到(注意,引号不能省略)

"DreamWeaver should connect"这是设置数据库运行的方式,有两个选项,
一个是
"using Driver on testing Server" 如果选择了这一项,那么数据库就必须是用相对路径来表示了,同时,数据库驱动的代码也要相应的发生变化,如下:
"Driver={Microsoft Access Driver (*.mdb)};"&Server.MapPath("../database/new.mdb")
这个时候,你可以点一下"Test"按钮,一定会是successful,表面上看来,好像是成功地连接上了数据库,其实不是这样的,当你插入了相应字段的内容在网页后,进行预览的时候,浏览器就会很忠实的告诉你,在第XXX行的位置发生了错误,注意,我的IIS设置和site的设置肯定是没有问题,同时,也没有用localhost,而是设置了相应的IP,来测试网页的.
这是为什么呢?我也不知道,不知道面包或者是老黄牛对这个有什么样的解释,可以说,这个问题已经困扰了我半年了呢!!!:rolleyes :mad

另一个连接方式就是:
"using Driver on this machine"
具体是什么意思呢,我理解是这样的,用本地机器的绝对路径来测试数据库!所以,他的驱动程序代码的写法也就不一样了,不能用Server.MapPath,用了他,就肯定驱动不了数据库,而且DW会很忠实的告诉你,出现了非法字符,或者是不可预知的错误!你就必须这样写代码:
"Driver={Microsoft Access Driver (*.mdb)};DBQ=e:\input\database\new.mdb"
注意,这里指定的可是绝对路径!但是,这样就造成了程序的移植性差,换个机器,就必须重新指定数据库的位置,很是麻烦!!!!!
不过,用这个方法驱动的数据库,不管用什么样的方法测试,都可以正常显示数据库记录和信息,没有用第一种方法的时候出现的错误!

好了,就这么多了,希望大家能从这里收获点东西,同时,解决一下上面出现的那个问题,难道就一定要用绝对路径吗?我很迷惑!
相关的贴图,还要等到我传到别的地方再说了吧!



xiaoyue_5d

职务:普通成员
等级:1
金币:0.0
发贴:72
注册:2002/7/2 11:17:17
#22002/7/16 11:52:02
very good!!!!!!



万木春

职务:普通成员
等级:1
金币:0.0
发贴:165
注册:2002/6/17 21:30:27
#32002/7/21 11:34:44
我用"Driver={Microsoft Access Driver (*.mdb)};DBQ=e:\input\database\new.mdb"
总是出现数据源找不到



xiaoyue_5d

职务:普通成员
等级:1
金币:0.0
发贴:72
注册:2002/7/2 11:17:17
#42002/7/21 14:21:03
可以的
你的连接有问题.
引号不对

"Driver={Microsoft Access Driver (*.mdb)};"DBQ=e:\input\database\new.mdb

编辑历史:[这消息被xiaoyue编辑过(编辑时间2002-07-21 18:48:30)]


lazybugs

职务:普通成员
等级:1
金币:0.0
发贴:75
注册:2001/10/27 10:29:31
#52002/7/24 11:01:07
不是引号问题,而是你的数据库位置的问题!

DBQ=e:\input\database\new.mdb

把上面的数据库位置改成你数据库位置的物理位置就可以了,比如说在哪个盘里面,哪个目录里面就可以了的!