以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- httprequest 请教 (http://foxtable.net/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 -- 应该没有影响,但是还是用到了主表。测试有什么问题? |