Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 сен 2021, 19:33

Обмен УТ 3.1 с сайтом

Автор Vasia Povar, 29 мар 2017, 17:54

0 Пользователей и 1 гость просматривают эту тему.

Vasia Povar

Процедура cmdInsert(Соединение,ИмяТаблицы,СтрПарам) Экспорт

CommandText = "insert into " + ИмяТаблицы + " (";
Для Каждого ЭлСтр из СтрПарам Цикл
CommandText = CommandText + ЭлСтр.Ключ + ", ";   
КонецЦикла;
CommandText = Лев(CommandText,СтрДлина(CommandText)-2) + ") values (";
Для Каждого ЭлСтр из СтрПарам Цикл
CommandText = CommandText + "'" + ЭлСтр.Значение + "'" + ", ";   
КонецЦикла;
CommandText = Лев(CommandText,СтрДлина(CommandText)-2) + ")";
CommandText = СтрЗаменить(CommandText,"'NULL'","NULL");

cmdInsert = Новый COMОбъект("ADODB.Command");
cmdInsert.ActiveConnection = Соединение;
cmdInsert.CommandText = CommandText;
cmdInsert.Prepared = True;
cmdInsert.execute();
КонецПроцедуры


{ОбщийМодуль.ИК_Сайт.Модуль(1534)}: Ошибка при вызове метода контекста (Execute)
   cmdInsert.execute();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 5.1 Driver][mysqld-5.6.27-75.0-log]Column 'id_metadata' cannot be null
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 5.1 Driver][mysqld-5.6.27-75.0-log]Column 'id_metadata' cannot be null

ТУТ беру id от _metadata
Функция ПолучитьИд(СоединениеSQL, ИмяТаблицы, СтрУслов)

cmdIsExist = cmdIsExist(СоединениеSQL,ИмяТаблицы,СтрУслов);
isExist = cmdIsExist.execute();
Если isExist.EOF Тогда
Возврат "NULL";
Иначе
Возврат "" + СтрЗаменить(isExist.fields("Id").value,Символы.НПП,"") + "";
КонецЕсли;

КонецФункции


Получается проблема с булевом Если isExist.EOF Тогда
      Возврат "NULL";
Нужно решение

LexaK

проблема не в этом
Цитировать
Получается проблема с булевом Если isExist.EOF Тогда
      Возврат "NULL";
Нужно решение

ошибка здесь!
вы явно задаете какие-то значения NULL

CommandText = СтрЗаменить(CommandText,"'NULL'","NULL");


система вам ясно пишет, что по таким-то поля Значение NULL не допустимы!

посмотрите какие у этих полей(которые в сообщении об ошибке) типы данных и передайте
для тип Число/Целое - не NULL а - 0
для тип Строка - не NULL а - '' (пустая строка, две кавычки)
для даты пустую дату
и т.д.

ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск