1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-10 22:41:43 +02:00

Дополнение словарей

This commit is contained in:
Anton Titovets
2024-12-30 16:29:06 +03:00
parent 9120e6ab25
commit 4182bd3313
6 changed files with 3707 additions and 3582 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -45,7 +45,7 @@
#Область ОсновныеМетоды
// Создать подключение !NOCLI
// Открыть соединение !NOCLI
// Создает подключение к указанной базе
//
// Параметры:
@@ -53,7 +53,7 @@
//
// Возвращаемое значение:
// Произвольный - Объект коннектора или структура с информацией об ошибке
Функция СоздатьПодключение(Знач База = "") Экспорт
Функция ОткрытьСоединение(Знач База = "") Экспорт
Если ЭтоКоннектор(База) Тогда
Возврат База;
@@ -72,7 +72,7 @@
КонецФункции
// Закрыть подключение !NOCLI
// Закрыть соединение !NOCLI
// Явно закрывает переданное соединение
//
// Параметры:
@@ -80,7 +80,7 @@
//
// Возвращаемое значение:
// Структура Из КлючИЗначение - Результат закрытия соединения
Функция ЗакрытьПодключение(Знач Соединение) Экспорт
Функция ЗакрытьСоединение(Знач Соединение) Экспорт
Если ЭтоКоннектор(Соединение) Тогда
@@ -119,14 +119,15 @@
, Знач Соединение = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТекстЗапроса);
OPI_ПреобразованиеТипов.ПолучитьБулево(ФорсироватьРезультат);
Параметры_ = ОбработатьПараметры(Параметры);
Коннектор = СоздатьПодключение(Соединение);
Коннектор = ОткрытьСоединение(Соединение);
Если ТипЗнч(Коннектор) <> Тип("AddIn.OPI_SQLite.Main") Тогда
Возврат Коннектор;
КонецЕсли;
Результат = Коннектор.Execute(ТекстЗапроса, Параметры_, ФорсироватьРезультат);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат, Ложь);

View File

@@ -2218,7 +2218,9 @@
ПараметрыТеста = Новый Структура;
SQLite_СоздатьПодключение(ПараметрыТеста);
SQLite_ОткрытьСоединение(ПараметрыТеста);
SQLite_ЗакрытьСоединение(ПараметрыТеста);
SQLite_ВыполнитьЗапросSQL(ПараметрыТеста);
КонецПроцедуры
@@ -16065,12 +16067,12 @@
#Область SQLite
Процедура SQLite_СоздатьПодключение(ПараметрыФункции)
Процедура SQLite_ОткрытьСоединение(ПараметрыФункции)
ИВФ = ПолучитьИмяВременногоФайла("sqlite");
БазаНаДиске = OPI_SQLite.СоздатьПодключение(ИВФ);
БазаВПамяти = OPI_SQLite.СоздатьПодключение();
БазаНаДиске = OPI_SQLite.ОткрытьСоединение(ИВФ);
БазаВПамяти = OPI_SQLite.ОткрытьСоединение();
// END
@@ -16080,7 +16082,7 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(БазаВПамяти, "СоздатьПодключение (im)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_Компонента(БазаВПамяти, "AddIn.OPI_SQLite.Main");
Закрытие = OPI_SQLite.ЗакрытьПодключение(БазаНаДиске);
Закрытие = OPI_SQLite.ЗакрытьСоединение(БазаНаДиске);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Закрытие, "ЗакрытьПодключение", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Закрытие);
@@ -16093,6 +16095,119 @@
КонецПроцедуры
Процедура SQLite_ЗакрытьСоединение(ПараметрыФункции)
ИВФ = ПолучитьИмяВременногоФайла("sqlite");
Соединение = OPI_SQLite.ОткрытьСоединение(ИВФ);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Соединение, "ОткрытьСоединение (закрытие)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_Компонента(Соединение, "AddIn.OPI_SQLite.Main"); // SKIP
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Закрытие, "ЗакрытьПодключение", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Закрытие);
Попытка
УдалитьФайлы(ИВФ);
Исключение
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(ОписаниеОшибки(), "Ошибка удаления файла базы", "SQLite");
КонецПопытки
КонецПроцедуры
Процедура SQLite_ВыполнитьЗапросSQL(ПараметрыФункции)
ИВФ = ПолучитьИмяВременногоФайла("sqlite");
Соединение = OPI_SQLite.ОткрытьСоединение(ИВФ);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Соединение, "ОткрытьСоединение (запрос)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_Компонента(Соединение, "AddIn.OPI_SQLite.Main"); // SKIP
// CREATE
ТекстЗапроса = "
|CREATE TABLE test_table (
|id INTEGER PRIMARY KEY,
|name TEXT,
|age INTEGER,
|salary REAL,
|is_active BOOLEAN,
|created_at DATETIME,
|data BLOB
|);";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Create)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// INSERT с параметрами
ТекстЗапроса = "
|INSERT INTO test_table (name, age, salary, is_active, created_at, data)
|VALUES (?1, ?2, ?3, ?4, ?5, ?6);";
МассивПараметров = Новый Массив;
МассивПараметров.Добавить("Vitaly"); // TEXT
МассивПараметров.Добавить(25); // INTEGER
МассивПараметров.Добавить(1000.12); // REAL
МассивПараметров.Добавить(Истина); // BOOL
МассивПараметров.Добавить(OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME
МассивПараметров.Добавить(ПолучитьДвоичныеДанныеИзСтроки("Hello world")); // BLOB
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, МассивПараметров, , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Insert)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// SELECT (Результат этого запроса приведен в следующем блоке)
ТекстЗапроса = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Select)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// Транзакция
ТекстЗапроса = "BEGIN TRANSACTION;
| CREATE TABLE IF NOT EXISTS users (
| id INTEGER PRIMARY KEY AUTOINCREMENT,
| name TEXT NOT NULL,
| age INTEGER NOT NULL
| );
| INSERT INTO users (name, age) VALUES ('Alice', 30);
| INSERT INTO users (name, age) VALUES ('Bob', 25);
| INSERT INTO users (name, age) VALUES ('Charlie', 35);
| COMMIT;";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Transaction)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗакрытьПодключение (запрос)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
Попытка
УдалитьФайлы(ИВФ);
Исключение
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(ОписаниеОшибки(), "Ошибка удаления файла базы", "SQLite");
КонецПопытки
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@@ -2106,9 +2106,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции

View File

@@ -45,7 +45,7 @@
#Область ОсновныеМетоды
// Создать соединение !NOCLI
// Открыть соединение !NOCLI
// Создает подключение к указанной базе
//
// Параметры:

View File

@@ -16132,24 +16132,23 @@
ТекстЗапроса = "
|CREATE TABLE test_table (
|id INTEGER PRIMARY KEY, -- Автоинкрементируемый целочисленный идентификатор
|name TEXT, -- Текстовое поле
|age INTEGER, -- Целое число
|salary REAL, -- Число с плавающей точкой
|is_active BOOLEAN, -- Логическое значение
|created_at DATETIME, -- Дата/время в формате ISO 8601
|id INTEGER PRIMARY KEY,
|name TEXT,
|age INTEGER,
|salary REAL,
|is_active BOOLEAN,
|created_at DATETIME,
|data BLOB
|);";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапрос (Create)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Create)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// INSERT с параметрами
ТекстЗапроса = "
|-- Вставляем данные с использованием позиционных параметров
|INSERT INTO test_table (name, age, salary, is_active, created_at, data)
|VALUES (?1, ?2, ?3, ?4, ?5, ?6);";
@@ -16163,8 +16162,8 @@
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, МассивПараметров, , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапрос (Insert)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Insert)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// SELECT (Результат этого запроса приведен в следующем блоке)
@@ -16172,8 +16171,8 @@
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапрос (Select)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Select)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// Транзакция
@@ -16191,8 +16190,8 @@
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапрос (Transaction)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Transaction)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);