以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  项目开发好如何在局域里发布使用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184695)

--  作者:lgz518
--  发布时间:2022/12/23 13:19:00
--  项目开发好如何在局域里发布使用
问题一:看视频和帮助,都是企业内部开发使用的思维,先在局域网,建立共享文件,建库,建表使用,并非外部开发,外部用户使用,一般软件,开发者都在本机开发,开发好再给客户使用,其他软件公司做法是,在客户服务器安装系统和数据库,在客户端安装系统,连接局域网服务器上的项目系统的数据库,连接方法是在ACCESS或SQL的数据库上传到局域网服务器即可,狐表不是这样,数据连接常常不上,如何处理?
问题二:下面是帮助,说这样做可以任何目录都能正常连接数据源,可我这样做还是报错,提示找不数据源,是什么问题?

假定有一个成绩管理系统,使用的是一个Access格式的外部数据源,外部数据源的名称为“成绩”,外部数据文件名为"成绩数据.mdb",和项目文件处于同一目录之下。
为了保证这个项目复制到任何目录都能正常链接该外部数据源,可以在
BeforeConnectOuterDataSource事件中加入下面的代码:

If e.name = "成绩" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & 
"成绩数据.mdb;Persist Security Info=False"

End
 if

这里假定外部数据源的格式2000/2003,如果是2007,代码为:

If e.name = "成绩" Then
    e.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & e.ProjectPath & 
"成绩数据.accdb;Persist Security Info=False"

End
 if

如果有多个数据源,可以:

If e.name = "数据源1" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & 
"数据文件1.mdb;Persist Security Info=False"
ElseIf e.name = "数据源2" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & 
"数据文件2.mdb;Persist Security Info=False"

End
 if


--  作者:有点蓝
--  发布时间:2022/12/23 13:32:00
--  
Foxtable一样是这样用的。连不上一般原因
1、数据库路径不对
2、没有权限访问数据库文件

--  作者:lgz518
--  发布时间:2022/12/23 13:47:00
--  
If e.name = "JXC" Then \' 
    e.C & e.ProjectPath & "JXC.MDB;Persist Security Info=False" \'
End If



\'If e.name = "JXC" Then
\'    e.C & e.ProjectPath & "JXC.accdb;Persist Security Info=False"
\'End If

上面代码都不行,哪里错

--  作者:有点蓝
--  发布时间:2022/12/23 14:00:00
--  
项目文件所在的目录里没有JXC.MDB这个数据库文件。数据库有密码?

项目文件不要放到共享里使用


--  作者:lgz518
--  发布时间:2022/12/23 14:13:00
--  
数据库有密码,      项目文件没放到共享里使用
--  作者:有点蓝
--  发布时间:2022/12/23 14:14:00
--  
很多人都是不仔细看帮助乱用的:http://www.foxtable.com/webhelp/topics/1808.htm,第6点
--  作者:lgz518
--  发布时间:2022/12/23 15:04:00
--  

该通过网上邻居来选择路径和数据库文件,  是不是也是共享文件?先在局网做文件共享把数据库放进,再连接?



--  作者:lgz518
--  发布时间:2022/12/23 15:26:00
--  

假定有一个成绩管理系统,使用的是一个Access格式的外部数据源,外部数据源的名称为“成绩”,外部数据文件名为"成绩数据.mdb",和项目文件处于同一目录之下。
为了
证这个项目复制到任何目录都能正常链接该外部数据源,可以在
BeforeConnectOuterDataSource事件中加入下面的代码

If e.name = "成绩" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & 
"成绩数据.mdb;Persist Security Info=False"

End
 if


上面这个方法说可以在任何目录正常连接,还要做下面吗?



在局域网中使用的时候,即使服务器就是本机,也就是数据库文件在本机,也不要使用本地路径,因为如果使用"c:\\data"这样的路径,项目复制到其他电脑使用的时候,将无法连接数据库文件,因为其他电脑的"c:\\data",肯定不是服务器上的"c:\\data"。
所以,对于一个准备在局域网使用的项目,不管服务器是否是本机,都应该通过网上邻居来选择路径和数据库文件:

图片点击可在新窗口打开查看


--  作者:lgz518
--  发布时间:2022/12/23 15:27:00
--  

为了证这个项目复制到任何目录都能正常链接该外部数据源,可以在BeforeConnectOuterDataSource事件中加入下面的代码

If e.name = "成绩" Then
    e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & 
"成绩数据.mdb;Persist Security Info=False"

End
 if 


为何还有多时候连接不上?


--  作者:jialihaha
--  发布时间:2022/12/23 15:37:00
--  
e.ProjectPath 返回项目文件所在目录,这个只能针对那种整个项目拷贝到其他地方使用的情况,数据库文件也在里面的 
你这里要修改成局域网路径,而不是项目文件目录,这样肯定是找不到的
[此贴子已经被作者于2022/12/23 15:38:42编辑过]