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

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

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

Функция ДобавитьЗаписи(Знач Таблица, Знач МассивДанных, Знач Транзакция = Истина, Знач Соединение = "", Знач 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://hut.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);