Делаю множественный ins ert и update в одной строке, для сокрашения кода и его оптимизации. Сделал запрос и засунул данные в массив и с помощью его должен заполнять строки в sql, но выдает ошибку
{ОбщийМодуль.ЭкспортВMySQL.Модуль(30)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 8.0(a) Driver][mysqld-8.0.30]Column count doesn't match val ue count at row 1
Пишет, что разные количества стобцов, но все верно.
Подскажите в чем проблема
{ОбщийМодуль.ЭкспортВMySQL.Модуль(30)}: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 8.0(a) Driver][mysqld-8.0.30]Column count doesn't match val ue count at row 1
Пишет, что разные количества стобцов, но все верно.
Подскажите в чем проблема
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Если пишет, значит так оно и есть.
На второй итерации цикла по выбоке в массиве будет 4 элемента и вы это каким-то чудесным образом пытаетесь запихать в два поля таблицы.
Т.е. текст запроса на второй итерации цикла будет иметь вид:
а какое количество элементов в выборке - известно только вам.
Пишет, что разные количества стобцов, но все верно.
Если пишет, значит так оно и есть.
На второй итерации цикла по выбоке в массиве будет 4 элемента и вы это каким-то чудесным образом пытаетесь запихать в два поля таблицы.
Т.е. текст запроса на второй итерации цикла будет иметь вид:
INS ERT IN TO <TableName>
(id_tag, id_events) VALUES(Значение1, Значение2, Значение3, Значение4) ON DUPLICATE KEY UPDATE......
а какое количество элементов в выборке - известно только вам.
(6)что значит не в цикле? В цикле вы набиваете массив данными
Результирующая строка - за циклом, она будет содержать столько пар значений, сколько элементов в выборке.
INSERT не умеет разобраться со всеми значениями самостоятельно и выполнится один раз
нужно для каждой комбинации значений выполнять свой INSERT
Результирующая строка - за циклом, она будет содержать столько пар значений, сколько элементов в выборке.
INSERT не умеет разобраться со всеми значениями самостоятельно и выполнится один раз
нужно для каждой комбинации значений выполнять свой INSERT
Прикрепленные файлы:
(6)Замените МассивСлов.Добавить(Выборка.id_tag) на МассивСлов.Добавить("(" + Выборка.id_tag)
а МассивСлов.Добавить(Выборка.id_events) на МассивСлов.Добавить("," + Выборка.id_events + ")")
Тогда будет строка вида insert ((значение1, значение2), (значение3, значение4))
Так должно сработать
а МассивСлов.Добавить(Выборка.id_events) на МассивСлов.Добавить("," + Выборка.id_events + ")")
Тогда будет строка вида insert ((значение1, значение2), (значение3, значение4))
Так должно сработать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот