Foxtable(狐表)用户栏目专家坐堂 → 独占式编辑报错是什么原因呢(求助)


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

主题:独占式编辑报错是什么原因呢(求助)

美女呀,离线,留言给我吧!
baixiaobai
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:317 积分:2555 威望:0 精华:0 注册:2013/3/8 0:32:00
独占式编辑报错是什么原因呢(求助)  发帖心情 Post By:2013/3/16 5:29:00 [只看该作者]

只要编辑一次后,就被锁上再也打不开了,总是提示,开发者正在编辑此行,我用开发者的账户也是一样打不开!
[此贴子已经被作者于2013-3-16 6:35:17编辑过]

 回到顶部
美女呀,离线,留言给我吧!
baixiaobai
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:317 积分:2555 威望:0 精华:0 注册:2013/3/8 0:32:00
  发帖心情 Post By:2013/3/16 6:32:00 [只看该作者]

还是不行`总是被锁上``别的用户怎么也编辑不了了,只要打开编辑窗口一次,再别的用户或者是自己,都死活编辑不了了,就一直提示.开发者正在编辑此行!该怎么办呢
[此贴子已经被作者于2013-3-16 6:33:44编辑过]

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


加好友 发短信
等级:四尾狐 帖子:880 积分:9011 威望:0 精华:3 注册:2012/4/22 18:06:00
  发帖心情 Post By:2013/3/16 8:17:00 [只看该作者]

代码贴出来看看,应该是你退出窗口时没有将编辑者列的用户名清空导致的

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/16 8:26:00 [只看该作者]

你做个例子发上来看看


 回到顶部
美女呀,离线,留言给我吧!
baixiaobai
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:317 积分:2555 威望:0 精华:0 注册:2013/3/8 0:32:00
  发帖心情 Post By:2013/3/16 8:31:00 [只看该作者]

对`就是没有清空,我刚在外部数据表里看了,之前登录的还在上面显示呢


 回到顶部
美女呀,离线,留言给我吧!
baixiaobai
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:317 积分:2555 威望:0 精华:0 注册:2013/3/8 0:32:00
  发帖心情 Post By:2013/3/16 8:32:00 [只看该作者]

If e.Row("编辑者") = User.Name Then '如果编辑者是当前用户
    Return
End If
Dim cmd As New SQLCommand
cmd.C
Dim exp As String  = "编辑者 Is Null And [_Identify] = " & e.Row("_Identify")
cmd.CommandText = "Update {定单主表} Set 编辑者 = '" & User.Name & "' Where " & exp
If cmd.ExecuteNonQuery = 1 Then
    e.Row("编辑者") = User.Name
    Forms("编辑窗口").Open()
Else
    cmd.CommandText = "Select 编辑者 From {定单主表} Where [_Identify] = " & e.Row("_Identify")
    Dim nm As String = cmd.ExecuteScalar
    If nm > "" Then
        MessageBox.show(nm & "正在编辑此行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        MessageBox.show("此行可能已经被删除,无法编辑!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
End If

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/16 8:52:00 [只看该作者]

1、首先这行改为:

Dim exp As String  = "编辑者 Is Null And [_Identify] = " & e.Row("_Identify")

 

Dim exp As String  = "(编辑者 Is Null Or 编辑者 = '" & User.Name & "' And [_Identify] = " & e.Row("_Identify")

 

这样始终提示某个用户正在编辑后,例如提示开发者正在编辑,你就用开发者登陆,可以解锁。

 

2、退出编辑的时候,一定要记得用Update语句将此行编辑者列清空,否则会锁死。

 


 回到顶部
美女呀,离线,留言给我吧!
baixiaobai
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:317 积分:2555 威望:0 精华:0 注册:2013/3/8 0:32:00
  发帖心情 Post By:2013/3/16 9:13:00 [只看该作者]

啊哦~~修改了上段代码后,提示

.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: '22' 附近有语法错误。
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 Foxtable.SQLCommand.ExecuteNonQuery()

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/16 9:18:00 [只看该作者]

Dim exp As String  = "(编辑者 Is Null Or 编辑者 = '" & User.Name & "') And [_Identify] = " & e.Row("_Identify")

 回到顶部