以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  httprequest 请教  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=185630)

--  作者:kk000
--  发布时间:2023/3/7 8:39:00
--  httprequest 请教
通过  httprequest 做webserver

里面有很多代码   例如
 addnew ,
 find ,  
Dim cmd As new SQLCommand


但访问的时候 经常会弹出  未将设置应用到对象实例 ,好像没有初始化 一样,

请问是不是并发太多  对应不过来导致的呢

这个要怎么解决?



--  作者:有点蓝
--  发布时间:2023/3/7 8:45:00
--  
这要具体看写了什么代码了。可以屏蔽错误,改为使用日志记录,然后通过日期分析错误:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=173590
--  作者:kk000
--  发布时间:2023/3/7 11:20:00
--  
 这些代码单独进行 都 没有问题 ,而且 情况偶发!

--  作者:有点蓝
--  发布时间:2023/3/7 11:29:00
--  
按2楼的方法,屏蔽掉弹出的错误
--  作者:kk000
--  发布时间:2023/3/8 8:44:00
--  
篮板 请教  我在 httprequest  是这么写的
    Case "pdaconnection.htm"
        try
            
            e.AsyncExecute = True  \'通知系统,将采用异步方式生成网页
            Functions.AsyncExecute("sqlwrite", e) \'异步调用函数生成网页
        Catch ex As Exception
                          Dim dr As DataRow = DataTables("表A").AddNew()
                 dr("第一列") = e.path
                 dr("第二列") = ex.tostring
                  dr.Save

        End Try



里面的代码时这样的, 
        Dim  drf  As DataRow = DataTables("YW_出入库明细").SQLFind("二维码 = \'" & neirong & "\'")
        If drf Is Nothing Then
            Dim drf1 As DataRow = DataTables("YW_原材料入库贴码单").SQLFind("二维码 = \'" & neirong & "\'")
            If drf1 IsNot Nothing Then
                Dim drs As List(of DataRow)
                drs = DataTables("YW_原材料入库贴码单").SQLSelect("收货单明细guid = \'" & drf1("收货单明细guid") & "\'")
                For Each dr As DataRow In drs
                    Dim dra As DataRow = DataTables("YW_出入库明细").AddNew
                    dra("guid") = Guid.NewGuid.toString()
                    dra("创建人guid") = dra("guid")
                    dra("创建日期") = Date.Now
                    dra("产品guid") = dr("产品guid")
                    dra("产品品番") = dr("产品品番")
                    dra("收容数") = dr("收容数")
                    dra("单位") = dr("单位")
                    dra("作业者") = tablename.Split("|")(0)
                    dra("作业时间") = Date.Now
                    dra("方向") = "入"
                    dra("二维码") = dr("二维码")
                    dra("货位号") = tablename.Split("|")(1)
                    dra("批次号") = dr("批次号")
                Next
                DataTables("YW_出入库明细").Save
            End If
            Return "add ok"
        Else
            Return "already exists"
        End If


经常会卡死 程序无响应 这样子!  ,但是 也没看到 有什么异常输出 ,就是卡住 , 这种情况 偶发 较多

另外 加入了 try catch 后 服务端卡死的情况好像更多!
[此贴子已经被作者于2023/3/8 8:46:27编辑过]

--  作者:有点蓝
--  发布时间:2023/3/8 8:56:00
--  
先看看:http://www.foxtable.com/mobilehelp/topics/277.htm
--  作者:kk000
--  发布时间:2023/3/8 15:14:00
--  
 篮板 我的访问量也不大 我全部没用异步线程了

但是 ,访问到 以下代码

通过  httprequest 做webserver

代码写在函数里面

        Dim  drf  As DataRow = DataTables("出入库明细").SQLFind("二维码 = \'" & neirong & "\'")
        If drf Is Nothing Then
            Dim drf1 As DataRow = DataTables("原材料入库贴码单").SQLFind("二维码 = \'" & neirong & "\'")
            If drf1 IsNot Nothing Then
                Dim drs As List(of DataRow)
                drs = DataTables("原材料入库贴码单").SQLSelect("收货单明细guid = \'" & drf1("收货单明细guid") & "\'")
                For Each dr As DataRow In drs
                    Dim dra As DataRow = DataTables("出入库明细").AddNew
                    -----------等等
                 next
            endif
        endif

提示  加载   原材料入库贴码单 失败!

这个情况也是偶发, 这是怎么弄好呢 ,这个表 肯定是有的

[此贴子已经被作者于2023/3/8 15:14:26编辑过]

--  作者:有点蓝
--  发布时间:2023/3/8 15:19:00
--  
上面的代码只是查询,不涉及加载,不应该有加载失败的提示。应该是其它地方导致的问题,检查一设置外部表设置,或者涉及加载条件的地方

个人的建议是,web服务建议尽量不要使用主表,最好是通过SQLcommand操作数据库数据

--  作者:kk000
--  发布时间:2023/3/8 16:14:00
--  
篮板,我把查询的 都用  SQLCommand 操作, 但是

1: 出来的表 存在 临时的 datatable 里面可以吗?
2: 通过 datatables("adfc").addnew()  这样 有影响吗?

        Dim cmd As new SQLCommand
        cmd.C
        cmd.CommandText = "s elect * from YW_原材料订单 where guid = \'" & order_guid & "\'"
        Dim dt As DataTable = cmd.ExecuteReader
       
        for each dr as datarow in dt.datarows 
              dim dra as datarow = datatables("adfc").addnew()
       next


--  作者:有点蓝
--  发布时间:2023/3/8 16:19:00
--  
应该没有影响,但是还是用到了主表。测试有什么问题?