Foxtable(狐表)用户栏目专家坐堂 → [求助]同步函数与异步的不解


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

主题:[求助]同步函数与异步的不解

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


加好友 发短信
等级:一尾狐 帖子:408 积分:4206 威望:0 精华:0 注册:2017/3/24 15:10:00
[求助]同步函数与异步的不解  发帖心情 Post By:2021/1/21 8:29:00 [只看该作者]

这是一个自定义函数,用同步和异步出现的结果不一样,不解?
图片点击可在新窗口打开查看此主题相关图片如下:jietu2021.png
图片点击可在新窗口打开查看


'编号自动生成 用在最后地方
Dim d As Date = Functions.Execute("服务器时间").now
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim Days As Integer = d.DaysInMonth(y,m)
Dim fd As Date = New Date(y,m,1) '获得该月的第一天
Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
Dim max As String
Dim bh As String = Format(d,"yyyyMM") '生成编号的前6位,4位年,2位月.
Dim fxbh As String=Args(0)
Dim idx As Integer
Dim cmd As new sqlcommand
cmd.Conne cti
cmd.CommandText="Sel-ect Max(缴费编号) from {报名缴费} where 分校编号 = '" & fxbh & "' and 缴费日期 >= '" & fd & "' And 缴费日期 <= '" & ld & "'"
max = cmd.ExecuteScalar

If max > "" Then '如果存在最大编号
    idx = CInt(max.Substring(11,4)) + 1 '从第七位开始,向查四位,获得最大编号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If
max=bh & "-" & fxbh & format(idx,"0000")
Dim drr As DataRow =DataTables("报名缴费").SQLFind("缴费编号='" & max & "'")
If drr Is Nothing Then
     Return max
Else    
    Return Nothing
End If
'编号自动生成完毕
[此贴子已经被作者于2021/1/21 8:32:44编辑过]

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


加好友 发短信
等级:一尾狐 帖子:408 积分:4206 威望:0 精华:0 注册:2017/3/24 15:10:00
  发帖心情 Post By:2021/1/21 8:30:00 [只看该作者]

这是截图,两种不同的结果,不解

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111393 积分:567029 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/21 9:09:00 [只看该作者]

正常,异步函数没有返回值,也无法获取返回值,因为还没有执行完。如果要等待执行返回,不能使用异步。或者异步函数里把返回值写入全局变量,客户端定时查询变量是否有值

 回到顶部