Перейти к основному содержимому

Добавить записи

Добавляет записи в таблицу

Функция ДобавитьЗаписи(Знач Таблица, Знач МассивДанных, Знач Транзакция = Истина, Знач Соединение = "", Знач Tls = "") Экспорт

ПараметрCLI опцияТипОбяз.Назначение
Таблица--tableСтрокаИмя таблицы
МассивДанных--rowsМассив Из СтруктураМассив структур данных строк: Ключ > поле, Значение > значение поля
Транзакция--trnБулевоИстина > добавление записей в транзакции с откатом при ошибке
Соединение--dbcСтрока, ПроизвольныйСоединение или строка подключения
Tls--tlsСтруктура Из КлючИЗначениеНастройки TLS, если необходимо. См. ПолучитьНастройкиTls
Возвращаемое значение

Соответствие Из КлючИЗначение - Результат выполнения запроса

подсказка

Данные записей указываются как массив структур вида:
{'Имя поля 1': {'Тип данных': 'Значение'}, 'Имя поля 2': {'Тип данных': 'Значение'},...}

Список доступных типов описан на начальной странице документации библиотеки MSSQL


Пример использования для 1С:Предприятие/OneScript
Адрес = "127.0.0.1";
Логин = "SA";
Пароль = "12we...";
База = "testbase1";

НастройкиTLS = OPI_MSSQL.ПолучитьНастройкиTLS(Истина);
СтрокаПодключения = OPI_MSSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);

Таблица = "testtable";
МассивЗаписей = Новый Массив;

Картинка = "https://releases.openintegrations.dev/test_data/picture.jpg";
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные

XML = "<?xml version=""1.0""?><root>
| <element>
| <name>Пример</name>
| <value>123</value>
| </element>
| <element>
| <name>Тест</name>
| <value>456</value>
| </element>
|</root>";

ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
ТекущаяДатаЧП = OPI_Инструменты.ДатаRFC3339(ТекущаяДата, "+05:00");

СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("TINYINT" , 5));
СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("SMALLINT" , 2000));
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 200000));
СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 20000000000));
СтруктураЗаписи.Вставить("float24_field" , Новый Структура("FLOAT24" , 10.1234567));
СтруктураЗаписи.Вставить("float53_field" , Новый Структура("FLOAT53" , 10.123456789123456));
СтруктураЗаписи.Вставить("bit_field" , Новый Структура("BIT" , Истина));
СтруктураЗаписи.Вставить("nvarchar_field" , Новый Структура("NVARCHAR" , "Some text"));
СтруктураЗаписи.Вставить("varbinary_field", Новый Структура("BYTES" , Картинка));
СтруктураЗаписи.Вставить("uid_field" , Новый Структура("UUID" , Новый УникальныйИдентификатор));
СтруктураЗаписи.Вставить("numeric_field" , Новый Структура("NUMERIC" , 5.333));
СтруктураЗаписи.Вставить("xml_field" , Новый Структура("XML" , XML));
СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
СтруктураЗаписи.Вставить("dto_field" , Новый Структура("DATETIMEOFFSET", ТекущаяДатаЧП));
СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATETIME" , ТекущаяДата));

МассивЗаписей.Добавить(СтруктураЗаписи);

// При использовании строки подключения инициализируется новое соединение,
// которое будет закрыто после выполнения функции.
// В случае выполнения нескольких операций желательно использовать одно соединение,
// заранее созданное функцией ОткрытьСоединение()
Результат = OPI_MSSQL.ДобавитьЗаписи(Таблица, МассивЗаписей, Истина, СтрокаПодключения, НастройкиTLS);
# JSON данные также могут быть переданы как путь к файлу .json

oint mssql ДобавитьЗаписи \
--table "testtable" \
--rows "[{'tinyint_field':{'TINYINT':'5'},'smallint_field':{'SMALLINT':'2000'},'int_field':{'INT':'200000'},'bigint_field':{'BIGINT':'20000000000'},'float24_field':{'FLOAT24':'10.1234567'},'float53_field':{'FLOAT53':'10.1234567891235'},'bit_field':{'BIT':true},'nvarchar_field':{'NVARCHAR':'Some text'},'varbinary_field':{'BYTES':'C:\\Users\\bayselonarrend\\AppData\\Local\\Temp\\n20x341k.4fk'},'uid_field':{'UUID':'e2c6e955-4aac-4a19-844b-fcc2ef3fb9ec'},'numeric_field':{'NUMERIC':'5.333'},'xml_field':{'XML':'<?xml version=\"1.0\"?><root>\n <element>\n <name>Пример</name>\n <value>123</value>\n </element>\n <element>\n <name>Тест</name>\n <value>456</value>\n </element>\n</root>'},'date_field':{'DATE':'7/20/2026 8:43:40 AM'},'time_field':{'TIME':'7/20/2026 8:43:40 AM'},'dto_field':{'DATETIMEOFFSET':'7/20/2026 6:43:40 AM'},'datetime_field':{'DATETIME':'7/20/2026 8:43:40 AM'}}]" \
--trn true \
--dbc "Server=127.0.0.1;Database=***;User Id=SA;Password=***;" \
--tls "{'use_tls':true,'accept_invalid_certs':true}"
Результат
{
"commit": {
"result": true
},
"result": true,
"rows": 1,
"errors": []
}