以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 独占式编辑报错是什么原因呢(求助) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29901) |
-- 作者:baixiaobai -- 发布时间:2013/3/16 5:29:00 -- 独占式编辑报错是什么原因呢(求助) 只要编辑一次后,就被锁上再也打不开了,总是提示,开发者正在编辑此行,我用开发者的账户也是一样打不开! [此贴子已经被作者于2013-3-16 6:35:17编辑过]
|
-- 作者:baixiaobai -- 发布时间:2013/3/16 6:32:00 -- 还是不行`总是被锁上``别的用户怎么也编辑不了了,只要打开编辑窗口一次,再别的用户或者是自己,都死活编辑不了了,就一直提示.开发者正在编辑此行!该怎么办呢 [此贴子已经被作者于2013-3-16 6:33:44编辑过]
|
-- 作者:qq121454970 -- 发布时间:2013/3/16 8:17:00 -- 代码贴出来看看,应该是你退出窗口时没有将编辑者列的用户名清空导致的 |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/16 8:26:00 -- 你做个例子发上来看看 |
-- 作者:baixiaobai -- 发布时间:2013/3/16 8:31:00 -- 对`就是没有清空,我刚在外部数据表里看了,之前登录的还在上面显示呢 |
-- 作者:baixiaobai -- 发布时间: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
|
-- 作者:狐狸爸爸 -- 发布时间: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 -- 发布时间: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() |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/16 9:18:00 -- Dim exp As String = "(编辑者 Is Null Or 编辑者 = \'" & User.Name & "\') And [_Identify] = " & e.Row("_Identify") |