Воскресенье, 12.05.2024, 19:00
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Основной » Прочее » Консоль запросов : ADO как правильно передать параметр? (Подскажите как передать параметр в запрос?)
Консоль запросов : ADO как правильно передать параметр?
SirStefanДата: Пятница, 25.11.2016, 08:04 | Сообщение # 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 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 6198
Репутация: 159
Статус: Оффлайн
Судя по документации
Цитата
SELECT *
FROM comp
WHERE id = '$Param'
 
SirStefanДата: Суббота, 26.11.2016, 16:37 | Сообщение # 3
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
Так и пытался. Выдает "[MySQL][ODBC 5.3(w) Driver][mysqld-5.1.73]Invalid parameter type".
Даже при простом создании параметра "code"(Число(4)) без вызова его в запросе. Все равно ошибка. Может, как-то по другому надо делать?
 
tormozitДата: Суббота, 26.11.2016, 17:58 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 6198
Репутация: 159
Статус: Оффлайн
Тогда как обычно
Код
SELECT *
FROM comp
WHERE id = ?
 
SirStefanДата: Суббота, 26.11.2016, 19:54 | Сообщение # 5
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
Или я сам не понимаю или неправильно объяснил. В консоли запросов ставлю тип запроса ADO, прописываю пути к базе.
Вношу запрос
SELECT *
FROM comp
WHERE id = '01'
Запускаю. Работает.
На закладке "параметры" создаю новый параметр. В запрос его пока не включаю. При выполнении выдает ошибку "Invalid parameter type".
 
tormozitДата: Суббота, 26.11.2016, 20:04 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 6198
Репутация: 159
Статус: Оффлайн
Про ошибку при наличии параметра даже не использованного в тексте запроса теперь понятно. Вероятно включен флажок "Именованные параметры"
 
SirStefanДата: Воскресенье, 27.11.2016, 06:23 | Сообщение # 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
 
tormozitДата: Воскресенье, 27.11.2016, 08:40 | Сообщение # 8
Генералиссимус
Группа: Администраторы
Сообщений: 6198
Репутация: 159
Статус: Оффлайн
А с другими типами что?
 
SirStefanДата: Воскресенье, 27.11.2016, 15:43 | Сообщение # 9
Сержант
Группа: Проверенные
Сообщений: 27
Репутация: 0
Статус: Оффлайн
Хм. Число работает без галочки "Именованные параметры".
Строка заработала с установкой "Типизировать колонки результата к 1С типам".
Это просто при создании параметра.
Запихнуть '0033' так и не удается. Ошибку не дает но идет пустой результат. Если вместо параметра возращаю текст - все работает нормально.
 
tormozitДата: Воскресенье, 27.11.2016, 15:47 | Сообщение # 10
Генералиссимус
Группа: Администраторы
Сообщений: 6198
Репутация: 159
Статус: Оффлайн
К сожалению у меня нет источника данных с такой СУБД, чтобы разобраться. Попробуй сначала заставить работать запрос с параметром такого типа из своего кода.
 
tormozitДата: Воскресенье, 27.11.2016, 19:30 | Сообщение # 11
Генералиссимус
Группа: Администраторы
Сообщений: 6198
Репутация: 159
Статус: Оффлайн
В 3.86 отключил флажок "Именованные параметры" для этой "платформы".
 
Форум » Основной » Прочее » Консоль запросов : ADO как правильно передать параметр? (Подскажите как передать параметр в запрос?)
  • Страница 1 из 1
  • 1
Поиск: