Foxtable(狐表)用户栏目专家坐堂 → [求助]请帮我看一下保存按钮哪里错了


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

主题:[求助]请帮我看一下保存按钮哪里错了

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110568 积分:562730 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/8 15:52:00 [显示全部帖子]

直接更新后台数据不行吗,为什么要先删除再插入?

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


加好友 发短信
等级:超级版主 帖子:110568 积分:562730 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/9 9:09:00 [显示全部帖子]

以下是引用ajie5211在2017/3/8 16:01:00的发言:

这是其它平台的数据库。哪个iOrd的值基本上等于行号,如果有插入时,从插入的这一行开始,后面的行iOrd全加了1,如果没有插入行,只是修改行,哪iOrd是不变的。所以想省事一点。从有变动或更新的行开始,后台数据全做掉,然后重新按当前修改的表建进去。


如果只是想从头更新一下iOrd的值,记录下最小的插入行的前一行的iOrd的值,直接保存表,然后从之前记录下的iOrd的值开始重新更新一下之后所有行iOrd的值即可,搞的那么复杂干啥!



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


加好友 发短信
等级:超级版主 帖子:110568 积分:562730 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/9 9:55:00 [显示全部帖子]

呵呵,那更简单了。干脆直接从第一行开始全部重置一下iOrd的值。

其实获取更新的最小行的值也不麻烦。做个全局变量,在删除、新增事件比较记录一下就可以了。

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


加好友 发短信
等级:超级版主 帖子:110568 积分:562730 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/9 14:32:00 [显示全部帖子]

SystemReady代码影响的,下面代码测试就知道了

SystemReady = False
DataTables("表A").AddNew
SystemReady = True

Output.Show(DataTables("表A").DataRows.Count)

建议改为StopRedraw,表又没事件,没有必要使用SystemReady 

DataTables("表A").StopRedraw
DataTables("表A").AddNew
DataTables("表A").ResumeRedraw

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


加好友 发短信
等级:超级版主 帖子:110568 积分:562730 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/3/9 14:41:00 [显示全部帖子]

也算是个bug吧,毕竟使用SystemReady的场景还是会有的,问题已经提交

 回到顶部