Pourquoi ne jeu d'enregistrements.RecordCount égal à 1, mais le jeu d'enregistrements.EOF et le jeu d'enregistrements.BOF la fois l'égalité de Vrai
J'ai une question très simple requête qui ne retourne un enregistrement. Lorsque j'essaie d'obtenir la valeur de la seule colonne dans le dossier, j'obtiens un "BOF ou EOF est Vrai, ou si l'enregistrement a été supprimé. Opération demandée nécessite un enregistrement en cours." Ce qui se passe ici? Le code qui est à l'origine de l'erreur n'est même pas exécuter si RecordCount est de 0 et j'ai vérifié que le jeu d'enregistrements ne contiennent en fait un record.
Code est ci-dessous. Erreur est renvoyée lorsque vous tentez de définir strDN. C'est tellement simple, mais je ne peux pas savoir où je vais mal.
MODIFIÉ POUR INCLURE DE COMMANDE
<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
- J'ai édité ma question. La commande est inclus dans le code ci-dessus.
Vous devez vous connecter pour publier un commentaire.
La propriété recordcount laisse le curseur à la fin du jeu d'enregistrements, de sorte que vous ne pouvez pas obtenir l'enregistrement (eof=true), vous devez movefirst. Utiliser un autre type de curseur, parce que le type de curseur par défaut est uniquement vers l'avant:
Voir https://www.w3schools.com/asp/prop_rs_cursortype.asp
- Je utiliser
Pour Ce Scénario
Essayer
-MODIFIER-
Jetez un oeil sur le lien suivant. Il y a quelques causes énumérées, et des solutions pour la plupart d'entre eux:
http://classicasp.aspfaq.com/general/why-do-i-get-bof-or-eof-errors.html
[Je me suis trompé à ce sujet - merci, Dave] je crois que vous devez appeler adoRecordset.MoveNext (ou quel que soit l'appel est) avant de tenter d'obtenir la valeur d'un champ dans le jeu d'enregistrements.
Appel
adoRecordSet.Requery()
après RecordCount demande peut également aider dans cette situation, si votre requête n'est pas complexe à exécuter la deuxième fois.