ASP LDAP查询中多个where子句的一个或多个问题

时间:2015-06-18 09:11:35

标签: vbscript asp-classic active-directory

我有一个用ASP编写的脚本,它将列出未被禁用的Active Directory用户。我的查询看起来像这样(但在这里我使用假DN):

objCom.CommandText ="select givenName,sn,mail,telephonenumber,mobile,description,sAMAccountName,cn,UserAccountControl FROM 'LDAP://OU=Users,DC=example,DC=internal' where UserAccountControl <> 514 OR where UserAccountControl <> 2 AND sAMAccountname ='*' ORDER by cn ASC"

问题是,当我只有一个where语句它工作正常并输出用户列表但是当我同时使用它们时,会返回以下消息

提供商错误&#39; 80040e14&#39;

在处理命令期间发生了一个或多个错误。

/ldap.asp,第25行

不知道问题是什么,但我认为,因为它适用于一个WHERE语句,它与查询有关。你能为我阐明一下吗?

1 个答案:

答案 0 :(得分:0)

多个条件的SQL语法是使用适当的布尔运算符(ANDOR,通常,尽管其他可能),将条件串在一起,根据需要使用括号。不要重复WHERE条款:这与重复SELECTFROM一样错误。

SELECT givenName, sn, mail, telephonenumber, mobile, description, sAMAccountName, cn, UserAccountControl 
FROM 'LDAP://OU=Users,DC=example,DC=internal' 
WHERE UserAccountControl <> 514 OR UserAccountControl <> 2 AND sAMAccountname ='*' 
ORDER by cn ASC