以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  locked = true  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=145169)

--  作者:qinjh18935180888
--  发布时间:2020/1/10 15:53:00
--  locked = true
老师:在窗口中加载的一个SQLTable,在数据变化事件中写了如下代码;

Select Case e.DataCol.Name
    Case "审核"
        If e.NewValue = True Then
            e.DataRow.Locked = True
        ElseIf e.NewValue = False Then
            e.DataRow.Locked = False
        End If
End Select

代码不起作用,为什么锁不住行呢?

--  作者:有点蓝
--  发布时间:2020/1/10 15:59:00
--  
代码没有问题,代码放在哪里?这个窗口表之后有没有使用fill,或者DataSource重新绑定表数据
--  作者:qinjh18935180888
--  发布时间:2020/1/10 16:04:00
--  
有使用,加载树的代码如下:

Dim aaa11 As String
aaa11 = "sele  ct * from {年度结算表} where " & filter
Tables("维护_Table5").Fill(aaa11,"  ",False)

[此贴子已经被作者于2020/1/10 16:04:40编辑过]

--  作者:有点蓝
--  发布时间:2020/1/10 16:13:00
--  
Fill过的表格事件要在全局表事件处理,看完这个帮助:http://www.foxtable.com/webhelp/topics/0671.htm
--  作者:qinjh18935180888
--  发布时间:2020/1/10 16:37:00
--  
老师:
  还有一个问题,窗口里的大部分的表,我是以Normal这种方式绑定的表,但好几个表经常有丢失数据的情况,没有规律,有时十天八天,有时一个多月,每次只丢一条,代码我想没有任何问题,很苦恼,现在我想改用SQLTable这种方式,是不是对多人同时编辑要好一些呢?

--  作者:有点蓝
--  发布时间:2020/1/10 16:45:00
--  
数据丢失和使用Normal还是SQLTable没有什么直接关系,找到源头杜绝才是关键

估计原因:
1、代码有缺陷
2、处理逻辑上有缺陷
3、没有保存成功
4、手误删除了

--  作者:有点蓝
--  发布时间:2020/1/10 16:52:00
--  
当然,并发编辑也有可能出现数据丢失的情况。比如两个人都编辑第一行的数据,A编辑先保存,B也编辑后保存,数据库实际上就是B编辑后的数据。A过几天在打开看就以为数据丢失了。这种问题可以看看:http://www.foxtable.com/webhelp/topics/3007.htm

这种问题确实不好分析,如果要彻查,建个日志表,把每条记录的增删改操作时间和用户都记录下来,跟踪一段时间看看
--  作者:qinjh18935180888
--  发布时间:2020/1/10 16:55:00
--  
老师:
    即使没有保存成功,但库里的数据也不应该丢失呀,关键是整行丢失,还不是数据篡改,另肯定没删除过。
[此贴子已经被作者于2020/1/10 17:08:13编辑过]

--  作者:有点蓝
--  发布时间:2020/1/10 17:10:00
--  
没有保存成功,数据库里根本就不会有数据。另外不要那么肯定,这个神仙都保证不了。既然叫做手误,就是根本就不知道什么时候删除了