我在mysql中有表-products(product\ id int,name varchar,description text)。
我使用最新的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
此代码正确返回请求的记录。当我将commandtext更改为(查询包含表中的字段描述(字段类型text))时
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
有什么建议吗?
1条答案
按热度按时间yhuiod9q1#
解决方案->需要升级到最新的mysql odbc 8.0 ansi驱动程序版本8.00.13.00,然后一切正常。