我有一个非常简单的查询,只返回一条记录.当我尝试从唯一记录中的唯一列中取出值时,我得到"要么BOF或EOF为True,要么当前记录已被删除.请求的操作需要当前记录." 这里发生了什么?如果RecordCount为0并且我已经验证记录集确实包含记录,则导致错误的代码甚至不会执行.
代码如下.尝试设置strDN时抛出错误.这很简单,但我无法弄清楚我哪里出错了.
编辑包括命令
<LDAP://DC=something,DC=com>;(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(employeeID=01234567));distinguishedName;subtree
Set adoRecordset = adoCommand.Execute
If adoRecordset.RecordCount > 0 Then
strDN = adoRecordset.Fields("distinguishedName").Value
Set objUser = GetObject("LDAP://" & strDN)
objGroup.add(objUser.ADsPath)
End if
Run Code Online (Sandbox Code Playgroud)
recordcount属性将光标留在记录集的末尾,因此您无法获取记录(eof = true),您必须先移动.使用不同的游标类型,因为默认游标类型仅为向前:
'' Assign cursorType that allows forward and backward movement.
adoRecordset.cursorType = 3 ''adOpenStatic
Run Code Online (Sandbox Code Playgroud)
请参阅https://www.w3schools.com/asp/prop_rs_cursortype.asp
| 归档时间: |
|
| 查看次数: |
16087 次 |
| 最近记录: |