Вероятно, это вопрос новичка, но как установить набор записей в строковую переменную?
Вот мой код:
Function getOffice (strname, uname)
strEmail = uname
WScript.Echo "email: " & strEmail
Dim objRoot : Set objRoot = GetObject("LDAP://RootDSE")
Dim objDomain : Set objDomain = GetObject("LDAP://" & objRoot.Get("defaultNamingContext"))
Dim cn : Set cn = CreateObject("ADODB.Connection")
Dim cmd : Set cmd = CreateObject("ADODB.Command")
cn.Provider = "ADsDSOObject"
cn.Open "Active Directory Provider"
Set cmd.ActiveConnection = cn
cmd.CommandText = "SELECT physicalDeliveryOfficeName FROM '" & objDomain.ADsPath & "' WHERE mail='" & strEmail & "'"
cmd.Properties("Page Size") = 1
cmd.Properties("Timeout") = 300
cmd.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Dim objRS : Set objRS = cmd.Execute
WScript.Echo objRS.Fields(0)
Set cmd = Nothing
Set cn = Nothing
Set objDomain = Nothing
Set objRoot = Nothing
Dim arStore
Set getOffice = objRS.Fields(0)
Set objRS = Nothing
End function
Когда я пытаюсь запустить функцию, выдается сообщение об ошибке «Ошибка выполнения vbscript: несоответствие типов»
Я предполагаю, что это означает, что он не может установить строковую переменную со значением набора записей.
Как мне решить эту проблему?
Я только что попробовал
если IsNull (objRS.Fields (0) .Value) = TRUE, то
getOFfice = "noAD"
еще
getOFfice = objRS.Fields (0) .VAlue
конец если
И это выдает другую ошибку ADODB.Field: либо BOF, либо EOF имеет значение True, либо текущая запись была удалена. Запрошенная операция требует текущей записи.