以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定义函数赋值出错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=171276)

--  作者:aoc103
--  发布时间:2021/8/24 22:56:00
--  自定义函数赋值出错
我有一个自定义函数 CountPages 用于计算当有表格总共有几页
如果是直接FUNCTIONS.EXECUTE(CountPages) 是没有问题的
即可是放在MESSAGE.SHOW(FUNCTIONS.EXECUTE(CountPages))也能正确的显示页数
可是只要定义个值进行赋值则会出错
dim pg as integer = FUNCTIONS.EXECUTE(CountPages)
就会显示 关键字 \'where\' 附近有语法错误。

以下是CountPages自定义函数里的代码
Dim funcount As Integer = Args(0) \'定义传入分页的每页行数
Dim sqltable As String=Args(1) \'定义传入的SQL表语句
Dim funfilter As String = Args(2)\'定义传入总计页的筛选条件
Dim cmd As New SQLCommand
Dim cnt As Integer
cmd.C
cmd.CommandText=CExp("selec t Count(1) f rom ({0} where {1}) t",sqltable,funfilter)
cnt = cmd.ExecuteScalar
Return Math.Ceiling(cnt / funcount) \'计算总的页数,每页50行

--  作者:有点蓝
--  发布时间:2021/8/24 23:16:00
--  
自己调试一下
msgbox(CExp("select Count(1) f rom ({0} where {1}) t",sqltable,funfilter))

--  作者:aoc103
--  发布时间:2021/8/24 23:35:00
--  
已经发现问题 已经解决 非常感谢 是我定义变量的位置太前面
dim pg as integer = FUNCTIONS.EXECUTE(CountPages)
把这里放后面一点 相应的值有出现 就不会出问题了