以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]条件存在数据库中,如何取出来 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135292) |
-- 作者:chnfo -- 发布时间:2019/5/22 21:06:00 -- [求助]条件存在数据库中,如何取出来 假如将某一个业务条件例如 cr("Type") = 1 orelse cr("V") > 1000 作为字符串存在表中.-----比如存在datatables("X").datarows(0)("XFil") 当要引用这个条件的时候,如何把它转换成为 if cr("Type") = 1 orelse cr("V") > 1000 then ?
|
-- 作者:有点甜 -- 发布时间:2019/5/22 21:09:00 -- 动态编译
http://www.foxtable.com/webhelp/scr/1487.htm
|
-- 作者:chnfo -- 发布时间:2019/5/22 21:45:00 -- 在命令窗口执行以下代码: Dim cr As Row = Tables("Mod").rows(0) Dim r As Row = Tables("Branch").rows(2) Dim xyz As String = r("BranchFil") ‘比如这个单元格里的条件是:cr("Type") = 1 xyz = "Return " & xyz Functions.Add("YYY",xyz) Functions.Complie() If Functions.Execute("YYY") Then \' Output.Show("YES") Else Output.Show("NO") End If Functions.Remove("YYY") 执行出错: 编译错误:未声明名“cr”。 错误代码:dim x as string = cr("Type") = 3 [此贴子已经被作者于2019/5/22 22:41:52编辑过]
|
-- 作者:y2287958 -- 发布时间:2019/5/23 9:18:00 -- “dim x as string = cr("Type") = 3”在哪里? |
-- 作者:chnfo -- 发布时间:2019/5/23 10:05:00 -- Cr(“type”) = 3,这是存在数据库的表中的条件列,还有一列是存结果的,例如4 Cr(“type”) =2,它的结果是5 Cr就是某个表的选中行,是个参数 |
-- 作者:chnfo -- 发布时间:2019/5/23 10:17:00 -- 我只是想把数据库表中存的某个格子里存的条件字符串如cr(type”)=1 orelse cr(“v”)> 200取出来,放到if 中去执行判段 |
-- 作者:chnfo -- 发布时间:2019/5/23 10:21:00 -- 也就是说,从数据库中取出字符串类型的数据,解析转化为if语句中的判断条件,用eval好像不行 [此贴子已经被作者于2019/5/23 10:42:28编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/5/23 11:37:00 -- 要生成完整的代码,才能使用动态编译,而不是其中一段代码 |
-- 作者:有点甜 -- 发布时间:2019/5/23 15:14:00 --
你要把所需的 cr 变量传到函数里面才行的。
也就是相当于你自己弄一个内部函数,所需的变量,都要传进去。 |