Foxtable(狐表)用户栏目专家坐堂 → _Identify的问题


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

主题:_Identify的问题

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17564 威望:0 精华:0 注册:2014/7/29 19:09:00
_Identify的问题  发帖心情 Post By:2017/6/4 16:36:00 [只看该作者]

用sql保存数据,更新时都是用_identify列作用where 条件来对应sql数据库表中的每行数据比较方便 ,但有个最大的问题,foxtable中新增行的_identify列都是临时的,如果新增保存后没有重新加载一次,
这个_identify就和后台的_identify不一致,此时再次在同一个表中更改数据保存后就不生效,但因为一个表中用户可能新增了几行,又修改了几行旧的数据,保存时都是一次性保存的,保存后很难区分哪些是新增的哪些是旧的来重新加载一次
如果每次保存整个表都重新加载,很多时候都是修改旧的又觉得没必要,,,还有什么其他好办法?

谢谢!

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


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

 不是有行标记吗?不能判断是新增行或者修改行吗?


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


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

因为原来在sql保存的函数的末尾每个表都用了tb.AcceptChanges(),所以保存成功后无法识别行的状态,全部都是显示2未改变的,那只能将tb.AcceptChanges()这句代码从函数中移出到保存成功返回OK后重新加载完数据后才行,是不?

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


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

 你保存以后,不就是应该每一行都是已经保存的行了吗?有什么问题。

 

 


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


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

新增行时用sql保存过后,后台数据的_Identify列已经更新为真正的,而前台还没有,所以在保存完成后就想用下面的代码重新加载主表中改变过的所有行

For Each dr As DataRow In DataTables(winname & "_主表").DataRows
    If dr.RowState <> DataRowState.Unchanged Then
        dr.Load(False)

这句代码不管括号后是true或false运行后查看前台此行的_identify还是那个临时的,即没有重新加载
是不是因为前后两个_identify不相同所以dr.Load就不起作用了,但是如果使用datatables(winname & "_主表").Load整个表都生新加载后再查看此行的_identify就变为真正的那个了
        
        

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


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

 方法一:你自己做一个编号列来进行处理;

 

 方法二:新增的行,你可以用一列记录用户名和临时的_Identify值,保存后修改,就去查此列数据;

 

 方法三:那就整体重新加载吧。


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


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

那说明用sql保存的新增行,用dr.Load是不起作用就是了,就想确认下这点,,我的主表行全部都有一个唯一的单据识别列,我可以用它来实现,原想用_Identify要简单些
[此贴子已经被作者于2017/6/5 12:02:43编辑过]

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


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

想问下,能否在新增行就自动让sql后台数据库中的此表的_Identify先生成(sql中是自增列),然后前台表的_Identify就直接等于这个_Identify,避免前台表用临时_Identify产生的很多问题与麻烦.(不能用ft新增后行后就立即保存的方法,因为保存时的代码要求要验证很多必填项目,此时其他字段还没填写,保存不了)

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


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

 回复8楼,这样明细不行。既然是保存后生成,你没有保存,自然不会生成。

 

 先新增,不满足再删除咯。


 回到顶部