Foxtable(狐表)用户栏目专家坐堂 → 项目本地数据库使用问题


  共有1778人关注过本帖树形打印复制链接

主题:项目本地数据库使用问题

帅哥哟,离线,有人找我吗?
天若千颖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
项目本地数据库使用问题  发帖心情 Post By:2016/8/5 10:47:00 [只看该作者]

红袍老师,我在项目中为了保存用户的一些个人的资料,有的模块使用的是本地数据库,不同步到远程服务器.

 

如果我使用的是Foxtable的内部数据库,当用户升级软件的时候,会用新版本的数据覆盖以前的吗?比如说,在老版本的程序中,用户在一个内部数据的表中已经有10行的数据,而我提供的升级版的程序中,这个同名的表中是没有任何数据的,用户一旦升级,会不会把自己的数据给覆盖掉了?

 

如果我使用Access数据来存储用户个人表格,软件更新的时候不把这个Access文件放入升级包,这倒是不回覆盖用户自己的数据,但是一旦用Access数据,原先设置好的数据链接一旦用到客户的电脑上就不对了,又得手动设置数据源.

 

在开发版的程序中,本地ACCESS数据默认用的是绝对路径

 

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Soft\fox\LocalData\QCLNGDMS.mdb;Persist Security Info=False  '绝对路径

 

可以改为相对路径,比如:

 

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\LocalData\DMS.mdb;Persist Security Info=False   '相对路径

 

但是一旦发布了程序,这个数据库的地址又变为如下才对:

 

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Soft\fox\project\LocalData\DMS.mdb;Persist Security Info=False

 

也就说之前设置的相对路径不对,用户登录后,必须管理员到用户的电脑上手动设置数据路径.

 

能否设置一个通用的相对路径地址,不用每个用户都手动去设置数据源呢?

 

[此贴子已经被作者于2016/8/5 11:07:37编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/5 11:16:00 [只看该作者]

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

End
 if

我试试这个相对路径的方法。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 11:22:00 [只看该作者]

 去编写 BeforeConnectOuterDataSource 事件

 

http://www.foxtable.com/webhelp/scr/0682.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/5 11:45:00 [只看该作者]

在数据源的地方还是根据绝对路径设置外部数据源,然后在项目设置的BeforeConnectOuterDataSource中设置:
 


此主题相关图片如下:qq截图20160805115116.png
按此在新窗口浏览图片

 

Local是我本地数据源的名称

数据文件放在项目文件夹下LocalData文件夹下DMS.mdb文件中。

[此贴子已经被作者于2016/8/5 11:52:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/5 11:48:00 [只看该作者]

写了半天  代码都显示不出来  部分被自动隐藏了。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 11:53:00 [只看该作者]

代码

 

e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.projectPath & "\LocalData\QCLNGDMS.mdb;Persist Security Info=False"


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 11:54:00 [只看该作者]

再有,你的mdb数据库,要放在发布后的文件夹的project文件夹才行吧?


 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/5 12:34:00 [只看该作者]

我发布项目的时候添加了这个文件夹,数据库文件会自动复制到Project文件夹下。

启动的时候还是会提示Local数据不存在,请重新设置。

外部数据源这个地方,还是应该按照绝对路径添加一个Local设置吗?
 
 
[此贴子已经被作者于2016/8/5 13:34:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/8/5 12:47:00 [只看该作者]

2003版本的数据应该用  Microsoft.Jet.OLEDB.4.0  而不是Microsoft.ACE.OLEDB.12.0  估计问题在这里。

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 14:25:00 [只看该作者]

按照6楼设置,只要对应的文件夹存在,就不可能报错。注意,是publish文件夹下的project文件夹啊

 回到顶部
总数 11 1 2 下一页