Foxtable(狐表)用户栏目专家坐堂 → 从外部数据源fill数据到内部表中保存不生效?


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

主题:从外部数据源fill数据到内部表中保存不生效?

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
从外部数据源fill数据到内部表中保存不生效?  发帖心情 Post By:2017/3/18 18:13:00 [只看该作者]

项目是外部数据源,但在项目中有一个内部表如表A(表结构与外部数据不一致)
打开项目后在命令窗口中用如下代码向表A中fill了外部数据源的数据并且保存了
DataTables("表A").Fill("Se ect * From {订单}", Mydata, False)
DataTables("表A").Save()

执行过后重新打开项目结果表A中还是原来的数据,为什么?是不是要表结构一样才可以。
就是想有几个内部表可以人为的从另外的数据源中fill数据进来,保存后重新打开项目时数据还在,要怎么实现?
谢谢!

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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/3/19 21:10:00 [只看该作者]

这种方法加载的数据表实际是外部数据表
1.修改的值是可以保存在后台的.
2.重启项目后,不复存在(其特点就是体现动态).
3.一般是临时性编辑修改数据用.

[此贴子已经被作者于2017/3/19 21:13:41编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/3/20 9:20:00 [只看该作者]

没看明白,那从外部数据源中的某个表加载数据保存到内部表中要怎么实现?还是没办法实现?

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


加好友 发短信
等级:六尾狐 帖子:1249 积分:9474 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/3/20 11:28:00 [只看该作者]

方法1.使用菜单添加数据源和外部表
方法2.使用OutTableBuilder代码添加

以上两种方法加载引入的数据表不会出现不会保存的问题.
[此贴子已经被作者于2017/3/20 11:31:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/20 11:54:00 [只看该作者]

以下是引用HappyFt在2017/3/20 9:20:00的发言:
没看明白,那从外部数据源中的某个表加载数据保存到内部表中要怎么实现?还是没办法实现?

 

只能用合并,http://www.foxtable.com/webhelp/scr/2137.htm

 


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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/3/20 13:13:00 [只看该作者]

OuterTableBuilder从外部数据源取数每次都会新增一个表,如果表A原来已经存在就不可以。
我的目的就是内部表A,主要用于存储多语言版本的字段品,控件名称等,这个表的数据会比较大1,2万行,有时需要从外部数据源中加载新的数据进来更新一下,每次打开项目都加载的话影响速度,看来只能用合并了。
谢谢!

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/3/20 16:24:00 [只看该作者]

还有一个办法就是先将内部表A删除,再重新从外部数据源中加载数据来生成一个新的表A
Dim Builder As New ADOXBuilder
Builder.Open()
With Builder
    .Del eteTable("表A")
End With
Builder.Close()

Dim q As new OuterTableBuilder
q.TableName = "表A"
q.ConnectionName = Mydata
q.Se lectString = "Se lect * From {订单}"
q.B uild

但上下两部份代码在命令窗口中一次执行会报错,删除内部表的代码要怎么才行,这样是否比merge效率更高?


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/20 17:30:00 [只看该作者]

回复7楼,你这种方法,你操作的依然是外部数据源的订单表。

 

至于删除报错的问题,你删除后,记得要unload表A。


 回到顶部