Skip to content

Commit f3fb22c

Browse files
committed
feat: Для выполнения вызовов утилиты sqlcmd реализована возможность указания кодировки вывода через переменную среды SQLCMD_ENCODING.
1 parent 66a9b96 commit f3fb22c

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/core/Классы/ПодключениеMSSQL.os

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1869,9 +1869,23 @@
18691869

18701870
Лог.Отладка("Текст запроса: %1", ТекстЗапроса);
18711871

1872+
КодировкаВывода = КодировкаТекста.UTF8;
1873+
1874+
НастройкаКодировки = ПолучитьПеременнуюСреды("SQLCMD_ENCODING");
1875+
Если ЗначениеЗаполнено(НастройкаКодировки) Тогда
1876+
Попытка
1877+
КодировкаВывода = КодировкаТекста[НастройкаКодировки];
1878+
Исключение
1879+
Лог.Ошибка("В переменной среды ""SQLCMD_ENCODING"" указана некорректная
1880+
| кодировка ""%1"", ожидается ""UTF8"", ""OEM"", ""ANSI"".",
1881+
НастройкаКодировки);
1882+
КонецПопытки;
1883+
КонецЕсли;
1884+
18721885
КомандаРК = Новый Команда;
18731886

18741887
КомандаРК.УстановитьКоманду("sqlcmd");
1888+
КомандаРК.УстановитьКодировкуВывода(КодировкаВывода);
18751889
КомандаРК.ДобавитьПараметр("-S " + Сервер);
18761890
Если ЗначениеЗаполнено(Пользователь) Тогда
18771891
КомандаРК.ДобавитьПараметр("-U " + Пользователь);
@@ -1925,9 +1939,23 @@
19251939
//
19261940
Функция ВыполнитьСкриптыЗапросСУБД(МассивСкриптов, МассивПеременных = Неопределено, РезультатЗапроса = "") Экспорт
19271941

1942+
КодировкаВывода = КодировкаТекста.UTF8;
1943+
1944+
НастройкаКодировки = ПолучитьПеременнуюСреды("SQLCMD_ENCODING");
1945+
Если ЗначениеЗаполнено(НастройкаКодировки) Тогда
1946+
Попытка
1947+
КодировкаВывода = КодировкаТекста[НастройкаКодировки];
1948+
Исключение
1949+
Лог.Ошибка("В переменной среды ""SQLCMD_ENCODING"" указана некорректная
1950+
| кодировка ""%1"", ожидается ""UTF8"", ""OEM"", ""ANSI"".",
1951+
НастройкаКодировки);
1952+
КонецПопытки;
1953+
КонецЕсли;
1954+
19281955
КомандаРК = Новый Команда;
19291956

19301957
КомандаРК.УстановитьКоманду("sqlcmd");
1958+
КомандаРК.УстановитьКодировкуВывода(КодировкаВывода);
19311959
КомандаРК.ДобавитьПараметр("-S " + Сервер);
19321960
Если ЗначениеЗаполнено(Пользователь) Тогда
19331961
КомандаРК.ДобавитьПараметр("-U " + Пользователь);

0 commit comments

Comments
 (0)