odbc select查询文本字段不返回记录

jucafojl  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(691)

我在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

有什么建议吗?

yhuiod9q

yhuiod9q1#

解决方案->需要升级到最新的mysql odbc 8.0 ansi驱动程序版本8.00.13.00,然后一切正常。

相关问题