以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  二进制列的多文件管理中的错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62355)

--  作者:liu_songsong
--  发布时间:2014/12/30 14:07:00
--  二进制列的多文件管理中的错误

由于“新增行的_Identify列的内容是临时性的,保存的时候,_Identify列会重新生成一个值”

如果临时的_Identify值在“附件”表的“员工编号”中已经存在,会发生改变导致错误。

 

比如新增一行后_Identify=1,增加照片后,附件表员工编号=1,

重新打开系统,在不加载数据的情况下,新增加1行生成临时_Identify=1,

保存时_Identify=2,同时原来第一行的员工编号变成了2(原本第一行员工的照片变成第二行员工的照片)。

如何处理?


--  作者:Bin
--  发布时间:2014/12/30 14:09:00
--  
保存的时候,才会生成真正的_IDentify   新增的时候只是临时的
--  作者:liu_songsong
--  发布时间:2014/12/30 14:26:00
--  
在临时的改变成真正的_IDentify  时 ,会导致“附件”表的“员工编号”的变化,而导致附件中的本来其他员工的照片变成新增加员工的。
--  作者:有点甜
--  发布时间:2014/12/30 15:06:00
--  
以下是引用liu_songsong在2014-12-30 14:26:00的发言:
在临时的改变成真正的_IDentify  时 ,会导致“附件”表的“员工编号”的变化,而导致附件中的本来其他员工的照片变成新增加员工的。

 

在DataRowAdded事件,写入代码

 

e.DataRow.Save


--  作者:liu_songsong
--  发布时间:2014/12/30 18:26:00
--  

非常感谢!这个问题解决了,但是保存之前做的判断,比如姓名不为空等就不能使用了。

如何处理?感谢


--  作者:有点甜
--  发布时间:2014/12/30 19:19:00
--  

SystemReady = False
e.DataRow.Save
SystemReady = True

 

http://www.foxtable.com/help/topics/2218.htm

 


--  作者:liu_songsong
--  发布时间:2014/12/30 20:17:00
--  
按照帮助理解应该是可以实现,但是测试中还是执行了beforesavedatarow的判断代码
--  作者:有点甜
--  发布时间:2014/12/30 20:20:00
--  
以下是引用liu_songsong在2014-12-30 20:17:00的发言:
按照帮助理解应该是可以实现,但是测试中还是执行了beforesavedatarow的判断代码

 

那就定义一个变量,赋值,然后在beforesavedatarow里面判断,某值的时候,不执行检测的代码。


--  作者:liu_songsong
--  发布时间:2014/12/30 21:06:00
--  
感谢有点甜,测试可以。