我在mysql表中-产品(product_id int,名称varchar,描述文本)。
我使用最新的ODBC驱动程序通过参数化查询从Excel(VBA)连接到mysql:
dim DCONT as ADODB.Connection
set DCONT = new ADODB.Connection
DCONT.open "DSN=myDSN"
set cmd = new ADODB.command
cmd.commandtext = "SELECT product_id, name FROM products WHERE name LIKE ?"
set param1=cmd.createparameter("@strName", advarchar, adparaminput, 30, "%testvalue%"
cmd.parameters.append param1
cmd.activeconnection = DCONT
dim rsRecords = new ADODB.recordset
rsRecords.open cmd
此代码正确返回请求的记录。 当我将命令文本更改为(查询包括表中的字段描述(字段类型文本))
cmd.commandtext = "SELECT product_id, name, description FROM products WHERE name LIKE ?"
它不返回任何记录。 以同样的方式使用该查询
cmd.commandtext = "SELECT * FROM products WHERE name LIKE ?"
它不返回任何记录。
不带参数查询的下一个代码将返回请求的记录。这意味着仅通过使用参数化查询返回记录存在问题。
dim DCONT as ADODB.Connection
set DCONT = new ADODB.Connection
DCONT.open "DSN=myDSN"
set cmd = new ADODB.command
cmd.commandtext = "SELECT product_id, name, description FROM products WHERE name LIKE '%testvalue%'"
cmd.activeconnection = DCONT
dim rsRecords = new ADODB.recordset
rsRecords.open cmd
有什么建议吗?
答案 0 :(得分:0)
解决方案->需要升级到最新的MySQL ODBC 8.0 ANSI驱动程序,版本8.00.13.00,然后一切正常。