понедельник, 14 октября 2013 г.

Выгружаем из 1С в EXCEL с помощью ADO. Решаем проблему с кавычками.

Многие читатели предыдущих статей, посвященных выгрузке из 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();
КонецЦикла;


Если публикация показалась Вам полезной и интересной не забывайте оставлять свои отзывы и комментарии, так же Вы можете выразить свою благодарность материально.

Комментариев нет:

Отправить комментарий