以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- qq客户端报错,停止运行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92839) |
-- 作者:ljh29206 -- 发布时间:2016/11/14 17:42:00 -- qq客户端报错,停止运行 .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2016.7.29.1 错误所在事件:IMServer异步接收回调过程 详细错误信息: 语法错误 (操作符丢失) 在查询表达式 \'\'$人事总务课.XXX={主题:答复: 答复: 考勤数据联络---11月1日--11月13日打卡异常数据和补卡单 收件人:黎明 抄送人: 正文: 张学友 是的,你在空白处补一下吧,当天你们好像是有培训。 --------------------------------------------------------------------------------------------------------------------------------\' 中。 |
-- 作者:有点蓝 -- 发布时间:2016/11/14 17:48:00 -- 贴出接收事件的代码 |
-- 作者:ljh29206 -- 发布时间:2016/11/15 9:20:00 -- server receivedmessage If e.Message = "GetDate" Then e.ReturnValue = Date.Now End If client receivedmessage Dim msg As String = e.Message Dim contain As Integer = 0 \'判断这个表是否存在 For Each t As DataTable In DataTables If msg.Contains(t.name) Then contain = 1 End If Next If contain = 0 Then \' 如果这个表已经加载了, 就继续,否测停止. Return End If If msg.SubString(1,1) = "#" Then \'保证这个是 ADU 添加删除修改行的操作. Dim dr As DataRow Dim pts() As String = msg.Split("#") If pts.Length = 3 Then dr = DataTables(pts(1)).Find("[_Identify] = " & pts(2)) Select pts(0) Case "U" \'表示修改了的行 If dr IsNot Nothing Then dr.Load() \'重新加载此行 End If Case "A" \'表示增加了行 If dr Is Nothing Then \'如果还没有追加进去 DataTables(pts(1)).AppendLoad("[_Identify] = " & pts(2)) dr = DataTables(pts(1)).Find("[_Identify] = " & pts(2)) End If Case "D" \'表示删除了行 If dr IsNot Nothing Then DataTables(pts(1)).RemoveFor("[_Identify] = " & pts(2)) \'移除行 End If End Select Select Case pts(1) Case "日程明细" Functions.Execute("日程刷新") Case "业务申请" Functions.Execute("业务申请") End Select End If End If |
-- 作者:有点蓝 -- 发布时间:2016/11/15 9:41:00 -- 这里看不出问题,后面的2个函数代码看看 |
-- 作者:有点青 -- 发布时间:2016/11/15 9:48:00 -- 是什么情况下会触发报错?是不是每次执行某个操作都报错? |
-- 作者:ljh29206 -- 发布时间:2016/11/15 10:12:00 -- 这个是 QQ服务器报错,非客户端. ,运行了10多天了,第一次报错. 发送了这条信息后,就终止了服务器的 运作
[此贴子已经被作者于2016/11/15 10:23:32编辑过]
|
-- 作者:ljh29206 -- 发布时间:2016/11/15 10:28:00 -- 我把outlook 的 邮件转到 openqq里面去 触发的事件如下 If FileSys.DirectoryExists("E:\\Publish\\project\\outlooksend") AndAlso FileSys.GetFiles("E:\\Publish\\project\\outlooksend").Count > 0 Then For Each File As String In FileSys.GetFiles("E:\\Publish\\project\\outlooksend") Dim s As String = FileSys.ReadAllText(file , Encoding.Default).Trim() If s.Contains("∞") Then \'用∞作为分割符 Dim Values() As String Values = S.split("∞") Dim fjs() As String \'附件用;作为分隔符 fjs = values(4).split(";") Dim emails() As String emails = values(3).split(";") Dim biaoti As String = Values(1) biaoti = biaoti.Replace(chr(10)+ chr(13) , "") biaoti = biaoti.Replace( "?" , "") Dim zhengwen As String = Values(2) zhengwen = zhengwen.Replace(chr(10)+ chr(13) , "") zhengwen = zhengwen.Replace( "?" , "") For youxiangs As Integer = 0 To emails.Length - 1 Dim dr As DataRow = DataTables("pclist").Find("mailaddress = \'" & emails(youxiangs) & "\'") If dr IsNot Nothing Then If dr("rank") < 8 Then QQClient.SendChatMessage(dr("qqdepartment") & "." & dr("username"), "主题:" & biaoti & vbcrlf & "收件人:" & Values(5) & vbcrlf & "抄送人:" & Values(6) & vbcrlf & "正文:" & vbcrlf & zhengwen) \'发送内容 If fjs.Length > 0 Then System.Threading.Thread.Sleep(100) For fujian As Integer = 0 To fjs.Length -1 If FileSys.FileExists(fjs(fujian)) Then QQClient.SendChatFile(dr("qqdepartment") & "." & dr("username"), fjs(fujian)) \'发送附件 End If Next End If End If End If Next FileSys.DeleteFile (file,2,2) End If Next End If [此贴子已经被作者于2016/11/15 10:31:01编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/11/15 11:05:00 -- 光从代码看不出什么问题。跟踪一下数据的流转 [此贴子已经被作者于2016/11/15 11:06:01编辑过]
|
-- 作者:有点青 -- 发布时间:2016/11/15 11:25:00 -- 每次执行都会报错?固定某条信息报的错? |
-- 作者:ljh29206 -- 发布时间:2016/11/15 12:21:00 -- 就 发生过1次 之后没有出现过, 我自己再找找吧 [此贴子已经被作者于2016/11/15 12:31:43编辑过]
|