Foxtable(狐表)用户栏目专家坐堂 → [求助]行锁定


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

主题:[求助]行锁定

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
[求助]行锁定  发帖心情 Post By:2014/8/7 15:05:00 [只看该作者]

在窗口中录入出库明细,录完一条明细后点保存按钮,代码为:
with tables("出库表")
   .Current.Locked = True
            .Current.Save
end with
这样的话当前行就会锁定,但是关闭窗口以后,刚才锁定的行会自动解锁,
窗口的AfterClose事件为:
DataTables("出库表").LoadFilter = "_Identify Is NULL"
DataTables("出库表").Load
DataTables("出库表").AllowEdit = False

BeforeClose事件为:
Dim hasSave As Boolean = True
For Each r As Row In Tables("出库表").Rows
    If r.DataRow.RowState <> DataRowState.Unchanged Then
        hasSave = False
    End If
Next
If  not hasSave Then
    MessageBox.Show("请保存出库明细!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question)
    e.cancel  =True
End If
 
这些代码我测试过,都不会影响行锁定,另外表的表事件中也无与行锁定相关代码
请问各位大神,还可能什么地方对于行锁定有影响呢?
[此贴子已经被作者于2014-8-7 15:05:27编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/7 15:09:00 [只看该作者]

例子发出来看看.

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/8/7 15:12:00 [只看该作者]

外部数据源,不方便发

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/7 15:13:00 [只看该作者]

做个内部数据源的例子

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/8/7 15:15:00 [只看该作者]

稍等哈

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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/8/7 17:33:00 [只看该作者]

我查出原因了,就是在执行了DataTables("库存表").Load以后行锁定自动取消的

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


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

以下是引用lesliecheung912在2014-8-7 17:33:00的发言:
我查出原因了,就是在执行了DataTables("库存表").Load以后行锁定自动取消的

 

锁定不应该自动取消吧?因为锁了以后,数据是保存到数据库连去的,即便重新加载,也是锁定的。

 

 


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/8/8 8:56:00 [只看该作者]

现在就是因为重新Load以后出的问题,做了内部数据源例子无法再现...
所以不知为何是这样,重新加载跟取消行锁定按说一点关系都没有啊

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


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

以下是引用lesliecheung912在2014-8-8 8:56:00的发言:
现在就是因为重新Load以后出的问题,做了内部数据源例子无法再现...
所以不知为何是这样,重新加载跟取消行锁定按说一点关系都没有啊

 

你去看看你的数据库,执行了 r.Locked = True 和 r.Save 以后,你看看你的数据库对应的列_Locked是否为True了

 

如果不是True,你就看一下你是否在BeforeSaveDataRow事件写了取消等代码。


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


加好友 发短信
等级:一尾狐 帖子:452 积分:3015 威望:0 精华:0 注册:2014/4/23 17:12:00
  发帖心情 Post By:2014/8/8 10:08:00 [只看该作者]

保存以后,_locked变为True,但如果点了查询或者关闭窗口(查询按钮和窗口的AfterClose事件都有datatables("出库表").load的代码),
在执行完load以后,_locked就变为了False。
全局表事件BeforeSaveDataRow中无代码

 回到顶部
总数 11 1 2 下一页