这可能是一个初学者问题,但是如何将记录集设置为字符串变量?VBScript:如何将记录集中的值设置为字符串
这里是我的代码:
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)。价值)= TRUE则 getOFfice = “noAD” 别的 getOFfice = objRS.Fields(0)。价值 端如果
而且引发不同的错误ADODB.Field:BOF或EOF为True,或者当前记录已被删除。请求的操作需要当前记录。
Set getOffice = objRS.Fields(0) 不能正确 - 只有对象被设置,并且您正在处理字符串。您还应该首先测试记录集的eof和bof。 – Fionnuala 2008-11-20 11:18:27