Foxtable(狐表)用户栏目专家坐堂 → [讨论] 外部表自动编号的问题


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

主题:[讨论] 外部表自动编号的问题

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


加好友 发短信
等级:幼狐 帖子:89 积分:947 威望:0 精华:0 注册:2017/8/7 14:36:00
[讨论] 外部表自动编号的问题  发帖心情 Post By:2018/6/6 22:44:00 [显示全部帖子]

由于数据可以从其他系统导入,所以把自动编号功能做成内部函数,用菜单执行编号的内部函数,将表中未编号的所有记录一次性编号。用的SQL的Select语句,感觉执行效率很低,明显的停顿,是否有更高效的方法?



图片点击可在新窗口打开查看此主题相关图片如下:autoid.png
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编号.rar




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


加好友 发短信
等级:幼狐 帖子:89 积分:947 威望:0 精华:0 注册:2017/8/7 14:36:00
  发帖心情 Post By:2018/6/6 22:48:00 [显示全部帖子]

问题应该出在保存数据的那条语句上,但是如果不保存, Select又无法查询到最大编号值。

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


加好友 发短信
等级:幼狐 帖子:89 积分:947 威望:0 精华:0 注册:2017/8/7 14:36:00
  发帖心情 Post By:2018/6/6 23:05:00 [显示全部帖子]

上面的代码,如果把最后一句 DataTables("Orders").save() 注释掉,能看到赋值明显快很多,所以似乎效率最低的应该不是SQL语句而是Save()

但是如果赋值没有保存到外部数据库,所以下次查询不到最大值,结果所有的编号都是一样的。

有没有方法加快或者绕开Save()就能取得最大值? 

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


加好友 发短信
等级:幼狐 帖子:89 积分:947 威望:0 精华:0 注册:2017/8/7 14:36:00
  发帖心情 Post By:2018/6/6 23:13:00 [显示全部帖子]

还没开始尝试服务器端和客户端的应用,所以没看这个帮助。 我试试看吧,多谢甜版!



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


加好友 发短信
等级:幼狐 帖子:89 积分:947 威望:0 精华:0 注册:2017/8/7 14:36:00
  发帖心情 Post By:2018/6/8 12:11:00 [显示全部帖子]

谢谢甜版!

本实例是对批量导入的数据进行自动编号,可以理解为操作时不同项目类型的编号的最大值已经存在了,所以编号前直接查找最大值存储在临时表中,然后具体的记录根据该最大值编号,最后一次性保存, 对比下来速度会提高很多。没有测试大批量数据,有机会再试试更进一步优化。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:编号1.rar



另外可以考虑加上限制,批量编号的时候锁定表,以避免多人操作重复编号。

 回到顶部