Foxtable(狐表)用户栏目专家坐堂 → [求助]mysql做数据库,把数据load下来


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

主题:[求助]mysql做数据库,把数据load下来

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


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]mysql做数据库,把数据load下来  发帖心情 Post By:2021/5/30 22:11:00 [只看该作者]

之前官方回复是不直接支持mysql,这就直接导致要把一些比较稳定的、但数据量比较大的表数据整到本地,会很麻烦,因为不支持象load的方法

比如一个表A的数据有5W行。
按新版本的说法,是fill方法重写之后,效率大大提升(我还没有实测),那是不是就表示可以用mysql从后台查询出一个临时表X(包括了表A的所有字段,但临时表只检索出符合条件的数据),再用fill的方法与临时表X的数据整到表A中去?

如果这样是可行的,要怎么用呢?(从mysql中把符合条件的数据找出来,这个我知道)

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/30 22:21:00 [只看该作者]

从mysql中把符合条件的数据找出来,直接绑定到窗口表即可

tables(“窗口表”).DataSource = mysql组件查询的system.data.datatable

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


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/6/1 17:19:00 [只看该作者]

我是要把稳定数据load到了本地,重复引用。只是查出数据放到窗口表,就不问了

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/1 17:29:00 [只看该作者]

这种只能使用.net的数据表system.data.datatable,不能使用Foxtable的datatable。

到全局变量里定义即可

public dt as system.data.datatable

需要的时候加载数据
dt = mysql组件查询的system.data.datatable

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


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/6/1 20:34:00 [只看该作者]

有无方法把dt的数据copy到表A中?逐行复制就算了,3万行逐行复制太慢

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111390 积分:567014 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/6/1 20:38:00 [只看该作者]


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


加好友 发短信
等级:六尾狐 帖子:1279 积分:7959 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2021/6/1 21:28:00 [只看该作者]

思路1:
第一步:把mysql数据加载到本地的临时DataTable
第二步:用SqlBulkCopy,把临时数据批量插入到Mssql的数据库

思路2:
使用专业的数据搬运工具,行业名词叫ETL工具
例如阿里巴巴出的DataX
把数据从MySql搬运到Mssql,平均1.5w条1秒
到了Mssql,你想怎么折腾都可以

[此贴子已经被作者于2021/6/1 21:35:09编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/6/2 14:08:00 [只看该作者]

思路一的第一步没有问题。第二步就有偏差了,如果已经用了masql,就没第一步了。前提:只用mysql数据库。要解决的问题:将查询出来的数据copy到表A中

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


加好友 发短信
等级:六尾狐 帖子:1279 积分:7959 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2021/6/2 15:01:00 [只看该作者]

你要copy到的表A,表A在那里?是在mysql里的表A?还是Mssql的表A?还是内部表的表A?

①mysql的表A,请直接用mysql语句表对表拷贝
②mssql的表A,可以用DataX拷贝,也可以SqlBulkCopy批量插入
③内部表的表A,这个本身就是弱鸡性能的表,就没任何批量方法,管你从什么地方来
[此贴子已经被作者于2021/6/2 15:02:21编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2247 积分:18514 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2021/6/2 15:29:00 [只看该作者]

1、最开始使用的access做数据库,但因为access本身的性能、广域网应用方面的问题,准备换数据库
2、有两个选项,一是mssql,二是mysql,mysql免费但官方不直接支持,所以现在在尝试mysql
3、准备使用客户端+数据库的方式
4、有一个数据表X,它的信息稳定较少变化,但数据行很多(现在是10W行级别的),而且有很多表会引用到它,在它的基础上应用一些表达式列来解决业务问题
5、现在使用mysql的问题:用sql查询出来的表只能加载到窗口中,一是每次都要查询大量数据性能可能会有问题,二是既然很多业务要用到它,就表示不同的窗口表要增加临时列,还要设表达式,远不如用视图来得方便。

6、所以我就想把mysql的表X的数据一次性加载到客户端上,以后不管哪个业务引用到它,就不用到后台数据库中取了。
但狐表没有mysql的load方法。

所以,所想的是将外部表X形成一个查询表DT,然后把DT的数据复制到客户端的表X(它本身映射的就是外部表X)中。
[此贴子已经被作者于2021/6/2 15:31:43编辑过]

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