Гарантировать записи
Добавляет записи или обновляет данные существующих при совпадении ключевых полей
- Параметры
- Расширенный вызов ?
Функция ГарантироватьЗаписи(Знач Таблица, Знач МассивДанных, Знач КлючевыеПоля = "", Знач Транзакция = Истина, Знач Соединение = "", Знач Tls = "") Экспорт
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|---|---|---|---|---|
| Таблица | --table | Строка | ✔ | Имя таблицы |
| МассивДанных | --rows | Массив Из Структура | ✔ | Массив структур данных строк: Ключ > поле, Значение > значение поля |
| КлючевыеПоля | --unique | Массив Из Строка | ✖ | Имя или имена ключевых полей таблицы для проверки уникальности |
| Транзакция | --trn | Булево | ✖ | Истина > добавление записей в транзакции с откатом при ошибке |
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
| Tls | --tls | Структура Из КлючИЗначение | ✖ | Настройки TLS, если необходимо. См. ПолучитьНастройкиTls |
Возвращаемое значение
Соответствие Из КлючИЗначение - Результат выполнения запроса
| Параметр | Описание |
|---|---|
| addin_mode | Ручной выбор режима подключения внешней компоненты (для 1С): Изолированно, НеИзолированно |
| dontwait | Создает фоновое задание и возвращает его данные (только для 1С и OneScript) |
Пример использования для 1С:Предприятие/OneScript
Адрес = "127.0.0.1";
Логин = "SA";
Пароль = "12we...";
База = "testbase1";
НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "test_guarantee";
МассивДанных = Новый Массив;
СтруктураСтроки1 = Новый Структура;
СтруктураСтроки1.Вставить("id" , Новый Структура("INT" , 1));
СтруктураСтроки1.Вставить("name" , Новый Структура("NVARCHAR", "Vitaly"));
СтруктураСтроки1.Вставить("age" , Новый Структура("INT" , 25));
СтруктураСтроки1.Вставить("salary", Новый Структура("DECIMAL" , 1000.12));
СтруктураСтроки2 = Новый Структура;
СтруктураСтроки2.Вставить("id" , Новый Структура("INT" , 2));
СтруктураСтроки2.Вставить("name" , Новый Структура("NVARCHAR", "Lesha"));
СтруктураСтроки2.Вставить("age" , Новый Структура("INT" , 20));
СтруктураСтроки2.Вставить("salary", Новый Структура("DECIMAL" , 200.20));
МассивДанных.Добавить(СтруктураСтроки1);
МассивДанных.Добавить(СтруктураСтроки2);
КлючевыеПоля = Новый Массив;
КлючевыеПоля.Добавить("id");
Результат = OPI_MSSQL.ГарантироватьЗаписи(Таблица, МассивДанных, КлючевыеПоля, , СтрокаПодключения, НастройкиTLS);
- Bash
- CMD/Bat
# JSON данные также могут быть переданы как путь к файлу .json
oint mssql ГарантироватьЗаписи \
--table "test_guarantee" \
--rows "[{'id':{'INT':'1'},'name':{'NVARCHAR':'Vitaly Updated'},'age':{'INT':'25'},'salary':{'DECIMAL':'1500.5'}},{'id':{'INT':'3'},'name':{'NVARCHAR':'Anton'},'age':{'INT':'30'},'salary':{'DECIMAL':'3000'}}]" \
--unique "['id']" \
--db "Server=127.0.0.1;Database=testbase1;User Id=SA;Password="'"12we3456!2154"'";" \
--tls "{'use_tls':true,'accept_invalid_certs':true}"
:: JSON данные также могут быть переданы как путь к файлу .json
oint mssql ГарантироватьЗаписи ^
--table "test_guarantee" ^
--rows "[{'id':{'INT':'1'},'name':{'NVARCHAR':'Vitaly Updated'},'age':{'INT':'25'},'salary':{'DECIMAL':'1500.5'}},{'id':{'INT':'3'},'name':{'NVARCHAR':'Anton'},'age':{'INT':'30'},'salary':{'DECIMAL':'3000'}}]" ^
--unique "['id']" ^
--db "Server=127.0.0.1;Database=testbase1;User Id=SA;Password="'"12we3456!2154"'";" ^
--tls "{'use_tls':true,'accept_invalid_certs':true}"