|
Консоль запросов : ADO как правильно передать параметр?
|
|
| SirStefan | Дата: Пт, 25.11.2016, 08:04:09 | Сообщение # 1 |
|
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
| ИР 3.85
Создал запрос через ADO MySQL ч/з OLEDB-5.1 SELECT * FROM comp WHERE id = '0033'
Хочу передавать '0033' в параметре. Возможно ли такое?
При любом созданном параметре выдает Ошибка ADO: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 5.3(w) Driver][mysqld-5.1.73]Invalid parameter type
|
| |
| |
| tormozit | Дата: Сб, 26.11.2016, 09:30:49 | Сообщение # 2 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7312
Репутация: 193
Статус: Оффлайн
| Судя по документации
Цитата SELECT * FROM comp WHERE id = '$Param'
|
| |
| |
| SirStefan | Дата: Сб, 26.11.2016, 16:37:39 | Сообщение # 3 |
|
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
| Так и пытался. Выдает "[MySQL][ODBC 5.3(w) Driver][mysqld-5.1.73]Invalid parameter type". Даже при простом создании параметра "code"(Число(4)) без вызова его в запросе. Все равно ошибка. Может, как-то по другому надо делать?
|
| |
| |
| tormozit | Дата: Сб, 26.11.2016, 17:58:26 | Сообщение # 4 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7312
Репутация: 193
Статус: Оффлайн
| Тогда как обычно
Код SELECT * FROM comp WHERE id = ?
|
| |
| |
| SirStefan | Дата: Сб, 26.11.2016, 19:54:54 | Сообщение # 5 |
|
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
| Или я сам не понимаю или неправильно объяснил. В консоли запросов ставлю тип запроса ADO, прописываю пути к базе. Вношу запрос SELECT * FROM comp WHERE id = '01' Запускаю. Работает. На закладке "параметры" создаю новый параметр. В запрос его пока не включаю. При выполнении выдает ошибку "Invalid parameter type".
|
| |
| |
| tormozit | Дата: Сб, 26.11.2016, 20:04:44 | Сообщение # 6 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7312
Репутация: 193
Статус: Оффлайн
| Про ошибку при наличии параметра даже не использованного в тексте запроса теперь понятно. Вероятно включен флажок "Именованные параметры"
|
| |
| |
| SirStefan | Дата: Вс, 27.11.2016, 06:23:24 | Сообщение # 7 |
|
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
| Да. Включен. Убрал. Теперь ошибка другая: 1. при создании параметра типа Строка(9) "Ошибки установки параметров запроса через объект 'ADODB.Command': 1) Параметр 'Param[0]': {ОбщийМодуль.ирОбщий.Модуль(11977)}: Ошибка при вызове метода контекста (Append): Произошла исключительная ситуация (ADODB.Parameters): Неправильно определен объект Parameter. Предоставлены несогласованные или неполные сведения." 2. при создании параметра типа Строка() "Ошибки установки параметров запроса через объект 'ADODB.Command': 1) Параметр 'Param[0]': {ОбщийМодуль.ирОбщий.Модуль(11965)}: Ошибка при установке значения атрибута контекста (Type): Произошла исключительная ситуация (ADODB.Parameter): Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом."
Сообщение отредактировал SirStefan - Вс, 27.11.2016, 06:26:34 |
| |
| |
| tormozit | Дата: Вс, 27.11.2016, 08:40:05 | Сообщение # 8 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7312
Репутация: 193
Статус: Оффлайн
| А с другими типами что?
|
| |
| |
| SirStefan | Дата: Вс, 27.11.2016, 15:43:15 | Сообщение # 9 |
|
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
| Хм. Число работает без галочки "Именованные параметры". Строка заработала с установкой "Типизировать колонки результата к 1С типам". Это просто при создании параметра. Запихнуть '0033' так и не удается. Ошибку не дает но идет пустой результат. Если вместо параметра возращаю текст - все работает нормально.
|
| |
| |
| tormozit | Дата: Вс, 27.11.2016, 15:47:51 | Сообщение # 10 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7312
Репутация: 193
Статус: Оффлайн
| К сожалению у меня нет источника данных с такой СУБД, чтобы разобраться. Попробуй сначала заставить работать запрос с параметром такого типа из своего кода.
|
| |
| |
| tormozit | Дата: Вс, 27.11.2016, 19:30:38 | Сообщение # 11 |
|
Генералиссимус
Группа: Администраторы
Сообщений: 7312
Репутация: 193
Статус: Оффлайн
| В 3.86 отключил флажок "Именованные параметры" для этой "платформы".
|
| |
| |