У меня есть в MySQL таблица - продукты (product_id int, имя varchar, текст описания).
Я использую последний драйвер ODBC для подключения к MySQL из Excel (VBA) с параметризованным запросом:
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
Любой совет, пожалуйста?