You've already forked OpenIntegrations
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:
Vendored
+1
-1
@@ -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') {
|
||||
|
||||
Vendored
+1
-1
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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
@@ -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 | ✖ | Array of positional parameters of the request |
|
||||
| ForceResult | --force | Boolean | ✖ | Includes an attempt to retrieve the result, even for nonSELECT queries |
|
||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or path to the base. In memory, if not filled |
|
||||
| Extensions | --exts | Map Of KeyAndValue | ✖ | 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||
}
|
||||
+12
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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,53 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
|
||||
# Подключить расширение
|
||||
Подключает расширение SQLite для указанного соединения
|
||||
|
||||
|
||||
|
||||
`Функция ПодключитьРасширение(Знач Расширение, Знач ТочкаВхода = "", Знач Соединение = "") Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
| Расширение | - | Строка, ДвоичныеДанные | ✔ | Данные или путь к расширению |
|
||||
| ТочкаВхода | - | Строка | ✖ | Точка входа расширения, если необходима |
|
||||
| Соединение | - | Строка, Произвольный | ✖ | Существующее соединение или путь к базе. 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
@@ -10,7 +10,7 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
|
||||
`Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса, Знач Параметры = "", Знач ФорсироватьРезультат = Ложь, Знач Соединение = "") Экспорт`
|
||||
`Функция ВыполнитьЗапросSQL(Знач ТекстЗапроса, Знач Параметры = "", Знач ФорсироватьРезультат = Ложь, Знач Соединение = "", Знач Расширения = Неопределено) Экспорт`
|
||||
|
||||
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||
|-|-|-|-|-|
|
||||
@@ -18,6 +18,7 @@ import TabItem from '@theme/TabItem';
|
||||
| Параметры | --params | Массив Из Произвольный | ✖ | Массив позиционных параметров запроса |
|
||||
| ФорсироватьРезультат | --force | Булево | ✖ | Включает попытку получения результата, даже для не SELECT запросов |
|
||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе. In memory, если не заполнено |
|
||||
| Расширения | --exts | Соответствие Из КлючИЗначение | ✖ | Расширения: Ключ > путь или данные расширения, Значение > точка входа |
|
||||
|
||||
|
||||
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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";
|
||||
|
||||
СтруктураПолей = Новый Структура;
|
||||
|
||||
Vendored
+6340
-6340
File diff suppressed because it is too large
Load Diff
+66
-1
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
Попытка
|
||||
УдалитьФайлы(ИВФ);
|
||||
УдалитьФайлы(ФайлКартинки);
|
||||
|
||||
+2
-2
@@ -2196,9 +2196,9 @@
|
||||
КонецФункции
|
||||
|
||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||
|
||||
|
||||
Модуль = Вычислить(Имя);
|
||||
|
||||
|
||||
Возврат Модуль;
|
||||
КонецФункции
|
||||
|
||||
|
||||
+10
-10
@@ -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
@@ -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
@@ -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);
|
||||
|
||||
Попытка
|
||||
УдалитьФайлы(ИВФ);
|
||||
УдалитьФайлы(ФайлКартинки);
|
||||
|
||||
@@ -55,6 +55,16 @@
|
||||
НоваяСтрока.Область = "Основные методы";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "sqlite";
|
||||
НоваяСтрока.Модуль = "OPI_SQLite";
|
||||
НоваяСтрока.Метод = "ВыполнитьЗапросSQL";
|
||||
НоваяСтрока.МетодПоиска = "ВЫПОЛНИТЬЗАПРОСSQL";
|
||||
НоваяСтрока.Параметр = "--exts";
|
||||
НоваяСтрока.Описание = "Расширения: Ключ > путь или данные расширения, Значение > точка входа (необяз. по ум. - Пустое значение)";
|
||||
НоваяСтрока.Область = "Основные методы";
|
||||
|
||||
|
||||
НоваяСтрока = ТаблицаСостава.Добавить();
|
||||
НоваяСтрока.Библиотека = "sqlite";
|
||||
НоваяСтрока.Модуль = "OPI_SQLite";
|
||||
|
||||
Reference in New Issue
Block a user