以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  异步函数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140232)

--  作者:kaituozhe
--  发布时间:2019/9/1 17:34:00
--  异步函数

QQServer有三个事件和HttpRequest一样,在调用异步函数之前,需要将e参数的AsyncExcute性设置为True,保持信道不被关闭;在异步函数执行完毕之后,将e参数的Handled属性设置为True,通知系统关闭信道。

上述标示的黑色的事件在那里,我怎么没有找到?


--  作者:Fox86
--  发布时间:2019/9/1 17:43:00
--  

帮助往下看:

UserLogging事件为例,异步编程的时候,HttpRequest事件代码结构为:

e.AsyncExecute = True  \'通知系统不要关闭信道
Functions
.AsyncExecute("函数名", e) \'异步调用函数处理登录请求

 

再往下一章:QQServer异步登录示例

 

2、将QQServer的UserLoging事件代码改为:

e
.AsyncExecute = True  \'通知系统不要关闭信道
Functions
.AsyncExecute("ValidateLog", e) \'异步调用函数处理登录请求

 


--  作者:kaituozhe
--  发布时间:2019/9/1 19:12:00
--  

Select Case e.DataCol.name
    Case "楼房编号"
        If DataTables.Contains("楼房账面明细") = True Then
            e.DataRow("账面_住宅") = DataTables("楼房账面明细").SQlCompute("sum(住宅_金额)",filter1)

end if

end select

有很多类似上述黄色部分的计算代码,计算一次需要20分钟以上,能否使用异步函数计算,应该怎么修改?


--  作者:fubblyc
--  发布时间:2019/9/1 20:17:00
--  
异步函数只能后台统计,不能有表的操作
--  作者:有点蓝
--  发布时间:2019/9/1 20:23:00
--  
以下是引用kaituozhe在2019/9/1 19:12:00的发言:

Select Case e.DataCol.name
    Case "楼房编号"
        If DataTables.Contains("楼房账面明细") = True Then
            e.DataRow("账面_住宅") = DataTables("楼房账面明细").SQlCompute("sum(住宅_金额)",filter1)

end if

end select

有很多类似上述黄色部分的计算代码,计算一次需要20分钟以上,能否使用异步函数计算,应该怎么修改?

类似这种:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=140074&page=3

直接操作后台数据

--  作者:kaituozhe
--  发布时间:2019/9/2 19:12:00
--  

  e.DataRow("账面_住宅") = DataTables("楼房账面明细").SQlCompute("sum(住宅_金额)","楼房编号 = \'" & e.datarow("") & "\' and 姓名 = \'" & e.datarow("姓名") & "\' ”)

e.DataRow("账面_单价") = DataTables("楼房账面明细").SQlCompute("sum(住宅_单价)","楼房编号 = \'" & e.datarow("") & "\' and 姓名 = \'" & e.datarow("姓名") & "\' ”)

语句,如果要改为后台更新的,下面的语句对吗?

 

upd ate [楼房账面汇总] set 账面_住宅 = m.住宅_金额,账面_单价 = m.住宅_单价   from (sel ect sum(住宅_单价) as住宅_单价, sum(住宅_金额) as 住宅_金额 from[楼房账面明细])as  m where m.[楼房编号] = [楼房账面汇总].[楼房编号] and m.[姓名] = [楼房账面汇总].[姓名]

 

 


--  作者:kaituozhe
--  发布时间:2019/9/2 19:14:00
--  
e.DataRow("账面_住宅") = DataTables("楼房账面明细").SQlCompute("sum(住宅_金额)","楼房编号 = \'" & e.datarow("楼房编号") & "\' and 姓名 = \'" & e.datarow("姓名") & "\' ”)

e.DataRow("账面_单价") = DataTables("楼房账面明细").SQlCompute("sum(住宅_单价)","楼房编号 = \'" & e.datarow("楼房编号") & "\' and 姓名 = \'" & e.datarow("姓名") & "\' ”)

语句,如果要改为后台更新的,下面的语句对吗?

 

upd ate [楼房账面汇总] set 账面_住宅 = m.住宅_金额,账面_单价 = m.住宅_单价   from (sel ect sum(住宅_单价) as住宅_单价, sum(住宅_金额) as 住宅_金额 from[楼房账面明细])as  m where m.[楼房编号] = [楼房账面汇总].[楼房编号] and m.[姓名] = [楼房账面汇总].[姓名]

 


--  作者:kaituozhe
--  发布时间:2019/9/2 19:16:00
--  

我是  模仿类似这种:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=140074&page=3中例子写的,不知道对不对,另外没有看到在那里写数据源?


--  作者:kaituozhe
--  发布时间:2019/9/2 19:16:00
--  
上面的语句没有确定那个数据库?
--  作者:有点蓝
--  发布时间:2019/9/2 20:18:00
--  
参考:http://www.foxtable.com/webhelp/topics/0696.htm


如果是操作后台数据,这个用法根本就不应该在表事件里处理。不要看着异步函数好像很好,就随地乱用。