我正在尝试连接到lenel并使用WQL来获取结果。WQL在WMI资源管理器中运行时返回记录。
Set objServices = GetObject("winmgmts://./root/onguard")
Set cardSet = objServices.ExecQuery("select * from Lnl_Badge where id =11111")
if not cardSet is nothing then
Response.Write("<br/>cardset has something")
vContinue = true
else
Response.Write("<br/>cardSet set is nothing")
Exit Function
end if
Response.Write("<br/>count ")
Count = cardSet.Count
Response.Write(Count)问题是Count的值是空的,程序退出当前函数。知道哪里出了问题吗。
但显示的是"Cardset has something“。
编辑:
为了检查语法,我对cim2v执行了以下操作
Set objWMIService = GetObject("winmgmts:")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
Response.Write(colItems.Count)
for each colItem in colItems
If Not colItem Is Nothing Then
Response.Write("<br/>")
Response.Write(colItem.ProcessID)
end if
next令我惊讶的是,上面的代码为什么不能正常工作呢? working....then。:(
编辑:日志文件中的错误
(Tue Aug 20 11:50:22 2013.179589208) : WDM call returned error: 4200
(Tue Aug 20 11:50:22 2013.179589208) : WDM specific return code: 4200
(Tue Aug 20 11:50:22 2013.179589208) : 发布于 2013-08-20 14:29:18
根据我对WMI API参考的理解,如果您没有遇到错误,SWbemServices.ExecQuery方法将始终返回一个SWbemObjectSet对象,而不管该对象中是否有任何结果。
如果您的查询返回0个结果,那么在cardSet中仍然有一个有效的对象,所以If Not cardSet Is Nothing语句将始终触发,除非出现错误,但同时count仍将返回0。
https://stackoverflow.com/questions/18327031
复制相似问题