这可能是一个初学者问题,但是如何将记录集设置为字符串变量?
这是我的代码:
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 那么 getOOffice =“noAD” 别的 getOOffice = objRS.Fields(0).VALue 结束如果
这会引发不同的错误 ADODB.Field: 要么 BOF 或 EOF 为 True,要么当前记录已被删除。请求的操作需要当前记录。
最佳答案
试试这个:
getOffice = objRS.getString
这将以制表符分隔的字符串形式返回整个记录集。
关于VBScript:如何将记录集的值设置为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/303745/