我有一个用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语句,它与查询有关。你能为我阐明一下吗?
答案 0 :(得分:0)
多个条件的SQL语法是使用适当的布尔运算符(AND
或OR
,通常,尽管其他可能),将条件串在一起,根据需要使用括号。不要重复WHERE
条款:这与重复SELECT
或FROM
一样错误。
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