Foxtable(狐表)用户栏目专家坐堂 → [求助]关于外部数据源一个棘手的问题求教大师们


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

主题:[求助]关于外部数据源一个棘手的问题求教大师们

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


加好友 发短信
等级:婴狐 帖子:15 积分:197 威望:0 精华:0 注册:2017/10/16 9:54:00
[求助]关于外部数据源一个棘手的问题求教大师们  发帖心情 Post By:2018/3/21 13:28:00 [只看该作者]

项目是这样的,用sqlserver作为远程数据库,access数据库作为用户本地数据,用来保存用户个性化的数据。现在有个问题,通过升级来修改用户本地的数据库,例如在access表中添加一个表customer:在项目启动的时候做判断用户表是否已经创建,如果没有创建。但是在事件BeforeConnectOuterDataSource和BeforeLoadOuterTable事件中均无法获取connects对象(运行直接退出),项目加载后就会提示 加载表“customer”失败。请问这种情况,如何在foxtable加载外部数据表之前做判断呢?或者如何在BeforeConnectOuterDataSource或BeforeLoadOuterTable事件中创建外部数据库链接,并读取数据库中表是否存在呢?


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


加好友 发短信
等级:婴狐 帖子:15 积分:197 威望:0 精华:0 注册:2017/10/16 9:54:00
  发帖心情 Post By:2018/3/21 13:34:00 [只看该作者]

暂时通过ChangeConnection方式更换外部数据源的方式能解决,但是这个方法有个缺点:必须另外一个外部数据源的数据库有(内部数据表不支持),而且数据表结构要一样才可以,这样就需要在slqserver上创建一样的表才行,就会产生冗余。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/21 15:00:00 [只看该作者]

带上一个升级文件 xxx.txt 用来记录升级信息(也可以用其余方式,比如 saveconfigvalue)

 

打开项目,如果存在 xxx.txt 文件,说明是新的程序,设置public变量 _IsNew = True

 

BeforeLoadOuterTable事件写代码

 

If _IsNew Then

    e.Cancel = true '不加载任何表格

End If

 

然后,在在AfterOpenProject事件,写代码

 

If _IsNew Then

    '创建新的表格

    '重新load全部表格 http://www.foxtable.com/webhelp/scr/2755.htm

    '删除xxx.txt文件

End If

[此贴子已经被作者于2018/3/21 15:01:26编辑过]

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


加好友 发短信
等级:婴狐 帖子:15 积分:197 威望:0 精华:0 注册:2017/10/16 9:54:00
  发帖心情 Post By:2018/3/21 16:16:00 [只看该作者]

多谢大神,完美解决问题,结贴

 回到顶部