|
Внешние источники данных - простой запрос | ☑ | ||
---|---|---|---|---|
0
MaxisUssr
10.03.15
✎
13:49
|
1. Добавил внешний источник данных = MySQL базу.
2. В базе создал некие таблицы. 3. Допустим, в базе в phpAdmin выполняю запрос SELECT 1 - возвращает 1. В 1С - добавляю в ветку внешнего источника ф-ю "DELETE" , код функции пишу просто - тот же самый SELECT 1. Но 1С при выполнении этого кода выдает ошибку: {Форма.Форма1.Форма(39)}: Ошибка при вызове метода контекста (DELETE) ВнешниеИсточникиДанных.Test.DELETE(); по причине: Ошибка внешней базы данных: ошибка при выполнении запроса по причине: Ошибка ODBC. SQLSTATE: 42000 Номер ошибки: 1064 Описание: [MySQL][ODBC 5.3(a) Driver][mysqld-5.5.41-log]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 'SELECT 1' at line 1 |
|||
1
ДенисЧ
10.03.15
✎
13:54
|
Через ВИДы вроде как нельзя менять внешние данные. ТОлько читать
|
|||
2
MaxisUssr
10.03.15
✎
13:54
|
SELECT `1` тоже пробовал
и SELECT "1" и SELECT '1' |
|||
3
Ёпрст
10.03.15
✎
13:55
|
(0) через ado удаляй
|
|||
4
MaxisUssr
10.03.15
✎
13:57
|
(3)
Да не в удалении дело. Ф-я просто так называется - хотел сделать удаление, но в итоге дошел до проверки запроса "Селект 1" - который не работает почему-то в 1С. Данные менять можно. Вот код, который у меня работает (добавляет записи в таблицу MySQL): ПараметрыСоединения = Новый ПараметрыСоединенияВнешнегоИсточникаДанных; ПараметрыСоединения.СтрокаСоединения = " |DRIVER={MySQL ODBC 5.1 Driver}; |SERVER=127.0.0.1; |PORT=3307; |DATABASE=newBase; |UID=New; |PWD=123;"; ПараметрыСоединения.ИмяПользователя = "New"; ПараметрыСоединения.Пароль = "123"; ВнешниеИсточникиДанных.Test.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения); ВнешниеИсточникиДанных.Test.УстановитьСоединение(); nStr = ВнешниеИсточникиДанных.Test.Таблицы.Deals.СоздатьОбъект(); //.Добавить(); ЗаполнитьЗначенияСвойств(nStr, нЗапись); nStr.DealID = Число(Источник.Код); nStr.DealName = Источник.Наименование; nStr.IsAuction= Источник.ЭтоАукцион; ЕстьDeal = ВнешниеИсточникиДанных.Test.Таблицы.Deals.НайтиПоПолю("DealID", Число(Источник.Код)); Если ЕстьDeal <> ВнешниеИсточникиДанных.Test.Таблицы.Deals.ПустаяСсылка() тогда СтарыйОбъект = ЕстьDeal.ПолучитьОбъект(); ВнешниеИсточникиДанных.Test.DELETE(Число(Источник.Код)); //СтарыйОбъект.Удалить(); КонецЕсли; Попытка nStr.Записать(); Исключение КонецПопытки; |
|||
5
МихаилМ
10.03.15
✎
14:00
|
попробуйте
select 1 as www |
|||
6
MaxisUssr
10.03.15
✎
14:04
|
(5)
Не сработало. Включил логи MySQL, в итоге запрос вот какой передается: CALL SELECT 1 |
|||
7
MaxisUssr
10.03.15
✎
14:07
|
Все, разобрался - в итоге выходит, что в 1С во внешних источниках нельзя писать код SQL - только обращаться к заранее заготовленным хранимым процедурам на стороне MySQL.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |