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

MS SQL Server

Этот раздел посвящен библиотеке для работы с базами данных MSSQL в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы

Для реализации некоторых функции в этой библиотеке используется внешняя компонента
Пожалуйста, ознакомьтесь с разделом "О внешних компонентах" перед началом работы
Для работы этой библиотеки на Linux необходим OpenSSL 3.x
Узнать больше: "Об использовании OpenSSL во внешних компонентах"

О реализованных методах

Данная библиотека состоит из двух частей: основных методов, вроде подключения и выполнения SQL-запросов, и небольшой ORM для часто встречающихся операций, вроде CREATE, SELECT, INSERT, DELETE и пр. Работа через ORM и через тексты запросов, выполняемые функцией ВыполнитьЗапросSQL(), технически не отличается: ORM просто формирует текст SQL-запроса на основе макетов, но далее также выполняет их этой функцией

По умолчанию, все запросы SELECT возвращают массив выбранных данных, а остальные запросы - только true в поле result при успехе, либо false и текст ошибки в полях result и error соответственно. Для выполнения запросов, требующих возврата данных, но не являющихся запросами SELECT, в функции ВыполнитьЗапросSQL() есть параметр ФорсироватьРезультат

Параметры запросов

Коннектор MSSQL поддерживает использование позиционных параметров. Все значения, передаваемые как при прямом выполнении запросов через функцию ВыполнитьЗапросSQL(), так и в ORM методах с установкой значений, вроде ДобавитьЗаписи и ОбновитьЗаписи, должный представлять из себя структуру вида {'Тип данных': 'Значение'}. Поддерживаются следующие типы данных*:

* В перечне типов MSSQL перечислены только некоторые подходящие типы

Имя типа (ключ структуры)Тип значения 1СПодходит для типов MSSQL
TINYINTЧислоtinyint
SMALLINTЧислоsmallint
INTЧислоint
BIGINTЧислоbigint
FLOAT24Числоfloat(24), real
FLOAT53Числоfloat(53)
NUMERICЧислоdecimal, numeric
DECIMALЧислоdecimal, numeric
BITБулевоbit
NVARCHARСтрокаnvarchar, varchar, nchar, char, ntext, text
UUIDСтрока, УникальныйИдентификаторuniqueidentifier
XMLСтрокаxml
DATEДата, Строкаdate
TIMEДата, Строкаtime
DATETIMEДата, Строкаdatetime, datetime2
DATETIMEOFFSETДата, Строкаdatetimeoffset
BYTESДвоичныеДанныеvarbinary

Получение двоичных данных

Двоичные данные при получении из БД будут представленны как объект (структура) вида {"BYTES": "Base64 строка"} и должны быть преобразованы из Base64 вручную

TLS

Библиотека поддерживает работу в режиме TLS. Для его включения необходимо сформировать настройки TLS при помощи функции ПолучитьНастройкиTls, и передать их как соответствующий параметр в функцию ОткрытьСоединение или одну из функций ORM, поддерживающих данный параметр. Если параметр TLS при вызове этих функций не передан, соединение инициализируется в незащищенном режиме

подсказка

Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции ОткрытьСоединение или неявного, при передаче строки подключения в методы ORM.

Передача настроек Tls совместно с передачей уже созданного соединения в параметр Соединение будет проигнорирована

Совместимость

Технически, реализация коннектора представляет из себя Native компоненту на Rust. Она поставляется в формате zip-архива со сборками для всех основных платформ: x86 и x64 Windows и Linux. Фактическое тестирование проводилось на Windows x64 и, косвенно (через OneScript), на Linux x64