Выгружаем из 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. SkyVixen пишет:

    Скажите, как можно задать имя нового листа, если оно (имя) содержит пробел? Например, “Лист 1″ или “Таблица товаров и цен”

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