Автор: korney777@gmail.com 01.02.18, 14:01
Добрый день. Пытаюсь получить данные типа "DECIMAL" прямым запросом из MySQL и получаю ошибку: "Тип переменой не поддерживается"
price=Соединение.Execute("SELECT price FROM oc_product");
Сообщить(price);
Пока price.Eof()=0 Цикл
Сообщить(Строка(price.Fields.Item("price").value));
price.MoveNext();
КонецЦикла;
Попытки использовать варианты:
Соединение.Execute("SELECT CAST(price AS Mony) FROM oc_product"); - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Varchar) FROM oc_product'
Соединение.Execute("SELECT CAST(price AS Varchar) FROM oc_product"); - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Varchar) FROM oc_product'
Соединение.Execute("SELECT CONVERT(price, CHAR) FROM oc_product"); - В коллекции не удается найти элемент, соответствующий требуемому имени или порядковому номеру.
! |
| http://pro1c.org.ua/index.php?act=announce&id=2: 5
|
Автор: Vofka 01.02.18, 14:48
Может
price.Fields.Item(0).value
?
Автор: korney777@gmail.com 01.02.18, 15:49
Vofka @ Сегодня, 14:48
,
Не работает. Текст ошибки:
OLE._Recordset
Сообщить(Строка(price.Fields.Item(0).value));
{Обработка.ОбменМагазин.Форма.Модуль(31)}: Тип переменой не поддерживается
Автор: awp 01.02.18, 18:20
Не знаю играет ли роль .MoveFirst(); перед перебором. У меня во всех выборках стоит. Попробуйте.
Автор: logist 02.02.18, 11:04
Цитата(awp @ 01.02.18, 18:20)
Не знаю играет ли роль .MoveFirst()
Не играет. Это перемещение "курсора" в первую позицию.
А по ошибке, скорее из базы decimal надо получать как float