asp命令对象对包括编码在内的参数执行错误

时间:2015-09-02 12:29:44

标签: mysql sql asp-classic command-objects

我正在使用命令对象运行查询但是在执行查询时遇到意外错误我需要一些帮助。

相同的代码似乎只能在上面的几行中工作,并且似乎只有在我将原始db表替换为-dev复制表之后才出现。

代码如下:

sql = "SELECT blah, blah... " &_
        "FROM tracker p " &_
        "LEFT JOIN ... " &_
        "LEFT JOIN ... " &_
        "WHERE p.id = ? "
Dim cmdObj : set cmdObj = server.CreateObject("ADODB.Command")
cmdObj.ActiveConnection = conn
cmdObj.CommandText = sql
cmdObj.Parameters(0) = sID
Set rs = cmdObj.execute()

运行正常,我存储了一些结果。 然后我在下一行上运行另一个查询使用相同的参数:

sql = "SELECT * FROM table-dev p WHERE p.id = ? "
cmdObj.CommandText = sql
cmdObj.Parameters(0) = sID
Set rs = cmdObj.execute()

生成错误:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[MySQL][ODBC 5.1 Driver][mysqld-5.0.95-log]You have an error in your SQL 
syntax; check the manual that corresponds to your MySQL server version for 
the right syntax to use near '-dev p WHERE p.id = _latin1'21115'' at line 1

我希望有人可以指出正确的方向,为什么现在可以显示并将编码抛给参数。我以前见过这个,并设法找到一个修复,但不能为我的生活记住如何。

所有帮助非常感谢。 非常感谢, JB

1 个答案:

答案 0 :(得分:2)

关键字table看起来让查询引擎混乱。只需将标识符包装在后面的标记中以使其明确:

SELECT * FROM `table-dev` p WHERE p.id = ?