以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]请问用这种情况会出现保存不上吗? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147302) |
-- 作者:智友软件工作室 -- 发布时间:2020/3/13 15:31:00 -- [求助]请问用这种情况会出现保存不上吗? 作为服务端使用的: Dim gd As DataRow = DataTables("维修工单").SQLFind("工单编号 = \'" & gdbh & "\'") \'开始写入数据 gd("处理状态") = "等待确认" Dim d As Date = Date.Now() gd("操作日志") = name & "于" & CStr(d.Month) & "/" & CStr(d.Day) & " " & CStr(d.Hour) & ":" & CStr(d.Minute) & ":申请验收(完)" & vbcrlf & gd("操作日志") gd.Save() 一直是没有问题,今天突然用户反馈有操作后不执行保存的情况,我测试后也确实存在,但是没有任何报错,我关闭服务器客户端,在打开后就又好了 请问这是什么情况呢?
|
-- 作者:有点蓝 -- 发布时间:2020/3/13 15:44:00 -- 这个保存肯定没有问题,但是注意,不能保存第二次,比如下面第二次赋值和保存是没有用的 Dim gd As DataRow = DataTables("维修工单").SQLFind("工单编号 = \'" & gdbh & "\'")
\'开始写入数据 gd("处理状态") = "等待确认" Dim d As Date = Date.Now() gd("操作日志") = name & "于" & CStr(d.Month) & "/" & CStr(d.Day) & " " & CStr(d.Hour) & ":" & CStr(d.Minute) & ":申请验收(完)" & vbcrlf & gd("操作日志") gd.Save() gd("某列") = "某值" gd.Save() 另外可以使用日志跟踪一下服务端的错误 |
-- 作者:智友软件工作室 -- 发布时间:2020/3/13 16:02:00 -- 是啊,我看了日志是没有任何错误的,而且一直是运行没有问题,就是今天发现的,一共两处都是类似上述的保存方式,两处都是异常(不保存),其他的API接口也都是运行正常,我重启软件之后,保存还是正常的。 |
-- 作者:有点蓝 -- 发布时间:2020/3/13 16:24:00 -- 是不是没有查询到数据,比如这个工单编号还没有保存,SQLFind查询没有结果 |
-- 作者:智友软件工作室 -- 发布时间:2020/3/13 23:09:00 -- 我有发现类似的保存不上的情况:也是类似的 \'e.WriteString(e.PlainText) \'Return Nothing Dim jopost As JObject = JObject.Parse(e.PlainText) Dim gdbh As String = jopost("gdbh") Dim gcsunionid As String = jopost("gcsunionid") Dim yonghuunionid As String = jopost("unionid") Dim yonghuopenid As String = jopost("openid") Dim jo As New JObject \'工程师判断 Dim yg As DataRow = DataTables("员工资料").SQLFind("员工类型 = \'工程师\' and uni") If yg IsNot Nothing Then If yg("移动办公") <> "允许登录" Then jo = New JObject jo("no") = New JObject jo("no")("title") = "工程师已被禁止使用移动端" e.WriteString(CompressJson(jo)) Return Nothing End If Else jo = New JObject jo("no") = New JObject jo("no")("title") = "工程师已被禁用" e.WriteString(CompressJson(jo)) Return Nothing End If \'工单判断 Dim name As String = yg("员工姓名") Dim gd As DataRow = DataTables("维修工单").SQLFind("工单编号 = \'" & gdbh & "\'") If gd IsNot Nothing Then If gd("处理状态") <> "正在处理" Then \'处理状态错误 jo = New JObject jo("no") = New JObject jo("no")("title") = "处理状态不是正在处理" e.WriteString(CompressJson(jo)) Return Nothing End If If gd("工程师") <> name Then \'工程师不对 jo = New JObject jo("no") = New JObject jo("no")("title") = "此单不属于这个工程师" e.WriteString(CompressJson(jo)) Return Nothing End If \'If gd("unionid") <> "" Then \' \'已绑定 \' jo = New JObject \' jo("no") = New JObject \' jo("no")("title") = "此单已绑定过了" \' e.WriteString(CompressJson(jo)) \' Return Nothing \'End If Else \'单号不存在 jo = New JObject jo("no") = New JObject jo("no")("title") = "工单编号不存在" e.WriteString(CompressJson(jo)) Return Nothing End If \'绑定 gd("unionid") = yonghuunionid gd("xcx_openid") = yonghuopenid gd.Save() \'返回成功 jo("no") = New JObject \'这个要加上返回一个空值便于后面判断 jo("no") = "" \'这个空千万不能省略 jo("yes") = New JObject e.WriteString(CompressJson(jo)) |
-- 作者:有点蓝 -- 发布时间:2020/3/14 8:46:00 -- 这种这么多逻辑判断,随便一个不符合条件return了,就不会保存了。 |