VBScript:如何将记录集的值设置为字符串

标签 vbscript string recordset

这可能是一个初学者问题,但是如何将记录集设置为字符串变量?

这是我的代码:

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/

相关文章:

VBA Excel切换按钮 "Latching"

vbscript - 像 VBScript 的 JsFiddle 之类的东西?

asp-classic - VBScript VarType 函数给出奇怪的值

java - 断言语句后出现 ArrayIndexOutOfBoundsException

scripting - 我需要找到一种方法来使用 VBScript 删除电子表格中的一行

MySQL:如果第一个字符包含确定的字符,我如何才能只替换它?

python - 替换列表列中的重复项

mysql - 过滤一个装满 MySQL 的 ListBox

mysql - ADO 记录集添加新日期时间字段失败

Android 和 Azure 移动服务 : Using invokeAPI to return recordset