主题:  一个古老的数据库连接(本地和上传后)问题,渴望解答...

tigers

职务:普通成员
等级:1
金币:0.0
发贴:5
注册:2001/11/27 20:34:56
#12001/11/27 20:35:51

用du设计的留言本,在本地调试好的,上传后不行,用du 设计好后的程序,自身产生一个connection文件夹,如何更改里面的连接,才能在服务器端运行(不需要设置系统dsn连接)。
例如connection文件里的

<%
FileName="Connection_odbc_conn_dsn.htm"
Type="ADO"
HTTP="false"
Catalog=""
Schema=""
MM_rsexam_STRING = "dsn=connexam;"
%>
如何更改才能使他载上传后可以用
谢谢,请知道的人一定要帮我,为这个问题搞了好久都没解决,麻烦讲的详细一点



蓝岭飞鸟

职务:普通成员
等级:2
金币:1.0
发贴:395
注册:2001/10/18 12:37:14
#22001/11/27 21:37:43
搜索一下本论坛吧,



tigers

职务:普通成员
等级:1
金币:0.0
发贴:5
注册:2001/11/27 20:34:56
#32001/11/27 22:18:13
搜索好像讲的不太详细,或许我有点笨
能就我的例子讲讲吗



charlyzhou

职务:普通成员
等级:1
金币:0.0
发贴:46
注册:2001/10/22 13:29:01
#42001/11/27 22:40:18
打开“easy”目录会发现建立站点时,UltraDev自动建立的一个名为“Connections”目录,打开后只有一个“measy.asp”文件,利用文本打开该文件可以看见是一段asp语句:
<%

' FileName="Connection_odbc_conn_dsn.htm"

' Type="ADO"

' HTTP="false"

' Catalog=""

' Schema=""

MM_measy_STRING = "dsn=m_easy;"

%>

很显然这是定义数据源链接的语句,如果要在服务器上运行肯定是没有人帮着建立系统DSN的,那么我们可以更改最后一条语句位数据库的相对路径

MM_measy_STRING = "dsn=m_easy;"

改为

MM_measy_STRING = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.Mappath("m_easy.mdb")

注意:这个写法是asp文件和数据库处于相同目录下的写法,如果数据库在其它目录中那么还需要修改路径的。其实这个方法也有弱点,就是当asp文件在根目录和子目录都有存在时,那么该文件就不知所措了。

那么使用第二种使用绝对路径的方法或者会好些,这是使用绝对路径链接时语句的写法

MM_eee_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=I:\easy\m_easy.mdb"

当然你不知道所拥有的空间在服务器上的真实路径也是没用的,不过我们可以通过asp语句来得到真实路径:

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

将该语句存为.asp文件上传至你的空间根目录,在浏览器中查看该文件后就可以得到真实的服务器路径了,那么再更改你语句中的路径就OK了。



tigers

职务:普通成员
等级:1
金币:0.0
发贴:5
注册:2001/11/27 20:34:56
#52001/11/27 23:10:33
多谢提供的答案,可还是不行,我的数据库文件exam.mdb是放在database下的,我把connection下的rslog.asp中的
-------------------------------------------------
<%
FileName="Connection_odbc_conn_dsn.htm"
Type="ADO"
HTTP="false"
Catalog=""
Schema=""
MM_rsexam_STRING = "dsn=connexam;"
%>
----------------------------
中的MM_rsexam_STRING = "dsn=connexam;"
改为MM_rsexam_STRING = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.Mappath("database/exam.mdb")
在本机测试还是不行,数据库问题
为何



tigers

职务:普通成员
等级:1
金币:0.0
发贴:5
注册:2001/11/27 20:34:56
#62001/11/28 0:10:14
感谢大家,这里实在是个好地方,人们是那么的乐于助人,不过我的问题还是解决了一半
我把数据库exam.asp从database中拉出来,中的MM_rsexam_STRING = "dsn=connexam;"
改为MM_rsexam_STRING = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="& Server.Mappath("exam.mdb")

可以访问,可不拿出来有该做呢?



charlyzhou

职务:普通成员
等级:1
金币:0.0
发贴:46
注册:2001/10/22 13:29:01
#72001/11/28 17:24:54
使用第二种使用绝对路径的方法或者会好些