以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  openqq服务端出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147785)

--  作者:fendouww
--  发布时间:2020/3/24 10:20:00
--  openqq服务端出错
OPenQQ在群发信息时会导致服务端出现错误,导致所有人断线,有办法解决吗?至少在出错后服务端能自动重启吗?



If MainTable.Name = ("下单表") Then
    If qqclient.Ready = True Then
        If user.Roles Like "*管理*" OrElse user.Roles Like "*订单计划员*" Then
            Dim dt As DataTable = DataTables("下单表")
            For Each dr As DataRow In dt.DataRows
                Dim p As String = IIF(dr.RowState = DataRowState.Added, "A#",IIF(dr.RowState = DataRowState.Modified, "U#", ""))
                dr.Save()
                \'一定要在保存后合成信息,因为新增行的主键在保存后才生成
                Dim msg As String = p & "生产跟进" & "#" & dr("_Identify")
                Dim msg2 As String
                If p = "A#" Then
                    msg2 = Date.Now & user.Group & user.Name & "新增了[" & dr("生产部") & "][" & dr("分类") & "]分类,款号[" & dr("款号") & "]的[" & dr("色号称") & "]色订单,请注意查看!"
                    If dr("生产组长") = Nothing AndAlso dr("生产跟单") = Nothing AndAlso dr("生产理单") = Nothing AndAlso dr("生产主管") = Nothing Then
                        If dr("生产部") = "生产一部"
                            For Each bd As QQBuddy In QQClient.Buddies
                                If bd.Name Like "*生产一部*" Then
                                    QQClient.Send(bd.name, msg)
                                    QQClient.SendChatMessage(bd.name, msg2)
                                End If
                            Next
                        ElseIf dr("生产部") = "生产二部"
                            For Each bd As QQBuddy In QQClient.Buddies
                                If bd.Name Like "*生产二部*" Then
                                    QQClient.Send(bd.name, msg)
                                    QQClient.SendChatMessage(bd.name, msg2)
                                End If
                            Next
                        End If
                    Else
                        If dr("生产组长") <> Nothing Then
                            QQClient.Send(dr("生产部") & "." & dr("生产组长"), msg)
                            QQClient.SendChatMessage(dr("生产部") & "." & dr("生产组长"), msg2)
                        End If
                        If dr("生产理单") <> Nothing Then
                            QQClient.Send(dr("生产部") & "." & dr("生产理单"), msg)
                            QQClient.SendChatMessage(dr("生产部") & "." & dr("生产理单"), msg2)
                        End If
                        If dr("生产跟单") <> Nothing Then
                            QQClient.Send(dr("生产部") & "." & dr("生产跟单"), msg)
                            QQClient.SendChatMessage(dr("生产部") & "." & dr("生产跟单"), msg2)
                        End If
                        If dr("生产主管") <> Nothing Then
                            QQClient.Send(dr("生产部") & "." & dr("生产主管"), msg)
                            QQClient.SendChatMessage(dr("生产部") & "." & dr("生产主管"), msg2)
                        End If
                        If dr("辅料员") <> Nothing Then
                            QQClient.Send(dr("生产部") & "." & dr("辅料员"), msg)
                            QQClient.SendChatMessage(dr("生产部") & "." & dr("辅料员"), msg2)
                        End If
                    End If
                ElseIf p = "U#" Then
                    \'  Dim aa As String = dr.SQLGetValue("记录").toString
                    If dr("记录") <> Nothing
                        msg2 = "[" & dr("分类") & "]分类款号[" & dr("款号") & "]的[" & dr("色号称") & "]色订单有修改:" & vbcrlf & dr("记录")
                        If dr("生产组长") = Nothing AndAlso dr("生产跟单") = Nothing AndAlso dr("生产理单") = Nothing AndAlso dr("生产主管") = Nothing Then
                            If dr("生产部") = "生产一部"
                                For Each bd As QQBuddy In QQClient.Buddies
                                    If bd.Name Like "*生产一部*" Then
                                        QQClient.Send(bd.name, msg)
                                        QQClient.SendChatMessage(bd.name, msg2)
                                    End If
                                Next
                            ElseIf dr("生产部") = "生产二部"
                                For Each bd As QQBuddy In QQClient.Buddies
                                    If bd.Name Like "*生产二部*" Then
                                        QQClient.Send(bd.name, msg)
                                        QQClient.SendChatMessage(bd.name, msg2)
                                    End If
                                Next
                            End If
                        Else
                            If dr("生产组长") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产组长"), msg)
                                QQClient.SendChatMessage(dr("生产部") & "." & dr("生产组长"), msg2)
                            End If
                            If dr("生产理单") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产理单"), msg)
                                QQClient.SendChatMessage(dr("生产部") & "." & dr("生产理单"), msg2)
                            End If
                            If dr("生产跟单") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产跟单"), msg)
                                QQClient.SendChatMessage(dr("生产部") & "." & dr("生产跟单"), msg2)
                            End If
                            If dr("生产主管") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产主管"), msg)
                                QQClient.SendChatMessage(dr("生产部") & "." & dr("生产主管"), msg2)
                            End If
                            If dr("辅料员") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("辅料员"), msg)
                                QQClient.SendChatMessage(dr("生产部") & "." & dr("辅料员"), msg2)
                            End If
                        End If
                    Else
                        If dr("生产组长") = Nothing AndAlso dr("生产跟单") = Nothing AndAlso dr("生产理单") = Nothing AndAlso dr("生产主管") = Nothing Then
                            If dr("生产部") = "生产一部"
                                For Each bd As QQBuddy In QQClient.Buddies
                                    If bd.Name Like "*生产一部*" Then
                                        QQClient.Send(bd.name, msg)
                                    End If
                                Next
                            ElseIf dr("生产部") = "生产二部"
                                For Each bd As QQBuddy In QQClient.Buddies
                                    If bd.Name Like "*生产二部*" Then
                                        QQClient.Send(bd.name, msg)
                                    End If
                                Next
                            End If
                        Else
                            If dr("生产组长") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产组长"), msg)
                            End If
                            If dr("生产理单") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产理单"), msg)
                            End If
                            If dr("生产跟单") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产跟单"), msg)
                            End If
                            If dr("生产主管") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("生产主管"), msg)
                            End If
                            If dr("辅料员") <> Nothing Then
                                QQClient.Send(dr("生产部") & "." & dr("辅料员"), msg)
                            End If
                        End If
                    End If
                End If
            Next
        End If
    End If
End If

--  作者:fendouww
--  发布时间:2020/3/24 10:40:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=663404&ID=96279&skin=1#editform
问题与这个帖子类似,报错

--  作者:fendouww
--  发布时间:2020/3/24 10:42:00
--  
以下是在记录里的代码,也就是会发送的文本内容

Dim nms() As String = {"下单时间","来源","渠道来源","季节归属","性别","品类","款号","长款号","款名","色数","色号","色称","报价","实际成本","吊牌价","面料分类","面料成分","工厂","货期","淘宝","唯品会","第三方","汇总","广告样时间","均码F","XS","S","M","L","XL","XXL","XXXL","24","25","26","27","28","29","30""31","32","33","34","35","36","37","38","39","40","总计合计","修改意见","面料信息","版型","上新时间","推广方式","淘宝金额","唯品金额","京东金额","合计金额","类型","花型","细节","报销款号","统计","分类","生产周期","生产部"}
For i As Integer = 0 To nms.Length - 1
    If e.DataCol.name = nms(i) Then
        If e.DataRow.RowState = DataRowState.Added Then
            e.DataRow("记录") = ""
        Else
            e.DataRow("记录") &= vbcrlf & Date.now & " " & user.name & " 把【" & e.DataCol.Name & "】从[" & e.OldValue & "]修改成[" & e.NewValue & "]."
        End If
    End If
Next

--  作者:有点蓝
--  发布时间:2020/3/24 10:59:00
--  
服务端出什么错误提示?
--  作者:fendouww
--  发布时间:2020/3/24 14:31:00
--  
这种,我没有截图下来,前面文字是一样的,表达式后面的是我写的代码里要发送的信息

IMServer异步接收回调过程  语法错误 (操作符丢失) 在查询表达式 \'\'$ 生产部.李爱民 ={【zz012】【
生产备料需求查询

--  作者:有点蓝
--  发布时间:2020/3/24 16:04:00
--  
发送信息对一些特殊字符的处理有问题,等下次更新
--  作者:fendouww
--  发布时间:2020/3/25 8:56:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2020-03-25_08-53-20.jpg
图片点击可在新窗口打开查看
我这个挺急的,因为信息不传达,同事意见很大呢,那到底是哪些字符有问题?要把符号都去掉吗?
图片点击可在新窗口打开查看此主题相关图片如下:snipaste_2020-03-25_08-52-58.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/3/25 9:07:00
--  
应该是接收人前后有特殊字符

IMServer异步接收回调过程  语法错误 (操作符丢失) 在查询表达式 \'\'$ 生产部.李爱民 ={【zz012】【
--  作者:fendouww
--  发布时间:2020/3/26 10:28:00
--  
这是就天的截图,怎么解决呀图片点击可在新窗口打开查看
--  作者:fendouww
--  发布时间:2020/3/26 10:31:00
--  
If dr("生产理单") <> Nothing Then
                            QQClient.Send(dr("生产部") & "." & dr("生产理单"), msg)
                            QQClient.SendChatMessage(dr("生产部") & "." & dr("生产理单"), msg2)
                        End If
这个吗?接收人的代码