1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2026-06-20 09:19:27 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot)
2025-02-27 13:01:50 +03:00
parent 7a9f9518f3
commit 4dc9a20cc4
66 changed files with 7067 additions and 6495 deletions
+1 -1
View File
@@ -2132,7 +2132,7 @@ def test_sqlite(){
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe sqlite ExecuteSQLQuery --sql "test" --params "test" --force "test" --db "test" --debug --test '
powershell encoding: 'UTF-8', script:'./oint.exe sqlite ExecuteSQLQuery --sql "test" --params "test" --force "test" --db "test" --exts "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
+1 -1
View File
@@ -2132,7 +2132,7 @@ def test_sqlite(){
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'./oint.exe sqlite ВыполнитьЗапросSQL --sql "test" --params "test" --force "test" --db "test" --debug --test '
powershell encoding: 'UTF-8', script:'./oint.exe sqlite ВыполнитьЗапросSQL --sql "test" --params "test" --force "test" --db "test" --exts "test" --debug --test '
}
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
+4
View File
@@ -0,0 +1,4 @@
{
"Base": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\v8_4102_79.sqlite",
"Extension": "https://api.athenaeum.digital/test_data/uuid.dll"
}
+2 -1
View File
@@ -1,3 +1,4 @@
{
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
"Image": "https://api.athenaeum.digital/test_data/picture.jpg",
"Extension": "https://api.athenaeum.digital/test_data/uuid.dll"
}
+1 -1
View File
@@ -4,7 +4,7 @@
PictureFile = GetTempFileName("png");
Image.Write(PictureFile); // PictureFile - File to disk
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
DataArray = New Array;
+1 -1
View File
@@ -1,4 +1,4 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Result = OPI_SQLite.ClearTable(Table, Base);
+6
View File
@@ -0,0 +1,6 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Extension = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
Connection = OPI_SQLite.CreateConnection(Base);
Result = OPI_SQLite.ConnectExtension(Extension, EntryPoint, Connection);
+1 -1
View File
@@ -1,4 +1,4 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
ColoumnsStruct = New Structure;
+1 -1
View File
@@ -1,4 +1,4 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Filters = New Array;
+1 -1
View File
@@ -1,4 +1,4 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Result = OPI_SQLite.DeleteTable(Table, Base);
+12
View File
@@ -57,4 +57,16 @@
Result = OPI_SQLite.ExecuteSQLQuery(QueryText, , , Connection);
// With extension
Extension = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Result = OPI_SQLite.ExecuteSQLQuery(QueryText, , , Connection, ExtensionMap);
Closing = OPI_SQLite.CloseConnection(Connection);
+1 -1
View File
@@ -1,4 +1,4 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Fields = New Array;
+1 -1
View File
@@ -1,4 +1,4 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Result = OPI_SQLite.GetTableInformation(Table, Base);
+1 -1
View File
@@ -1,4 +1,4 @@
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
FieldsStructure = New Structure;
+53
View File
@@ -0,0 +1,53 @@
---
sidebar_position: 5
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Connect extension
Connects the SQLite extension for the specified connection
`Function ConnectExtension(Val Extension, Val EntryPoint = "", Val Connection = "") Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
| Extension | - | String, BinaryData | ✔ | Extension data or filepath |
| EntryPoint | - | String | ✖ | Expansion entry point, if required |
| Connection | - | String, Arbitrary | ✖ | Existing connection or path to the base. In memory, if not filled |
Returns: Map Of KeyAndValue - Result of extension connecting
<br/>
:::tip
The extension is active only for the current connection. You must reconnect it each time a new connection is established
Similar to using the `Extensions` parameter (`exts` in CLI) of the `ExecuteSQLQuery` function
Parameters with Binary data type can also accept file paths on disk and URLs
:::
:::caution
**NOCLI:** this method is not available in CLI version
:::
<br/>
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Extension = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
Connection = OPI_SQLite.CreateConnection(Base);
Result = OPI_SQLite.ConnectExtension(Extension, EntryPoint, Connection);
```
+16 -1
View File
@@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem';
`Function ExecuteSQLQuery(Val QueryText, Val Parameters = "", Val ForceResult = False, Val Connection = "") Export`
`Function ExecuteSQLQuery(Val QueryText, Val Parameters = "", Val ForceResult = False, Val Connection = "", Val Extensions = Undefined) Export`
| Parameter | CLI option | Type | Required | Description |
|-|-|-|-|-|
@@ -18,6 +18,7 @@ import TabItem from '@theme/TabItem';
| Parameters | --params | Array Of Arbitrary | &#x2716; | Array of positional parameters of the request |
| ForceResult | --force | Boolean | &#x2716; | Includes an attempt to retrieve the result, even for nonSELECT queries |
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or path to the base. In memory, if not filled |
| Extensions | --exts | Map Of KeyAndValue | &#x2716; | Extensions: Key > filepath or extension data, Value > entry point |
Returns: Map Of KeyAndValue - Result of query execution
@@ -28,6 +29,8 @@ import TabItem from '@theme/TabItem';
Available parameter types: String, Number, Date, Boolean, BinaryData. Binary data can also be passed as a `{'blob':File path}` structure. Binary data (BLOB) values are returned as `{'blob':Base64 string}`
Without specifying the `ForcifyResult` flag, result data is returned only for queries beginning with `SELECT` keyword For other queries, `result:true` or `false` with error text is returned
When performing multiple requests within a single connection, it is better to connect extensions once using the `ConnectExtension` function
:::
<br/>
@@ -93,6 +96,18 @@ Without specifying the `ForcifyResult` flag, result data is returned only for qu
Result = OPI_SQLite.ExecuteSQLQuery(QueryText, , , Connection);
// With extension
Extension = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Result = OPI_SQLite.ExecuteSQLQuery(QueryText, , , Connection, ExtensionMap);
Closing = OPI_SQLite.CloseConnection(Connection);
```
+1 -1
View File
@@ -38,7 +38,7 @@ Binary data can also be transferred as a structure `{'blob':File path}`
PictureFile = GetTempFileName("png");
Image.Write(PictureFile); // PictureFile - File to disk
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
DataArray = New Array;
+1 -1
View File
@@ -26,7 +26,7 @@ import TabItem from '@theme/TabItem';
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Result = OPI_SQLite.ClearTable(Table, Base);
+1 -1
View File
@@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem';
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
ColoumnsStruct = New Structure;
+1 -1
View File
@@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem';
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Filters = New Array;
+1 -1
View File
@@ -26,7 +26,7 @@ import TabItem from '@theme/TabItem';
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Result = OPI_SQLite.DeleteTable(Table, Base);
+1 -1
View File
@@ -34,7 +34,7 @@ Values of the Binary data type (BLOB) are returned as `{'blob':Base64 string}`
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Fields = New Array;
+1 -1
View File
@@ -26,7 +26,7 @@ import TabItem from '@theme/TabItem';
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
Result = OPI_SQLite.GetTableInformation(Table, Base);
+1 -1
View File
@@ -28,7 +28,7 @@ import TabItem from '@theme/TabItem';
```bsl title="1C:Enterprise/OneScript code example"
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
Base = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Table = "test";
FieldsStructure = New Structure;
+2 -1
View File
@@ -1,3 +1,4 @@
{
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg",
"Расширение": "https://api.athenaeum.digital/test_data/uuid.dll"
}
@@ -0,0 +1,4 @@
{
"База": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\v8_4102_79.sqlite",
"Расширение": "https://api.athenaeum.digital/test_data/uuid.dll"
}
@@ -57,4 +57,16 @@
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
// С расширением
Расширение = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
СоответствиеРасширений = Новый Соответствие;
СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
ТекстЗапроса = "SELECT uuid4();";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение, СоответствиеРасширений);
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
+1 -1
View File
@@ -4,7 +4,7 @@
ФайлКартинки = ПолучитьИмяВременногоФайла("png");
Картинка.Записать(ФайлКартинки); // ФайлКартинки - Файл на диске
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
МассивДанных = Новый Массив;
+1 -1
View File
@@ -1,4 +1,4 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
СтруктураПолей = Новый Структура;
+1 -1
View File
@@ -1,4 +1,4 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Результат = OPI_SQLite.ОчиститьТаблицу(Таблица, База);
@@ -0,0 +1,6 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Расширение = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
Соединение = OPI_SQLite.ОткрытьСоединение(База);
Результат = OPI_SQLite.ПодключитьРасширение(Расширение, ТочкаВхода, Соединение);
+1 -1
View File
@@ -1,4 +1,4 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Поля = Новый Массив;
@@ -1,4 +1,4 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Результат = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
+1 -1
View File
@@ -1,4 +1,4 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
СтруктураКолонок = Новый Структура;
+1 -1
View File
@@ -1,4 +1,4 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Фильтры = Новый Массив;
+1 -1
View File
@@ -1,4 +1,4 @@
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Результат = OPI_SQLite.УдалитьТаблицу(Таблица, База);
+53
View File
@@ -0,0 +1,53 @@
---
sidebar_position: 5
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
# Подключить расширение
Подключает расширение SQLite для указанного соединения
`Функция ПодключитьРасширение(Знач Расширение, Знач ТочкаВхода = "", Знач Соединение = "") Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
| Расширение | - | Строка, ДвоичныеДанные | &#x2714; | Данные или путь к расширению |
| ТочкаВхода | - | Строка | &#x2716; | Точка входа расширения, если необходима |
| Соединение | - | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе. In memory, если не заполнено |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат подключения расширения
<br/>
:::tip
Расширение активно только в рамках соединения. При каждом новом соединении его необходимо подключать заново
Аналогично использованию параметра `Расширения` (`exts` в CLI) функции `ВыполнитьЗапросSQL`
Параметры с типом данных Двоичные данные могут принимать также пути к файлам на диске и URL
:::
:::caution
**NOCLI:** данный метод недоступен для использования в CLI версии
:::
<br/>
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Расширение = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
Соединение = OPI_SQLite.ОткрытьСоединение(База);
Результат = OPI_SQLite.ПодключитьРасширение(Расширение, ТочкаВхода, Соединение);
```
+16 -1
View File
@@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem';
`Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса, Знач Параметры = "", Знач ФорсироватьРезультат = Ложь, Знач Соединение = "") Экспорт`
`Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса, Знач Параметры = "", Знач ФорсироватьРезультат = Ложь, Знач Соединение = "", Знач Расширения = Неопределено) Экспорт`
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|-|-|-|-|-|
@@ -18,6 +18,7 @@ import TabItem from '@theme/TabItem';
| Параметры | --params | Массив Из Произвольный | &#x2716; | Массив позиционных параметров запроса |
| ФорсироватьРезультат | --force | Булево | &#x2716; | Включает попытку получения результата, даже для не SELECT запросов |
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе. In memory, если не заполнено |
| Расширения | --exts | Соответствие Из КлючИЗначение | &#x2716; | Расширения: Ключ > путь или данные расширения, Значение > точка входа |
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
@@ -28,6 +29,8 @@ import TabItem from '@theme/TabItem';
Доступные типы параметров: Cтрока, Число, Дата, Булево, ДвоичныеДанные. Двоичные данные могут также быть переданы как структура `{'blob':Путь к файлу}`. Возвращаются значения двоичных данных (BLOB) в виде `{'blob':Base64 строка}`
Без указания флага `ФорсироватьРезультат`, чтение результата осуществляется только для запросов, начинающихся с `SELECT` Для остальных запросов возвращается `result:true` или `false` с текстом ошибки
При выполнении нескольких запросов в рамках одного соединения, расширения лучше подключить один раз при помощи функции `ПодключитьРасширение`
:::
<br/>
@@ -93,6 +96,18 @@ import TabItem from '@theme/TabItem';
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
// С расширением
Расширение = "https://api.athenaeum.digital/test_data/uuid.dll"; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
СоответствиеРасширений = Новый Соответствие;
СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
ТекстЗапроса = "SELECT uuid4();";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение, СоответствиеРасширений);
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
```
+1 -1
View File
@@ -38,7 +38,7 @@ import TabItem from '@theme/TabItem';
ФайлКартинки = ПолучитьИмяВременногоФайла("png");
Картинка.Записать(ФайлКартинки); // ФайлКартинки - Файл на диске
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
МассивДанных = Новый Массив;
+1 -1
View File
@@ -26,7 +26,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Результат = OPI_SQLite.ОчиститьТаблицу(Таблица, База);
+1 -1
View File
@@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
СтруктураКолонок = Новый Структура;
+1 -1
View File
@@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Фильтры = Новый Массив;
+1 -1
View File
@@ -26,7 +26,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Результат = OPI_SQLite.УдалитьТаблицу(Таблица, База);
+1 -1
View File
@@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Поля = Новый Массив;
+1 -1
View File
@@ -26,7 +26,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
Результат = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
+1 -1
View File
@@ -28,7 +28,7 @@ import TabItem from '@theme/TabItem';
```bsl title="Пример использования для 1С:Предприятие/OneScript"
База = "C:\Users\Administrator\AppData\Local\Temp\v8_761F_2fd.sqlite";
База = "C:\Users\Administrator\AppData\Local\Temp\v8_4102_79.sqlite";
Таблица = "test";
СтруктураПолей = Новый Структура;
+6340 -6340
View File
File diff suppressed because it is too large Load Diff
+66 -1
View File
@@ -122,19 +122,22 @@ EndFunction
// as `{'blob':Base64 string}`
// Without specifying the `ForcifyResult` flag, result data is returned only for queries beginning with `SELECT` keyword^^
// For other queries, `result:true` or `false` with error text is returned
// When performing multiple requests within a single connection, it is better to connect extensions once using the `ConnectExtension` function
//
// Parameters:
// QueryText - String - Database query text - sql
// Parameters - Array Of Arbitrary - Array of positional parameters of the request - params
// ForceResult - Boolean - Includes an attempt to retrieve the result, even for nonSELECT queries - force
// Connection - String, Arbitrary - Existing connection or path to the base. In memory, if not filled - db
// Extensions - Map Of KeyAndValue - Extensions: Key > filepath or extension data, Value > entry point - exts
//
// Returns:
// Map Of KeyAndValue - Result of query execution
Function ExecuteSQLQuery(Val QueryText
, Val Parameters = ""
, Val ForceResult = False
, Val Connection = "") Export
, Val Connection = ""
, Val Extensions = Undefined) Export
OPI_TypeConversion.GetLine(QueryText, True);
OPI_TypeConversion.GetBoolean(ForceResult);
@@ -146,6 +149,22 @@ Function ExecuteSQLQuery(Val QueryText
Return Connector;
EndIf;
If ValueIsFilled(Extensions) Then
OPI_TypeConversion.GetKeyValueCollection(Extensions, "Incorrect collection of extensions!");
For Each Extension In Extensions Do
ExtensionConnection = ConnectExtension(Extension.Key, Extension.Value, Connector);
If Not ExtensionConnection["result"] Then
Return ExtensionConnection;
EndIf;
EndDo;
EndIf;
Result = Connector.Execute(QueryText, Parameters_, ForceResult);
Result = OPI_Tools.JsonToStructure(Result);
@@ -153,6 +172,52 @@ Function ExecuteSQLQuery(Val QueryText
EndFunction
// Connect extension !NOCLI
// Connects the SQLite extension for the specified connection
//
// Note
// The extension is active only for the current connection. You must reconnect it each time a new connection is established
// Similar to using the `Extensions` parameter (`exts` in CLI) of the `ExecuteSQLQuery` function
//
// Parameters:
// Extension - String, BinaryData - Extension data or filepath - ext
// EntryPoint - String - Expansion entry point, if required - point
// Connection - String, Arbitrary - Existing connection or path to the base. In memory, if not filled - db
//
// Returns:
// Map Of KeyAndValue - Result of extension connecting
Function ConnectExtension(Val Extension, Val EntryPoint = "", Val Connection = "") Export
Extension_ = Extension;
OPI_TypeConversion.GetFileOnDisk(Extension_);
OPI_TypeConversion.GetLine(EntryPoint);
Temporary = Extension_["Temporary"];
FilePath = Extension_["Path"];
Connector = CreateConnection(Connection);
If TypeOf(Connector) <> Type("AddIn.OPI_SQLite.Main") Then
Return Connector;
EndIf;
Result = Connector.LoadExtension(FilePath, EntryPoint);
Result = OPI_Tools.JsonToStructure(Result);
If Temporary Then
Try
DeleteFiles(FilePath);
Except
Return Result;
EndTry;
EndIf;
Return Result;
EndFunction
#EndRegion
#Region ORM
+73 -1
View File
@@ -2266,12 +2266,25 @@ EndProcedure
Procedure SQLL_CommonMethods() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Picture", TestParameters);
Base = GetTempFileName("sqlite");
OPI_TestDataRetrieval.WriteParameter("SQLite_DB", Base);
OPI_Tools.AddField("SQLite_DB", Base, "String", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("SQLite_Ext", TestParameters);
SQLite_CreateConnection(TestParameters);
SQLite_CloseConnection(TestParameters);
SQLite_ExecuteSQLQuery(TestParameters);
SQLite_IsConnector(TestParameters);
SQLite_ConnectExtension(TestParameters);
Try
DeleteFiles(Base);
Except
OPI_TestDataRetrieval.WriteLog(ErrorDescription(), "Database file deletion error", "SQLite");
EndTry;
EndProcedure
@@ -17006,6 +17019,22 @@ Procedure SQLite_ExecuteSQLQuery(FunctionParameters)
OPI_TestDataRetrieval.WriteLog(Result, "ExecuteSQLQuery (Transaction)", "SQLite"); // SKIP
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result); // SKIP
// With extension
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Result = OPI_SQLite.ExecuteSQLQuery(QueryText, , , Connection, ExtensionMap);
OPI_TestDataRetrieval.WriteLog(Result, "ExecuteSQLQuery (extension)", "SQLite"); // SKIP
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result); // SKIP
OPI_TestDataRetrieval.Check_Array(Result["data"], 1); // SKIP
Closing = OPI_SQLite.CloseConnection(Connection);
// END
@@ -17350,6 +17379,49 @@ Procedure SQLite_ClearTable(FunctionParameters)
EndProcedure
Procedure SQLite_ConnectExtension(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
Connection = OPI_SQLite.CreateConnection(Base);
Result = OPI_SQLite.ConnectExtension(Extension, EntryPoint, Connection);
// END
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
TFN = GetTempFileName("dll");
CopyFile(Extension, TFN);
Result = OPI_SQLite.ConnectExtension(TFN, EntryPoint, Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (path)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
Result = OPI_SQLite.ConnectExtension(New BinaryData(TFN), EntryPoint, Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (binary)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
Result = OPI_SQLite.ExecuteSQLQuery("select uuid4();", , , Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (check)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
OPI_TestDataRetrieval.Check_Array(Result["data"], 1);
Result = OPI_SQLite.CloseConnection(Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (closing)", "SQLite");
Try
DeleteFiles(TFN);
Except
OPI_TestDataRetrieval.WriteLog(ErrorDescription(), "Error deleting extension file", "SQLite");
EndTry;
EndProcedure
#EndRegion
#Region PostgreSQL
+21
View File
@@ -19050,6 +19050,27 @@ Procedure CLI_SQLite_ExecuteSQLQuery(FunctionParameters)
Image = New BinaryData(PictureFile);
OPI_TestDataRetrieval.Check_Equality(Base64Value(Result["data"][0]["data"]["blob"]).Size(), Image.Size());
// With extension
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Options = New Structure;
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, ""));
Options.Insert("db" , TFN);
Options.Insert("exts", ExtensionMap);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (extension)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
OPI_TestDataRetrieval.Check_Array(Result["data"], 1);
Try
DeleteFiles(TFN);
DeleteFiles(PictureFile);
+27
View File
@@ -325,6 +325,33 @@ Procedure GetNumber(Value) Export
EndProcedure
Procedure GetFileOnDisk(Value, Val Extension = Undefined) Export
ReturnStructure = New Structure("Path,Temporary", "", False);
ValueAsString = OPI_Tools.NumberToString(Value);
ValueFile = New File(ValueAsString);
If ValueFile.Exist() Then
ReturnStructure.Insert("Path", ValueFile.FullName);
Else
OPI_TypeConversion.GetBinaryData(Value, True);
//@skip-check missing-temporary-file-deletion
Path = GetTempFileName(Extension);
Value.Write(Path);
ReturnStructure.Insert("Path" , Path);
ReturnStructure.Insert("Temporary", True);
EndIf;
Value = ReturnStructure;
EndProcedure
#EndRegion
#Region Private
+66 -1
View File
@@ -122,19 +122,22 @@ EndFunction
// as `{'blob':Base64 string}`
// Without specifying the `ForcifyResult` flag, result data is returned only for queries beginning with `SELECT` keyword^^
// For other queries, `result:true` or `false` with error text is returned
// When performing multiple requests within a single connection, it is better to connect extensions once using the `ConnectExtension` function
//
// Parameters:
// QueryText - String - Database query text - sql
// Parameters - Array Of Arbitrary - Array of positional parameters of the request - params
// ForceResult - Boolean - Includes an attempt to retrieve the result, even for nonSELECT queries - force
// Connection - String, Arbitrary - Existing connection or path to the base. In memory, if not filled - db
// Extensions - Map Of KeyAndValue - Extensions: Key > filepath or extension data, Value > entry point - exts
//
// Returns:
// Map Of KeyAndValue - Result of query execution
Function ExecuteSQLQuery(Val QueryText
, Val Parameters = ""
, Val ForceResult = False
, Val Connection = "") Export
, Val Connection = ""
, Val Extensions = Undefined) Export
OPI_TypeConversion.GetLine(QueryText, True);
OPI_TypeConversion.GetBoolean(ForceResult);
@@ -146,6 +149,22 @@ Function ExecuteSQLQuery(Val QueryText
Return Connector;
EndIf;
If ValueIsFilled(Extensions) Then
OPI_TypeConversion.GetKeyValueCollection(Extensions, "Incorrect collection of extensions!");
For Each Extension In Extensions Do
ExtensionConnection = ConnectExtension(Extension.Key, Extension.Value, Connector);
If Not ExtensionConnection["result"] Then
Return ExtensionConnection;
EndIf;
EndDo;
EndIf;
Result = Connector.Execute(QueryText, Parameters_, ForceResult);
Result = OPI_Tools.JsonToStructure(Result);
@@ -153,6 +172,52 @@ Function ExecuteSQLQuery(Val QueryText
EndFunction
// Connect extension !NOCLI
// Connects the SQLite extension for the specified connection
//
// Note
// The extension is active only for the current connection. You must reconnect it each time a new connection is established
// Similar to using the `Extensions` parameter (`exts` in CLI) of the `ExecuteSQLQuery` function
//
// Parameters:
// Extension - String, BinaryData - Extension data or filepath - ext
// EntryPoint - String - Expansion entry point, if required - point
// Connection - String, Arbitrary - Existing connection or path to the base. In memory, if not filled - db
//
// Returns:
// Map Of KeyAndValue - Result of extension connecting
Function ConnectExtension(Val Extension, Val EntryPoint = "", Val Connection = "") Export
Extension_ = Extension;
OPI_TypeConversion.GetFileOnDisk(Extension_);
OPI_TypeConversion.GetLine(EntryPoint);
Temporary = Extension_["Temporary"];
FilePath = Extension_["Path"];
Connector = CreateConnection(Connection);
If TypeOf(Connector) <> Type("AddIn.OPI_SQLite.Main") Then
Return Connector;
EndIf;
Result = Connector.LoadExtension(FilePath, EntryPoint);
Result = OPI_Tools.JsonToStructure(Result);
If Temporary Then
Try
DeleteFiles(FilePath);
Except
Return Result;
EndTry;
EndIf;
Return Result;
EndFunction
#EndRegion
#Region ORM
+73 -1
View File
@@ -2266,12 +2266,25 @@ EndProcedure
Procedure SQLL_CommonMethods() Export
TestParameters = New Structure;
OPI_TestDataRetrieval.ParameterToCollection("Picture", TestParameters);
Base = GetTempFileName("sqlite");
OPI_TestDataRetrieval.WriteParameter("SQLite_DB", Base);
OPI_Tools.AddField("SQLite_DB", Base, "String", TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
OPI_TestDataRetrieval.ParameterToCollection("SQLite_Ext", TestParameters);
SQLite_CreateConnection(TestParameters);
SQLite_CloseConnection(TestParameters);
SQLite_ExecuteSQLQuery(TestParameters);
SQLite_IsConnector(TestParameters);
SQLite_ConnectExtension(TestParameters);
Try
DeleteFiles(Base);
Except
OPI_TestDataRetrieval.WriteLog(ErrorDescription(), "Database file deletion error", "SQLite");
EndTry;
EndProcedure
@@ -17006,6 +17019,22 @@ Procedure SQLite_ExecuteSQLQuery(FunctionParameters)
OPI_TestDataRetrieval.WriteLog(Result, "ExecuteSQLQuery (Transaction)", "SQLite"); // SKIP
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result); // SKIP
// With extension
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Result = OPI_SQLite.ExecuteSQLQuery(QueryText, , , Connection, ExtensionMap);
OPI_TestDataRetrieval.WriteLog(Result, "ExecuteSQLQuery (extension)", "SQLite"); // SKIP
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result); // SKIP
OPI_TestDataRetrieval.Check_Array(Result["data"], 1); // SKIP
Closing = OPI_SQLite.CloseConnection(Connection);
// END
@@ -17350,6 +17379,49 @@ Procedure SQLite_ClearTable(FunctionParameters)
EndProcedure
Procedure SQLite_ConnectExtension(FunctionParameters)
Base = FunctionParameters["SQLite_DB"];
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
Connection = OPI_SQLite.CreateConnection(Base);
Result = OPI_SQLite.ConnectExtension(Extension, EntryPoint, Connection);
// END
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
TFN = GetTempFileName("dll");
FileCopy(Extension, TFN);
Result = OPI_SQLite.ConnectExtension(TFN, EntryPoint, Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (path)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
Result = OPI_SQLite.ConnectExtension(New BinaryData(TFN), EntryPoint, Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (binary)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
Result = OPI_SQLite.ExecuteSQLQuery("select uuid4();", , , Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (check)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
OPI_TestDataRetrieval.Check_Array(Result["data"], 1);
Result = OPI_SQLite.CloseConnection(Connection);
OPI_TestDataRetrieval.WriteLog(Result, "ConnectExtension (closing)", "SQLite");
Try
DeleteFiles(TFN);
Except
OPI_TestDataRetrieval.WriteLog(ErrorDescription(), "Error deleting extension file", "SQLite");
EndTry;
EndProcedure
#EndRegion
#Region PostgreSQL
+21
View File
@@ -19050,6 +19050,27 @@ Procedure CLI_SQLite_ExecuteSQLQuery(FunctionParameters)
Image = New BinaryData(PictureFile);
OPI_TestDataRetrieval.Check_Equality(Base64Value(Result["data"][0]["data"]["blob"]).Size(), Image.Size());
// With extension
Extension = FunctionParameters["SQLite_Ext"]; // URL, Path or Binary Data
EntryPoint = "sqlite3_uuid_init";
ExtensionMap = New Map;
ExtensionMap.Insert(Extension, EntryPoint);
QueryText = "SELECT uuid4();";
Options = New Structure;
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, ""));
Options.Insert("db" , TFN);
Options.Insert("exts", ExtensionMap);
Result = OPI_TestDataRetrieval.ExecuteTestCLI("sqlite", "ExecuteSQLQuery", Options);
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (extension)", "SQLite");
OPI_TestDataRetrieval.Check_SQLiteSuccess(Result);
OPI_TestDataRetrieval.Check_Array(Result["data"], 1);
Try
DeleteFiles(TFN);
DeleteFiles(PictureFile);
@@ -325,6 +325,33 @@ Procedure GetNumber(Value) Export
EndProcedure
Procedure GetFileOnDisk(Value, Val Extension = Undefined) Export
ReturnStructure = New Structure("Path,Temporary", "", False);
ValueAsString = OPI_Tools.NumberToString(Value);
ValueFile = New File(ValueAsString);
If ValueFile.Exists() Then
ReturnStructure.Insert("Path", ValueFile.FullName);
Else
OPI_TypeConversion.GetBinaryData(Value, True);
//@skip-check missing-temporary-file-deletion
Path = GetTempFileName(Extension);
Value.Write(Path);
ReturnStructure.Insert("Path" , Path);
ReturnStructure.Insert("Temporary", True);
EndIf;
Value = ReturnStructure;
EndProcedure
#EndRegion
#Region Private
+10
View File
@@ -51,6 +51,16 @@
NewLine.Область = "Common methods";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "sqlite";
NewLine.Модуль = "OPI_SQLite";
NewLine.Метод = "ExecuteSQLQuery";
NewLine.МетодПоиска = "EXECUTESQLQUERY";
NewLine.Параметр = "--exts";
NewLine.Описание = "Extensions: Key > filepath or extension data, Value > entry point (optional, def. val. - Empty value)";
NewLine.Область = "Common methods";
NewLine = CompositionTable.Add();
NewLine.Библиотека = "sqlite";
NewLine.Модуль = "OPI_SQLite";
+17 -17
View File
@@ -148,21 +148,21 @@
Если ТипЗнч(Коннектор) <> Тип("AddIn.OPI_SQLite.Main") Тогда
Возврат Коннектор;
КонецЕсли;
Если ЗначениеЗаполнено(Расширения) Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Расширения, "Некорректная коллекция расширений!");
Для Каждого Расширение Из Расширения Цикл
ПодключениеРасширения = ПодключитьРасширение(Расширение.Ключ, Расширение.Значение, Коннектор);
Если Не ПодключениеРасширения["result"] Тогда
Возврат ПодключениеРасширения;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Результат = Коннектор.Execute(ТекстЗапроса, Параметры_, ФорсироватьРезультат);
@@ -174,11 +174,11 @@
// Подключить расширение !NOCLI
// Подключает расширение SQLite для указанного соединения
//
//
// Примечание:
// Соединение активно только в рамках соединения. При каждом новом соединении его необходимо подключать заново
// Расширение активно только в рамках соединения. При каждом новом соединении его необходимо подключать заново
// Аналогично использованию параметра `Расширения` (`exts` в CLI) функции `ВыполнитьЗапросSQL`
//
//
// Параметры:
// Расширение - Строка, ДвоичныеДанные - Данные или путь к расширению - ext
// ТочкаВхода - Строка - Точка входа расширения, если необходима - point
@@ -189,7 +189,7 @@
Функция ПодключитьРасширение(Знач Расширение, Знач ТочкаВхода = "", Знач Соединение = "") Экспорт
Расширение_ = Расширение;
OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Расширение_);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТочкаВхода);
@@ -200,22 +200,22 @@
Если ТипЗнч(Коннектор) <> Тип("AddIn.OPI_SQLite.Main") Тогда
Возврат Коннектор;
КонецЕсли;
Результат = Коннектор.LoadExtension(ПутьКФайлу, ТочкаВхода);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
Если Временный Тогда
Попытка
УдалитьФайлы(ПутьКФайлу);
Исключение
Возврат Результат;
КонецПопытки;
КонецЕсли;
Возврат Результат;
Возврат Результат;
КонецФункции
#КонецОбласти
+21 -21
View File
@@ -2266,12 +2266,12 @@
Процедура SQLL_ОсновныеМетоды() Экспорт
ПараметрыТеста = Новый Структура;
База = ПолучитьИмяВременногоФайла("sqlite");
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("SQLite_DB", База);
OPI_Инструменты.ДобавитьПоле("SQLite_DB", База, "Строка", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQLite_Ext", ПараметрыТеста);
SQLite_ОткрытьСоединение(ПараметрыТеста);
@@ -17018,24 +17018,24 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Transaction)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// С расширением
Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
СоответствиеРасширений = Новый Соответствие;
СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
ТекстЗапроса = "SELECT uuid4();";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение, СоответствиеРасширений);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (расширение)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1); // SKIP
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
// END
@@ -17380,22 +17380,22 @@
КонецПроцедуры
Процедура SQLite_ПодключитьРасширение(ПараметрыФункции)
База = ПараметрыФункции["SQLite_DB"];
Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
Соединение = OPI_SQLite.ОткрытьСоединение(База);
Результат = OPI_SQLite.ПодключитьРасширение(Расширение, ТочкаВхода, Соединение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
ИВФ = ПолучитьИмяВременногоФайла("dll");
КопироватьФайл(Расширение, ИВФ);
Результат = OPI_SQLite.ПодключитьРасширение(ИВФ, ТочкаВхода, Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (путь)", "SQLite");
@@ -17405,21 +17405,21 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (двоичные)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
Результат = OPI_SQLite.ВыполнитьЗапросSQL("select uuid4();", , , Соединение);
Результат = OPI_SQLite.ВыполнитьЗапросSQL("select uuid4();", , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (проверка)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1);
Результат = OPI_SQLite.ЗакрытьСоединение(Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (закрытие)", "SQLite");
Попытка
УдалитьФайлы(ИВФ);
Исключение
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(ОписаниеОшибки(), "Ошибка удаления файла расширение", "SQLite");
КонецПопытки;
КонецПроцедуры
#КонецОбласти
+8 -8
View File
@@ -19051,15 +19051,15 @@
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Base64Значение(Результат["data"][0]["data"]["blob"]).Размер(), Картинка.Размер());
// С расширением
Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
СоответствиеРасширений = Новый Соответствие;
СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
ТекстЗапроса = "SELECT uuid4();";
Опции = Новый Структура;
Опции.Вставить("sql" , СтрЗаменить(ТекстЗапроса, Символы.ПС, ""));
Опции.Вставить("db" , ИВФ);
@@ -19067,10 +19067,10 @@
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (расширение)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (расширение)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1);
Попытка
УдалитьФайлы(ИВФ);
УдалитьФайлы(ФайлКартинки);
@@ -2196,9 +2196,9 @@
КонецФункции
Функция ПолучитьОбщийМодуль(Знач Имя)
Модуль = Вычислить(Имя);
Возврат Модуль;
КонецФункции
@@ -326,30 +326,30 @@
КонецПроцедуры
Процедура ПолучитьФайлНаДиске(Значение, Знач Расширение = Неопределено) Экспорт
СтруктураВозврата = Новый Структура("Путь,Временный", "", Ложь);
ЗначениеСтрокой = OPI_Инструменты.ЧислоВСтроку(Значение);
ЗначениеФайл = Новый Файл(ЗначениеСтрокой);
Если ЗначениеФайл.Существует() Тогда
СтруктураВозврата.Вставить("Путь", ЗначениеФайл.ПолноеИмя);
Иначе
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Значение, Истина);
//@skip-check missing-temporary-file-deletion
Путь = ПолучитьИмяВременногоФайла(Расширение);
Значение.Записать(Путь);
СтруктураВозврата.Вставить("Путь" , Путь);
СтруктураВозврата.Вставить("Временный", Истина);
КонецЕсли;
Значение = СтруктураВозврата;
КонецПроцедуры
#КонецОбласти
@@ -148,21 +148,21 @@
Если ТипЗнч(Коннектор) <> Тип("AddIn.OPI_SQLite.Main") Тогда
Возврат Коннектор;
КонецЕсли;
Если ЗначениеЗаполнено(Расширения) Тогда
OPI_ПреобразованиеТипов.ПолучитьКоллекциюКлючИЗначение(Расширения, "Некорректная коллекция расширений!");
Для Каждого Расширение Из Расширения Цикл
ПодключениеРасширения = ПодключитьРасширение(Расширение.Ключ, Расширение.Значение, Коннектор);
Если Не ПодключениеРасширения["result"] Тогда
Возврат ПодключениеРасширения;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Результат = Коннектор.Execute(ТекстЗапроса, Параметры_, ФорсироватьРезультат);
@@ -174,11 +174,11 @@
// Подключить расширение !NOCLI
// Подключает расширение SQLite для указанного соединения
//
//
// Примечание:
// Расширение активно только в рамках соединения. При каждом новом соединении его необходимо подключать заново
// Аналогично использованию параметра `Расширения` (`exts` в CLI) функции `ВыполнитьЗапросSQL`
//
//
// Параметры:
// Расширение - Строка, ДвоичныеДанные - Данные или путь к расширению - ext
// ТочкаВхода - Строка - Точка входа расширения, если необходима - point
@@ -189,7 +189,7 @@
Функция ПодключитьРасширение(Знач Расширение, Знач ТочкаВхода = "", Знач Соединение = "") Экспорт
Расширение_ = Расширение;
OPI_ПреобразованиеТипов.ПолучитьФайлНаДиске(Расширение_);
OPI_ПреобразованиеТипов.ПолучитьСтроку(ТочкаВхода);
@@ -200,22 +200,22 @@
Если ТипЗнч(Коннектор) <> Тип("AddIn.OPI_SQLite.Main") Тогда
Возврат Коннектор;
КонецЕсли;
Результат = Коннектор.LoadExtension(ПутьКФайлу, ТочкаВхода);
Результат = OPI_Инструменты.JsonВСтруктуру(Результат);
Если Временный Тогда
Попытка
УдалитьФайлы(ПутьКФайлу);
Исключение
Возврат Результат;
КонецПопытки;
КонецЕсли;
Возврат Результат;
Возврат Результат;
КонецФункции
#КонецОбласти
@@ -326,30 +326,30 @@
КонецПроцедуры
Процедура ПолучитьФайлНаДиске(Значение, Знач Расширение = Неопределено) Экспорт
СтруктураВозврата = Новый Структура("Путь,Временный", "", Ложь);
ЗначениеСтрокой = OPI_Инструменты.ЧислоВСтроку(Значение);
ЗначениеФайл = Новый Файл(ЗначениеСтрокой);
Если ЗначениеФайл.Существует() Тогда
СтруктураВозврата.Вставить("Путь", ЗначениеФайл.ПолноеИмя);
Иначе
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Значение, Истина);
//@skip-check missing-temporary-file-deletion
Путь = ПолучитьИмяВременногоФайла(Расширение);
Значение.Записать(Путь);
СтруктураВозврата.Вставить("Путь" , Путь);
СтруктураВозврата.Вставить("Временный", Истина);
КонецЕсли;
Значение = СтруктураВозврата;
КонецПроцедуры
#КонецОбласти
+21 -21
View File
@@ -2266,12 +2266,12 @@
Процедура SQLL_ОсновныеМетоды() Экспорт
ПараметрыТеста = Новый Структура;
База = ПолучитьИмяВременногоФайла("sqlite");
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("SQLite_DB", База);
OPI_Инструменты.ДобавитьПоле("SQLite_DB", База, "Строка", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQLite_Ext", ПараметрыТеста);
SQLite_ОткрытьСоединение(ПараметрыТеста);
@@ -17018,24 +17018,24 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (Transaction)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
// С расширением
Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
СоответствиеРасширений = Новый Соответствие;
СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
ТекстЗапроса = "SELECT uuid4();";
Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение, СоответствиеРасширений);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL (расширение)", "SQLite"); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1); // SKIP
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
Закрытие = OPI_SQLite.ЗакрытьСоединение(Соединение);
// END
@@ -17380,22 +17380,22 @@
КонецПроцедуры
Процедура SQLite_ПодключитьРасширение(ПараметрыФункции)
База = ПараметрыФункции["SQLite_DB"];
Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
Соединение = OPI_SQLite.ОткрытьСоединение(База);
Результат = OPI_SQLite.ПодключитьРасширение(Расширение, ТочкаВхода, Соединение);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
ИВФ = ПолучитьИмяВременногоФайла("dll");
КопироватьФайл(Расширение, ИВФ);
Результат = OPI_SQLite.ПодключитьРасширение(ИВФ, ТочкаВхода, Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (путь)", "SQLite");
@@ -17405,21 +17405,21 @@
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (двоичные)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
Результат = OPI_SQLite.ВыполнитьЗапросSQL("select uuid4();", , , Соединение);
Результат = OPI_SQLite.ВыполнитьЗапросSQL("select uuid4();", , , Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (проверка)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1);
Результат = OPI_SQLite.ЗакрытьСоединение(Соединение);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПодключитьРасширение (закрытие)", "SQLite");
Попытка
УдалитьФайлы(ИВФ);
Исключение
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(ОписаниеОшибки(), "Ошибка удаления файла расширение", "SQLite");
КонецПопытки;
КонецПроцедуры
#КонецОбласти
+8 -8
View File
@@ -19051,15 +19051,15 @@
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Base64Значение(Результат["data"][0]["data"]["blob"]).Размер(), Картинка.Размер());
// С расширением
Расширение = ПараметрыФункции["SQLite_Ext"]; // URL, Путь или Двоичные данные
ТочкаВхода = "sqlite3_uuid_init";
СоответствиеРасширений = Новый Соответствие;
СоответствиеРасширений.Вставить(Расширение, ТочкаВхода);
ТекстЗапроса = "SELECT uuid4();";
Опции = Новый Структура;
Опции.Вставить("sql" , СтрЗаменить(ТекстЗапроса, Символы.ПС, ""));
Опции.Вставить("db" , ИВФ);
@@ -19067,10 +19067,10 @@
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (расширение)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1);
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (расширение)", "SQLite");
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 1);
Попытка
УдалитьФайлы(ИВФ);
УдалитьФайлы(ФайлКартинки);
+10
View File
@@ -55,6 +55,16 @@
НоваяСтрока.Область = "Основные методы";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "sqlite";
НоваяСтрока.Модуль = "OPI_SQLite";
НоваяСтрока.Метод = "ВыполнитьЗапросSQL";
НоваяСтрока.МетодПоиска = "ВЫПОЛНИТЬЗАПРОСSQL";
НоваяСтрока.Параметр = "--exts";
НоваяСтрока.Описание = "Расширения: Ключ > путь или данные расширения, Значение > точка входа (необяз. по ум. - Пустое значение)";
НоваяСтрока.Область = "Основные методы";
НоваяСтрока = ТаблицаСостава.Добавить();
НоваяСтрока.Библиотека = "sqlite";
НоваяСтрока.Модуль = "OPI_SQLite";