Foxtable(狐表)用户栏目专家坐堂 → 将截断字符串或二进制数据


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

主题:将截断字符串或二进制数据

帅哥哟,离线,有人找我吗?
huhu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
将截断字符串或二进制数据  发帖心情 Post By:2018/5/31 15:07:00 [只看该作者]

.NET Framework 版本:2.0.50727.7905
Foxtable 版本:2018.3.9.1
错误所在事件:
详细错误信息:
语句已终止。
将截断字符串或二进制数据。

这是怎么回事?是超出列长度了吗?-----应该不是。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/31 15:15:00 [只看该作者]

输入的字符超出列长度,就会报这个错误。

 

贴出你写的代码。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2018/5/31 15:20:00 [只看该作者]

Dim yphsl As WinForm.Button = e.Form.Controls("Button5")
Dim bfhfh As WinForm.Button = e.Form.Controls("Button6")
Dim tg As WinForm.RadioButton = Forms("配货整理").Controls("通过")
Dim wg As WinForm.RadioButton = Forms("配货整理").Controls("未过")
Dim dr As Row = Tables("销售出库单列表").current

Dim str As String = dr("发货要求")
Dim filter,filter1 As String
filter1 = "物料编码 = '" & dr("存货编码") & "' and 发货单号 = '" & dr("发货单号") & "' and 出库单号 = '" & dr("出库单号") & "'"

If str.contains("_") = False  Then
    Select Case e.DataCol.name
        Case "SN"
            If Not e.DataRow.IsNull("SN")  Then
                Dim drr As DataRow = DataTables("库存明细表").SQLFind("SN = '" & e.DataRow("SN") & "'")
                If drr IsNot Nothing Then
                    If drr("状态") = "配货完成" Then
                        e.DataRow("状态") = "配货重复扫描"
                        e.DataRow("物料编码") = dr("存货编码")
                        e.DataRow("发货单号") = dr("发货单号")
                        e.DataRow("出库单号") = dr("出库单号")
                        e.DataRow("货运单号") = dr("货运单号")
                        e.DataRow("id") = dr("_identify")
                        e.DataRow("数量") = 0
                        e.DataRow.save
                    Else
                        Dim nms() As String = {"生产订单号码","工单行号","类别说明","产品批次","订单号","订单行号","客户","备注","软件版本","MAC","HW","入库单号","库位类别","库位编码","入库完成时间","入库方式","在库生命周期"}
                        For Each nm As String In nms
                            e.DataRow(nm) = drr(nm)
                        Next
                        e.DataRow("物料编码") = dr("存货编码")
                        e.DataRow("物料名称") = dr("存货名称")
                        e.DataRow("状态") = "配货完成"
                        e.DataRow("发货单号") = dr("发货单号")
                        e.DataRow("出库单号") = dr("出库单号")
                        e.DataRow("货运单号") = dr("货运单号")
                        e.DataRow("id") = dr("_identify")
                        e.DataRow("数量") = 1
                        e.DataRow("配货完成时间") = Date.now
                        e.DataRow.save
                        drr("物料编码") = dr("存货编码")
                        drr("物料名称") = dr("存货名称")
                        drr("状态") = "配货完成"
                        drr("配货完成时间") = Date.now
                        drr("订单号") = dr("销售订单号")
                        drr("U8发货单号") = dr("发货单号")
                        drr("U8出库单号") = dr("出库单号")
                        drr("客户") = dr("客户名称")
                        drr("业务员") = dr("业务员")
                        drr("货运单号") = dr("货运单号")
                        drr("发货地址") = dr("发货地址")
                        drr("id") = dr("_identify")
                        drr.Save
                        If drr.IsNull("id_flag") = False Then
                            Dim drrms As List(of DataRow) = DataTables("库存明细表").SQLSelect("id_flag = '" & drr("id_flag") & "'")
                            For Each drrm As DataRow In drrms
                                drrm("id") = dr("_identify")
                                drrm.save
                            Next
                        End If
                        Dim sum2 As Integer
                        sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = '配货完成' and SN is not null")
                        yphsl.text = "发货单号:" & dr("发货单号")  & "已完成配货数量" & "=" & sum2
                        If   dr("挪货数量") = sum2 Then
                            dr("配货状态") = True
                            dr("配货完成时间") = Date.now
                            dr.save                            
                            tg.Enabled = True
                            wg.Enabled = True
                        Else
                            tg.Enabled = False
                            wg.Enabled = False
                        End If
                        
                        Dim mr As DataRow = DataTables("库位数量统计").SQLFind("生产订单号码 = '" & drr("生产订单号码") & "' and 工单行号 = '" & drr("工单行号") & "' and 物料编码 = '" & drr("物料编码") & "' and 库位编码 = '" & drr("库位编码") & "' and 库位类别 = '" & drr("库位类别") & "'")
                        If mr IsNot Nothing Then
                            Dim cmd1 As new  SQLCommand
                            cmd1.C
                            cmd1.CommandText = "Exec kwsltjdec  '" & mr("生产订单号码") & "','" & mr("工单行号") & "','" & mr("物料编码") & "','" & mr("库位编码") & "','" & mr("库位类别") & "'"
                            Dim t As DataTable = cmd1.ExecuteReader
                            mr.save
                        End If
                        If dr("U8发货") = True Then
                            Dim tr As String = "物料编码 = '" & e.DataRow("物料编码") & "' and 库位类别 = '" & e.DataRow("库位类别") & "' and 生产订单号码 = '" & e.DataRow("生产订单号码") & "' and 工单行号 = '" & e.DataRow("工单行号") & "'"
                            Dim mrr As DataRow = DataTables("可用数量表").SQLFind(tr)
                            If mrr IsNot Nothing Then
                                Dim cmd1 As new  SQLCommand
                                cmd1.C
                                cmd1.CommandText = "Exec kyslbdec  '" & mrr("物料编码") & "','" & mrr("库位类别") & "','" & mrr("生产订单号码") & "','" & mrr("工单行号") & "'"
                                Dim t As DataTable = cmd1.ExecuteReader
                                mrr.save
                            End If
                        Else
                            Dim tr As String = "物料编码 = '" & e.DataRow("物料编码") & "' and 库位类别 = '" & e.DataRow("库位类别") & "' and 生产订单号码 = '" & e.DataRow("生产订单号码") & "' and 工单行号 = '" & e.DataRow("工单行号") & "'"
                            Dim mrr As DataRow = DataTables("可用数量表").SQLFind(tr)
                            If mrr IsNot Nothing Then
                                Dim cmd1 As new  SQLCommand
                                cmd1.C
                                cmd1.CommandText = "Exec kyslbzkdec  '" & mrr("物料编码") & "','" & mrr("库位类别") & "','" & mrr("生产订单号码") & "','" & mrr("工单行号") & "'"
                                Dim t As DataTable = cmd1.ExecuteReader
                                mrr.save
                                If mrr.IsNull("id_flag") = False And mrr("在库数量") <> 0 Then
                                    Dim yrr As DataRow = DataTables("可用数量表").SQLFind("id_flag = '" & mrr("id_flag") & "' and 插卡 = 1")
                                    If yrr IsNot Nothing Then
                                        Dim mrrs As List(of DataRow) = DataTables("可用数量表").SQLSelect("id_flag = '" & mrr("id_flag") & "'")
                                        For Each mrrm As DataRow In mrrs
                                            If yrr("数量") = 0 Then
                                                mrrm("在库数量") = 0
                                                mrrm.save
                                            Else
                                                mrrm("在库数量") = mrrm("在库数量") - mrrm("在库数量") * 1/yrr("数量")
                                                mrrm.save
                                            End If
                                        Next
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
                Dim crr As DataRow = DataTables("库存明细表").SQLFind("SN = '" & e.DataRow("SN") & "'")
                If crr Is Nothing Then
                    e.DataRow("状态") = "配货完成"
                    e.DataRow("物料编码") = dr("存货编码")
                    e.DataRow("发货单号") = dr("发货单号")
                    e.DataRow("出库单号") = dr("出库单号")
                    e.DataRow("货运单号") = dr("货运单号")
                    e.DataRow("id") = dr("_identify")
                    e.DataRow("数量") = 1
                    e.DataRow("配货完成时间") = Date.now
                    e.DataRow.save
                    Dim rr As DataRow = DataTables("库存明细表").AddNew
                    rr("SN") = e.DataRow("SN")
                    rr("物料编码") = e.DataRow("物料编码")
                    rr("库位类别") = dr("仓库编码")
                    rr("库位编码") = "KW999999"
                    rr("订单号") = dr("销售订单号")
                    rr("U8发货单号") = dr("发货单号")
                    rr("U8出库单号") = dr("出库单号")
                    rr("货运单号") = dr("货运单号")
                    rr("客户") = dr("客户名称")
                    rr("业务员") = dr("业务员")
                    rr("发货地址") = dr("发货地址")
                    rr("状态") = "配货完成"
                    rr("配货完成时间") = Date.now
                    rr("出库方式") = "type5"
                    rr("数量") = 1
                    rr("id") = dr("_identify")
                    rr.save
                    Dim sum2 As Integer
                    sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = '配货完成' and SN is not null")
                    yphsl.text = "发货单号:" & dr("发货单号")  & "已完成配货数量" & "=" & sum2
                    If   dr("挪货数量") = sum2 Then
                        dr("配货状态") = True
                        dr("配货完成时间") = Date.now
                        dr.save
                        'DataTables("销售出库单列表").SQLReplaceFor("配货状态",1,"groupId = '" & dr("groupId") & "'")
                        'DataTables("销售出库单列表").SQLReplaceFor("配货完成时间",Date.now,"groupId = '" & dr("groupId") & "'")
                        tg.Enabled = True
                        wg.Enabled = True
                    Else
                        tg.Enabled = False
                        wg.Enabled = False
                    End If
                End If
            End If
    End Select
ElseIf str.Contains("_") = True And str.Contains("|") = False Then
    Dim gdh,gdhh As String
    Dim gds() As String = str.Split("_")
    gdh = gds(0)
    gdhh = gds(1)
    Select Case e.DataCol.name
        Case "SN"
            If Not e.DataRow.IsNull("SN")  Then
                Dim drr As DataRow = DataTables("库存明细表").SQLFind("SN = '" & e.DataRow("SN") & "'")
                If drr IsNot Nothing Then
                    If drr("状态") = "配货完成" Then
                        e.DataRow("状态") = "配货重复扫描"
                        e.DataRow("物料编码") = dr("存货编码")
                        e.DataRow("发货单号") = dr("发货单号")
                        e.DataRow("出库单号") = dr("出库单号")
                        e.DataRow("货运单号") = dr("货运单号")
                        e.DataRow("id") = dr("_identify")
                        e.DataRow("数量") = 0
                        e.DataRow.save
                    Else
                        Dim nms() As String = {"生产订单号码","工单行号","类别说明","产品批次","订单号","订单行号","客户","备注","软件版本","MAC","HW","入库单号","库位类别","库位编码","入库完成时间","入库方式","在库生命周期"}
                        For Each nm As String In nms
                            e.DataRow(nm) = drr(nm)
                        Next
                        e.DataRow("物料编码") = dr("存货编码")
                        e.DataRow("物料名称") = dr("存货名称")
                        e.DataRow("状态") = "配货完成"
                        e.DataRow("发货单号") = dr("发货单号")
                        e.DataRow("出库单号") = dr("出库单号")
                        e.DataRow("货运单号") = dr("货运单号")
                        e.DataRow("id") = dr("_identify")
                        e.DataRow("数量") = 1
                        e.DataRow("配货完成时间") = Date.now
                        e.DataRow.save
                        drr("物料编码") = dr("存货编码")
                        drr("物料名称") = dr("存货名称")
                        drr("状态") = "配货完成"
                        drr("订单号") = dr("销售订单号")
                        drr("配货完成时间") = Date.now
                        drr("U8发货单号") = dr("发货单号")
                        drr("U8出库单号") = dr("出库单号")
                        drr("客户") = dr("客户名称")
                        drr("业务员") = dr("业务员")
                        drr("货运单号") = dr("货运单号")
                        drr("发货地址") = dr("发货地址")
                        drr("id") = dr("_identify")
                        drr.Save
                        If drr.IsNull("id_flag") = False Then
                            Dim drrms As List(of DataRow) = DataTables("库存明细表").SQLSelect("id_flag = '" & drr("id_flag") & "'")
                            For Each drrm As DataRow In drrms
                                drrm("id") = dr("_identify")
                                drrm.save
                            Next
                        End If
                        Dim sum2 As Integer
                        sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = '配货完成' and SN is not null")
                        yphsl.text = "发货单号:" & dr("发货单号")  & "已完成配货数量" & "=" & sum2
                        If   dr("挪货数量") = sum2 Then
                            dr("配货状态") = True
                            dr("配货完成时间") = Date.now
                            dr.save                            
                            tg.Enabled = True
                            wg.Enabled = True
                        Else
                            tg.Enabled = False
                            wg.Enabled = False
                        End If
                        Dim mr As DataRow = DataTables("库位数量统计").SQLFind("生产订单号码 = '" & drr("生产订单号码") & "' and 工单行号 = '" & drr("工单行号") & "' and 物料编码 = '" & drr("物料编码") & "' and 库位编码 = '" & drr("库位编码") & "' and 库位类别 = '" & drr("库位类别") & "'")
                        If mr IsNot Nothing Then
                            Dim cmd1 As new  SQLCommand
                            cmd1.C
                            cmd1.CommandText = "Exec kwsltjdec  '" & mr("生产订单号码") & "','" & mr("工单行号") & "','" & mr("物料编码") & "','" & mr("库位编码") & "','" & mr("库位类别") & "'"
                            Dim t As DataTable = cmd1.ExecuteReader
                            mr.save
                        End If
                        Dim tr As String = "物料编码 = '" & e.DataRow("物料编码") & "' and 库位类别 = '" & e.DataRow("库位类别") & "' and 生产订单号码 = '" & e.DataRow("生产订单号码") & "' and 工单行号 = '" & e.DataRow("工单行号") & "'"
                        Dim mrr As DataRow = DataTables("可用数量表").SQLFind(tr)
                        If mrr IsNot Nothing Then
                            If mrr("生产订单号码") <> gdh Or (mrr("生产订单号码") = gdh And mrr("工单行号") <> gdhh) Then
                                Dim cmd1 As new  SQLCommand
                                cmd1.C
                                cmd1.CommandText = "Exec kyslbdec  '" & mrr("物料编码") & "','" & mrr("库位类别") & "','" & mrr("生产订单号码") & "','" & mrr("工单行号") & "'"
                                Dim t As DataTable = cmd1.ExecuteReader
                                mrr.save
                                Dim wr As DataRow = DataTables("可用数量表").SQLFind("生产订单号码 = '" & gdh & "' and 工单行号 = '" & gdhh & "'")
                                If wr IsNot Nothing Then
                                    wr("数量") = wr("数量") + 1
                                    wr.save
                                End If
                            ElseIf mrr("生产订单号码") = gdh  And mrr("工单行号") = gdhh Then
                                Dim cmd1 As new  SQLCommand
                                cmd1.C
                                cmd1.CommandText = "Exec kyslbzkdec  '" & mrr("物料编码") & "','" & mrr("库位类别") & "','" & mrr("生产订单号码") & "','" & mrr("工单行号") & "'"
                                Dim t As DataTable = cmd1.ExecuteReader
                                mrr.save
                            End If
                            
                            If mrr.IsNull("id_flag") = False And mrr("在库数量") <> 0 Then
                                Dim yrr As DataRow = DataTables("可用数量表").SQLFind("id_flag = '" & mrr("id_flag") & "' and 插卡 = 1")
                                If yrr IsNot Nothing Then
                                    Dim mrrs As List(of DataRow) = DataTables("可用数量表").SQLSelect("id_flag = '" & mrr("id_flag") & "'")
                                    For Each mrrm As DataRow In mrrs
                                        If yrr("数量") = 0 Then
                                            mrrm("在库数量") = 0
                                            mrrm.save
                                        Else
                                            mrrm("在库数量") = mrrm("在库数量") - mrrm("在库数量") * 1/yrr("数量")
                                            mrrm.save
                                        End If
                                    Next
                                End If
                            End If
                        End If
                    End If
                End If
                Dim crr As DataRow = DataTables("库存明细表").SQLFind("SN = '" & e.DataRow("SN") & "'")
                If crr Is Nothing Then
                    Dim dr11 As DataRow = DataTables("assemblyProduct").SQLFind("deviceCode = '" & e.DataRow("SN") & "' or productno = '" & e.DataRow("SN") & "'")
                    If dr11 IsNot Nothing Then
                        Dim dr22 As DataRow = DataTables("assemblySubWorkOrder").SQLFind("SID = '" & dr11("subWorkOrder") & "'")
                        If dr22 IsNot Nothing Then
                            e.DataRow("工单行号") = dr22("LineFlag")
                            Dim dr33 As DataRow = DataTables("assemblyWorkOrder").SQLFind("Id = '" & dr22("workOrder") & "'")
                            If dr33 IsNot Nothing Then
                                e.DataRow("生产订单号码") = dr33("WorkOrderNo")
                                Dim dr44 As DataRow = DataTables("计划表").SQLFind("生产订单号码 = '" & e.DataRow("生产订单号码") & "' and 工单行号 = '" & e.DataRow("工单行号") & "'")
                                If dr44 IsNot Nothing Then
                                    e.DataRow("物料编码") = dr44("客户物料编码")
                                    e.DataRow("状态") = "配货完成"
                                    e.DataRow("物料编码") = dr("存货编码")
                                    e.DataRow("发货单号") = dr("发货单号")
                                    e.DataRow("出库单号") = dr("出库单号")
                                    e.DataRow("货运单号") = dr("货运单号")
                                    e.DataRow("id") = dr("_identify")
                                    e.DataRow("数量") = 1
                                    e.DataRow("配货完成时间") = Date.now
                                    e.DataRow.save
                                    Dim rr As DataRow = DataTables("库存明细表").AddNew
                                    rr("SN") = e.DataRow("SN")
                                    rr("库位类别") = dr("仓库编码")
                                    rr("库位编码") = "KW999999"
                                    rr("物料编码") = e.DataRow("物料编码")
                                    rr("订单号") = dr("销售订单号")
                                    rr("U8发货单号") = dr("发货单号")
                                    rr("U8出库单号") = dr("出库单号")
                                    rr("货运单号") = dr("货运单号")
                                    rr("客户") = dr("客户名称")
                                    rr("业务员") = dr("业务员")
                                    rr("发货地址") = dr("发货地址")
                                    rr("状态") = "配货完成"
                                    rr("配货完成时间") = Date.now
                                    rr("出库方式") = "type5"
                                    rr("数量") = 1
                                    rr("id") = dr("_identify")
                                    rr.save
                                End If
                            End If
                        End If
                    End If
                    Dim sum2 As Integer
                    sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = '配货完成' and SN is not null")                    '
                    yphsl.text = "发货单号:" & dr("发货单号")  & "已完成配货数量" & "=" & sum2
                    If   dr("挪货数量") = sum2 Then
                        dr("配货状态") = True
                        dr("配货完成时间") = Date.now
                        dr.save
                        tg.Enabled = True
                        wg.Enabled = True
                    Else
                        tg.Enabled = False
                        wg.Enabled = False
                    End If
                End If
            End If
    End Select
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/31 15:45:00 [只看该作者]

加入msgbox定位出错位置。

 

基本上,是因为你 CommandText 设置的sql语句导致的问题,弹出合成的sql语句是否正确,能否正常执行。


 回到顶部