以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]表达式报错,找不到原因了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38698)

--  作者:guoweidong
--  发布时间:2013/8/4 21:46:00
--  [求助]表达式报错,找不到原因了

 drs1 = DataTables("RoleModelButton").Select("[RoleID] in (Select IsNull([RoleID],\'-1\') as [RoleID] from UserRole where [UserName] = \'\')")

 

 


此主题相关图片如下:qq图片20130804214433.jpg
按此在新窗口浏览图片

--  作者:逛逛
--  发布时间:2013/8/4 21:56:00
--  
把 -1 单引号 去掉 试试
--  作者:有点甜
--  发布时间:2013/8/4 21:57:00
--  
 狐表的select语句不能这样用的,只能查询本表的内容,参数只能写条件。
 
 楼主变通下实现吧。


--  作者:guoweidong
--  发布时间:2013/8/4 21:57:00
--  
去掉也没用
--  作者:guoweidong
--  发布时间:2013/8/4 22:02:00
--  

示例十一

筛选产品为PD01、PD02、PD03的行:

产品 In (\'PD01\',\'PD02\',\'PD03\')

或者

产品 = \'PD01\' or 产品 = \'PD02\' or 产品 = \'PD03\'

显然这个时候,用In运算符要简洁很多。

记得数值型的列,值不要用单引号括起来,例如:

[订单号] In (1, 3, 4, 6, 7,12)

而日期型的列,值需要用符号#括起来,例如:

[日期] In (#7/2/2012#, #7/12/2012#, #8/30/2012#)

示例十二

筛选产品不是PD01、PD02、PD03的行:

产品 Not In (\'PD01\',\'PD02\',\'PD03\')




帮助也有这样的方法,为什么不行了?
--  作者:guoweidong
--  发布时间:2013/8/4 22:06:00
--  
DataTables("RoleModelButton").Fill("Select * from RoleModelButton where [RoleID] in (Select IsNull([RoleID],\'-1\') as RoleID from UserRole where [UserName] = \'\')",Vars("数据源名称"),False)
当使用这种方法时,又有报错!
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20130804220503.jpg
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2013/8/4 22:07:00
--  
如果要用 xxx in (1, 2, 3),需要先查出来,不能在条件里再写sql语句。
[此贴子已经被作者于2013-8-4 22:10:27编辑过]

--  作者:guoweidong
--  发布时间:2013/8/4 22:12:00
--  

不会改了哦。


--  作者:客人
--  发布时间:2013/8/4 22:20:00
--  

一气把关联删了可以用了。