Выгружаем из 1С в EXCEL с помощью ADO. Часть III. Решаем проблему с кавычками.
Многие читатели предыдущих статей, посвященных выгрузке из 1С в EXCEL с помощью технологии ADO, столкнулись с проблемой, которая возникает когда в значении поля, которое подставляется в запрос к базе данных, встречается апостроф(одинарная кавычка). В данной статье будет приведено простое и элегантное решение данной проблемы, которое сообщил один из посетителей сайта.
Рассмотрим фрагмент кода из первой статьи «Выгружаем из 1С в EXCEL с помощью ADO. Часть I»
// Заполняем таблицу данными выборки Пока Выборка.Следующий() Цикл Command.CommandText = " |INSERT INTO [Table] VALUES ('"+Выборка.Код+"','" +Выборка.Наименование+"')"; Command.Execute(); КонецЦикла;
Ошибка возникает если Выборка.Код или Выборка.Наименование содержат апостроф. Чтобы избежать этого я предлагал либо экранировать, либо заменять этот символ другим. Но более правильное решение этой проблемы заключается в использовании параметров:
Command.CommandText = "INSERT INTO [Table] VALUES (@Код, @Наименование)"; Пока Выборка.Следующий() Цикл Command.Parameters("@Код").Value = Выборка.Код; Command.Parameters("@Наименование").Value = Выборка.Наименование; Command.Execute(); КонецЦикла;
Если публикация помогла Вам справится с проблемой, решить задачу или расширить свои знания - поддержите автора.
Комментарии:
Чтобы оставить комментарий, Вы должны войти в систему.
Скажите, как можно задать имя нового листа, если оно (имя) содержит пробел? Например, «Лист 1» или «Таблица товаров и цен»
Отличные статьи, жаль они не попались мне пол года назад.