[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]请教VBS如何排除无效的SQL语句?

  1. Dim MacAddr
  2. Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
  3. Set colItems = WMI.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled='TRUE'")
  4. For Each objItem In colItems
  5.     NetName =  Replace(objItem.Description,"/","_")
  6.     MacAddr = objItem.MacAddress
  7. Next
  8. Set colItems = Nothing
  9. sql = """"&"select MacAddress From speed where macaddress = '" & Macaddr &"'"&""""
  10. Set cn=WScript.CreateObject("ADODB.Connection")
  11. Set rs=WScript.CreateObject("adodb.recordset")
  12. cn.open "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=\\win-pc\meno\vbs\ceshi.mdb"
  13. rs.CursorLocation = 3
  14. rs.open sql,cn,1,3
  15. If Not rs.EOF Then
  16. MsgBox "有"
  17. Else
  18. MsgBox "没有"
  19. End If
复制代码
我想获取本机的mac地址,再与数据库中的macaddress字段查找一下是否已经有记录了。
但是脚本在这一句出现问题了。
  1. sql = """"&"select MacAddress From speed where macaddress = '" & Macaddr &"'"&""""
复制代码
在这里改为使用变量后就运行出错。
错误提示:
脚本:  z:\3.vbs
行::   17
字符:  1
错误:  无效的SQL语句;期待'''DELETE、'INSERT'、'PROCEDURE'、'SELECT'、或'UPDATE'
代码:  80040E14
源:     Microsoft JET Database Engine

而我将变量取消调试的时候:
  1. sql = "select MacAddress From speed where macaddress = '00-0C-29-50-37-D3'"
复制代码
这样又是正确的。

小弟初学,实在没辙,试过了好多方法,都没办法解决。特此诚心向各位高手、好汉、英雄们讨教应该如果加入变量?
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. sql = """"&"select MacAddress From speed where macaddress = '" & Macaddr &"'"&""""
复制代码
回复 1# 437153
修改为
  1. sql = "select MacAddress From speed where macaddress = '" & Macaddr & "'"
复制代码
1

评分人数

TOP

回复 2# neorobin


    原来如此,原来是我想偏了。原来那么简单啊。多谢您,您都帮了我两次了。

TOP

返回列表