mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-06-13 00:07:51 +02:00
Main build (Jenkins)
This commit is contained in:
parent
55689caa16
commit
02af8cc7d4
2
docs/en/examples/PostgreSQL/AddRecords.txt
vendored
2
docs/en/examples/PostgreSQL/AddRecords.txt
vendored
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
RecordStructure = New Structure;
|
RecordStructure = New Structure;
|
||||||
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
|
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
|
||||||
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
|
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , 1));
|
||||||
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
|
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
|
||||||
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
|
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
|
||||||
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
|
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
|
||||||
|
2
docs/en/md/SQLite/Orm/Add-records.mdx
vendored
2
docs/en/md/SQLite/Orm/Add-records.mdx
vendored
@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/en/md/SQLite/Orm/Clear-table.mdx
vendored
2
docs/en/md/SQLite/Orm/Clear-table.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/en/md/SQLite/Orm/Create-database.mdx
vendored
2
docs/en/md/SQLite/Orm/Create-database.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --dbc | String, Arbitrary | ✖ | Connection or connection string |
|
| Connection | --dbc | String, Arbitrary | ✖ | Connection or connection string |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Structure Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/en/md/SQLite/Orm/Create-table.mdx
vendored
2
docs/en/md/SQLite/Orm/Create-table.mdx
vendored
@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/en/md/SQLite/Orm/Delete-posts.mdx
vendored
2
docs/en/md/SQLite/Orm/Delete-posts.mdx
vendored
@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/en/md/SQLite/Orm/Delete-table.mdx
vendored
2
docs/en/md/SQLite/Orm/Delete-table.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/en/md/SQLite/Orm/Drop-database.mdx
vendored
2
docs/en/md/SQLite/Orm/Drop-database.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --dbc | String, Arbitrary | ✖ | Connection or connection string |
|
| Connection | --dbc | String, Arbitrary | ✖ | Connection or connection string |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Structure Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/en/md/SQLite/Orm/Get-records.mdx
vendored
2
docs/en/md/SQLite/Orm/Get-records.mdx
vendored
@ -22,7 +22,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
35
docs/en/md/SQLite/Orm/Get-table-column-types.mdx
vendored
Normal file
35
docs/en/md/SQLite/Orm/Get-table-column-types.mdx
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 4
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|
# Get table column types
|
||||||
|
Gets an array of table column types
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
`Function GetTableColumnTypes(Val Table, Val Connection = "") Export`
|
||||||
|
|
||||||
|
| Parameter | CLI option | Type | Required | Description |
|
||||||
|
|-|-|-|-|-|
|
||||||
|
| Table | --table | String | ✔ | Table name |
|
||||||
|
| Connection | --dbc | String, Arbitrary | ✖ | Connection or connection string |
|
||||||
|
|
||||||
|
|
||||||
|
Returns: Array, Map Of KeyAndValue - Array of types or error information
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```bsl title="1C:Enterprise/OneScript code example"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
35
docs/en/md/SQLite/Orm/Normalise-parameter-set.mdx
vendored
Normal file
35
docs/en/md/SQLite/Orm/Normalise-parameter-set.mdx
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 12
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|
# Normalise parameter set
|
||||||
|
Converts an array of parameter values into an array of description structures to be passed to the query
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
`Function NormaliseParameterSet(Val ValuesArray, Val TypesArray) Export`
|
||||||
|
|
||||||
|
| Parameter | CLI option | Type | Required | Description |
|
||||||
|
|-|-|-|-|-|
|
||||||
|
| ValuesArray | --values | Array Of Arbitrary | ✔ | Array of query parameter values |
|
||||||
|
| TypesArray | --types | Array Of String | ✔ | Array of column types. See GetTableColumnTypes |
|
||||||
|
|
||||||
|
|
||||||
|
Returns: Array Of Map - Normalised set of parameters for a query
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```bsl title="1C:Enterprise/OneScript code example"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
2
docs/en/md/SQLite/Orm/Update-records.mdx
vendored
2
docs/en/md/SQLite/Orm/Update-records.mdx
vendored
@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
|
||||||
|
|
||||||
|
|
||||||
Returns: Structure Of KeyAndValue, String - Result of query execution
|
Returns: Map Of KeyAndValue - Result of query execution
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
СтруктураЗаписи = Новый Структура;
|
СтруктураЗаписи = Новый Структура;
|
||||||
СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
|
СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
|
||||||
СтруктураЗаписи.Вставить("char_field" , Новый Структура("OLDCHAR" , "A"));
|
СтруктураЗаписи.Вставить("char_field" , Новый Структура("OLDCHAR" , 1));
|
||||||
СтруктураЗаписи.Вставить("smallint_field", Новый Структура("SMALLINT" , 5));
|
СтруктураЗаписи.Вставить("smallint_field", Новый Структура("SMALLINT" , 5));
|
||||||
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
|
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
|
||||||
СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));
|
СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));
|
||||||
|
2
docs/ru/md/SQLite/Orm/Add-records.mdx
vendored
2
docs/ru/md/SQLite/Orm/Add-records.mdx
vendored
@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/ru/md/SQLite/Orm/Clear-table.mdx
vendored
2
docs/ru/md/SQLite/Orm/Clear-table.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/ru/md/SQLite/Orm/Create-database.mdx
vendored
2
docs/ru/md/SQLite/Orm/Create-database.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --dbc | Строка, Произвольный | ✖ | Соединение или строка подключения |
|
| Соединение | --dbc | Строка, Произвольный | ✖ | Соединение или строка подключения |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Структура Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/ru/md/SQLite/Orm/Create-table.mdx
vendored
2
docs/ru/md/SQLite/Orm/Create-table.mdx
vendored
@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/ru/md/SQLite/Orm/Delete-posts.mdx
vendored
2
docs/ru/md/SQLite/Orm/Delete-posts.mdx
vendored
@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/ru/md/SQLite/Orm/Delete-table.mdx
vendored
2
docs/ru/md/SQLite/Orm/Delete-table.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/ru/md/SQLite/Orm/Drop-database.mdx
vendored
2
docs/ru/md/SQLite/Orm/Drop-database.mdx
vendored
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --dbc | Строка, Произвольный | ✖ | Соединение или строка подключения |
|
| Соединение | --dbc | Строка, Произвольный | ✖ | Соединение или строка подключения |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Структура Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
2
docs/ru/md/SQLite/Orm/Get-records.mdx
vendored
2
docs/ru/md/SQLite/Orm/Get-records.mdx
vendored
@ -22,7 +22,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
35
docs/ru/md/SQLite/Orm/Get-table-column-types.mdx
vendored
Normal file
35
docs/ru/md/SQLite/Orm/Get-table-column-types.mdx
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 4
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|
# Получить типы колонок таблицы
|
||||||
|
Получает массив типов колонок таблицы
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
`Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт`
|
||||||
|
|
||||||
|
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||||
|
|-|-|-|-|-|
|
||||||
|
| Таблица | --table | Строка | ✔ | Имя таблицы |
|
||||||
|
| Соединение | --dbc | Строка, Произвольный | ✖ | Соединение или строка подключения |
|
||||||
|
|
||||||
|
|
||||||
|
Возвращаемое значение: Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
35
docs/ru/md/SQLite/Orm/Normalise-parameter-set.mdx
vendored
Normal file
35
docs/ru/md/SQLite/Orm/Normalise-parameter-set.mdx
vendored
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
sidebar_position: 12
|
||||||
|
---
|
||||||
|
|
||||||
|
import Tabs from '@theme/Tabs';
|
||||||
|
import TabItem from '@theme/TabItem';
|
||||||
|
|
||||||
|
# Нормализовать набор параметров
|
||||||
|
Преобразует массив значений параметров в массив структур описаний для передачи в запрос
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
`Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт`
|
||||||
|
|
||||||
|
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|
||||||
|
|-|-|-|-|-|
|
||||||
|
| МассивЗначений | --values | Массив Из Произвольный | ✔ | Массив значений параметров запроса |
|
||||||
|
| МассивТипов | --types | Массив Из Строка | ✔ | Массив типов колонок. См. ПолучитьТипыКолонокТаблицы |
|
||||||
|
|
||||||
|
|
||||||
|
Возвращаемое значение: Массив Из Соответствие - Нормализованный набор параметров для запроса
|
||||||
|
|
||||||
|
<br/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
2
docs/ru/md/SQLite/Orm/Update-records.mdx
vendored
2
docs/ru/md/SQLite/Orm/Update-records.mdx
vendored
@ -20,7 +20,7 @@ import TabItem from '@theme/TabItem';
|
|||||||
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
| Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе |
|
||||||
|
|
||||||
|
|
||||||
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
|
Возвращаемое значение: Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
12316
service/dictionaries/en.json
vendored
12316
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
132
src/en/OInt/core/Modules/OPI_PostgreSQL.os
vendored
132
src/en/OInt/core/Modules/OPI_PostgreSQL.os
vendored
@ -38,6 +38,7 @@
|
|||||||
//@skip-check wrong-string-literal-content
|
//@skip-check wrong-string-literal-content
|
||||||
//@skip-check method-too-many-params
|
//@skip-check method-too-many-params
|
||||||
//@skip-check constructor-function-return-section
|
//@skip-check constructor-function-return-section
|
||||||
|
//@skip-check doc-comment-collection-item-type
|
||||||
|
|
||||||
// Uncomment if OneScript is executed
|
// Uncomment if OneScript is executed
|
||||||
#Use "../../tools"
|
#Use "../../tools"
|
||||||
@ -195,7 +196,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function CreateDatabase(Val Base, Val Connection = "") Export
|
Function CreateDatabase(Val Base, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.CreateDatabase(OPI_PostgreSQL, Base, Connection);
|
Result = OPI_SQLQueries.CreateDatabase(OPI_PostgreSQL, Base, Connection);
|
||||||
@ -211,7 +212,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function DropDatabase(Val Base, Val Connection = "") Export
|
Function DropDatabase(Val Base, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DropDatabase(OPI_PostgreSQL, Base, Connection);
|
Result = OPI_SQLQueries.DropDatabase(OPI_PostgreSQL, Base, Connection);
|
||||||
@ -227,12 +228,12 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function GetTableInformation(Val Table, Val Connection = "") Export
|
Function GetTableInformation(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(Table);
|
OPI_TypeConversion.GetLine(Table);
|
||||||
|
|
||||||
TextSQL = "SELECT column_name, data_type, character_maximum_length
|
TextSQL = "SELECT column_name, data_type, character_maximum_length
|
||||||
|FROM information_schema.columns
|
|FROM information_schema.columns
|
||||||
|WHERE table_name = '%1';";
|
|WHERE table_name = '%1';";
|
||||||
|
|
||||||
@ -244,6 +245,44 @@ Function GetTableInformation(Val Table, Val Connection = "") Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
// Get table column types
|
||||||
|
// Gets an array of table column types
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Table - String - Table name - table
|
||||||
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// Array, Map Of KeyAndValue - Array of types or error information
|
||||||
|
Function GetTableColumnTypes(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
|
TableInformation = GetTableInformation(Table, Connection);
|
||||||
|
|
||||||
|
If Not TableInformation["result"] Then
|
||||||
|
Return TableInformation;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
TypesArray = New Array;
|
||||||
|
|
||||||
|
For Each Coloumn In TableInformation Do
|
||||||
|
|
||||||
|
CurrentType = Coloumn["data_type"];
|
||||||
|
CurrentType = String(Upper(CurrentType));
|
||||||
|
CurrentType = StrReplace(CurrentType, " " , "_");
|
||||||
|
CurrentType = StrReplace(CurrentType, """CHAR""", "OLDCHAR");
|
||||||
|
|
||||||
|
If StrStartsWith(CurrentType, "CHAR") Then
|
||||||
|
CurrentType = "CHAR";
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
TypesArray.Add(CurrentType);
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Return TypesArray;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
// Create table
|
// Create table
|
||||||
// Creates an empty table in the database
|
// Creates an empty table in the database
|
||||||
//
|
//
|
||||||
@ -253,7 +292,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.CreateTable(OPI_PostgreSQL, Table, ColoumnsStruct, Connection);
|
Result = OPI_SQLQueries.CreateTable(OPI_PostgreSQL, Table, ColoumnsStruct, Connection);
|
||||||
@ -377,6 +416,49 @@ Function ClearTable(Val Table, Val Connection = "") Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
// Normalise parameter set
|
||||||
|
// Converts an array of parameter values into an array of description structures to be passed to the query
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// ValuesArray - Array Of Arbitrary - Array of query parameter values - values
|
||||||
|
// TypesArray - Array Of String - Array of column types. See GetTableColumnTypes - types
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// Array Of Map - Normalised set of parameters for a query
|
||||||
|
Function NormaliseParameterSet(Val ValuesArray, Val TypesArray) Export
|
||||||
|
|
||||||
|
OPI_TypeConversion.GetArray(ValuesArray);
|
||||||
|
OPI_TypeConversion.GetArray(TypesArray);
|
||||||
|
|
||||||
|
TypesMap = GetTypesMap();
|
||||||
|
ResultingArray = New Array;
|
||||||
|
TypesBound = TypesArray.UBound();
|
||||||
|
|
||||||
|
For N = 0 To ValuesArray.UBound() Do
|
||||||
|
|
||||||
|
If N > TypesBound Then
|
||||||
|
Break;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
CurrentType = Upper(TypesArray[N]);
|
||||||
|
CurrentValue = ValuesArray[N];
|
||||||
|
TypeDescription = TypesMap.Get(CurrentType);
|
||||||
|
|
||||||
|
If TypeDescription <> Undefined Then
|
||||||
|
CurrentValue = TypeDescription.AdjustValue(CurrentValue);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
CurrentDescription = New Map;
|
||||||
|
CurrentDescription.Insert(CurrentType, CurrentValue);
|
||||||
|
|
||||||
|
ResultingArray.Add(CurrentDescription);
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Return ResultingArray;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
// Get records filter strucutre
|
// Get records filter strucutre
|
||||||
// Gets the template structure for filtering records in ORM queries
|
// Gets the template structure for filtering records in ORM queries
|
||||||
//
|
//
|
||||||
@ -505,4 +587,44 @@ Function ProcessBlobStructure(Val Value)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function GetTypesMap()
|
||||||
|
|
||||||
|
DescriptionBool = New TypeDescription("Boolean");
|
||||||
|
DescriptionOldchar = New TypeDescription("Number", , , New NumberQualifiers(1, 0, AllowedSign.Nonnegative));
|
||||||
|
DescriptionI = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Any));
|
||||||
|
DescriptionU = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Nonnegative));
|
||||||
|
DescriptionF = New TypeDescription("Number", , , New NumberQualifiers(, , AllowedSign.Any));
|
||||||
|
DescriptionString = New TypeDescription("String");
|
||||||
|
|
||||||
|
TypesMap = New Map();
|
||||||
|
TypesMap.Insert("BOOL" , DescriptionBool);
|
||||||
|
TypesMap.Insert("""CHAR""" , DescriptionOldchar);
|
||||||
|
TypesMap.Insert("OLDCHAR" , DescriptionOldchar);
|
||||||
|
TypesMap.Insert("SMALLINT" , DescriptionI);
|
||||||
|
TypesMap.Insert("SMALLSERIAL" , DescriptionI);
|
||||||
|
TypesMap.Insert("INT" , DescriptionI);
|
||||||
|
TypesMap.Insert("SERIAL" , DescriptionI);
|
||||||
|
TypesMap.Insert("BIGINT" , DescriptionI);
|
||||||
|
TypesMap.Insert("BIGSERIAL" , DescriptionI);
|
||||||
|
TypesMap.Insert("TIMESTAMP" , DescriptionI);
|
||||||
|
TypesMap.Insert("TIMESTAMP WITH TIME ZONE", DescriptionI);
|
||||||
|
TypesMap.Insert("TIMESTAMP_WITH_TIME_ZONE", DescriptionI);
|
||||||
|
TypesMap.Insert("OID" , DescriptionU);
|
||||||
|
TypesMap.Insert("REAL" , DescriptionF);
|
||||||
|
TypesMap.Insert("DOUBLE PRECISION" , DescriptionF);
|
||||||
|
TypesMap.Insert("DOUBLE_PRECISION" , DescriptionF);
|
||||||
|
TypesMap.Insert("VARCHAR" , DescriptionString);
|
||||||
|
TypesMap.Insert("TEXT" , DescriptionString);
|
||||||
|
TypesMap.Insert("CHAR" , DescriptionString);
|
||||||
|
TypesMap.Insert("CITEXT" , DescriptionString);
|
||||||
|
TypesMap.Insert("NAME" , DescriptionString);
|
||||||
|
TypesMap.Insert("LTREE" , DescriptionString);
|
||||||
|
TypesMap.Insert("LQUERY" , DescriptionString);
|
||||||
|
TypesMap.Insert("LTXTQUERY" , DescriptionString);
|
||||||
|
TypesMap.Insert("INET" , DescriptionString);
|
||||||
|
|
||||||
|
Return TypesMap;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
16
src/en/OInt/core/Modules/OPI_SQLite.os
vendored
16
src/en/OInt/core/Modules/OPI_SQLite.os
vendored
@ -165,7 +165,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function GetTableInformation(Val Table, Val Connection = "") Export
|
Function GetTableInformation(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(Table);
|
OPI_TypeConversion.GetLine(Table);
|
||||||
@ -188,7 +188,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);
|
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);
|
||||||
@ -209,7 +209,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function AddRecords(Val Table, Val DataArray, Val Transaction = True, Val Connection = "") Export
|
Function AddRecords(Val Table, Val DataArray, Val Transaction = True, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.AddRecords(OPI_SQLite, Table, DataArray, Transaction, Connection);
|
Result = OPI_SQLQueries.AddRecords(OPI_SQLite, Table, DataArray, Transaction, Connection);
|
||||||
@ -232,7 +232,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function GetRecords(Val Table
|
Function GetRecords(Val Table
|
||||||
, Val Fields = "*"
|
, Val Fields = "*"
|
||||||
, Val Filters = ""
|
, Val Filters = ""
|
||||||
@ -255,7 +255,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Connection = "") Export
|
Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.UpdateRecords(OPI_SQLite, Table, ValueStructure, Filters, Connection);
|
Result = OPI_SQLQueries.UpdateRecords(OPI_SQLite, Table, ValueStructure, Filters, Connection);
|
||||||
@ -272,7 +272,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export
|
Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection);
|
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection);
|
||||||
@ -288,7 +288,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function DeleteTable(Val Table, Val Connection = "") Export
|
Function DeleteTable(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DeleteTable(OPI_SQLite, Table, Connection);
|
Result = OPI_SQLQueries.DeleteTable(OPI_SQLite, Table, Connection);
|
||||||
@ -304,7 +304,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function ClearTable(Val Table, Val Connection = "") Export
|
Function ClearTable(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, , Connection);
|
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, , Connection);
|
||||||
|
@ -17386,7 +17386,7 @@ Procedure PostgreSQL_GetTableInformation(FunctionParameters)
|
|||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
OPI_TestDataRetrieval.WriteLog(Result, "AddRecords", "PostgreSQL");
|
OPI_TestDataRetrieval.WriteLog(Result, "GetTableInformation", "PostgreSQL");
|
||||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
@ -17407,7 +17407,7 @@ Procedure PostgreSQL_AddRecords(FunctionParameters)
|
|||||||
|
|
||||||
RecordStructure = New Structure;
|
RecordStructure = New Structure;
|
||||||
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
|
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
|
||||||
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
|
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , 1));
|
||||||
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
|
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
|
||||||
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
|
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
|
||||||
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
|
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
//@skip-check wrong-string-literal-content
|
//@skip-check wrong-string-literal-content
|
||||||
//@skip-check method-too-many-params
|
//@skip-check method-too-many-params
|
||||||
//@skip-check constructor-function-return-section
|
//@skip-check constructor-function-return-section
|
||||||
|
//@skip-check doc-comment-collection-item-type
|
||||||
|
|
||||||
// Uncomment if OneScript is executed
|
// Uncomment if OneScript is executed
|
||||||
// #Use "../../tools"
|
// #Use "../../tools"
|
||||||
@ -195,7 +196,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function CreateDatabase(Val Base, Val Connection = "") Export
|
Function CreateDatabase(Val Base, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.CreateDatabase(OPI_PostgreSQL, Base, Connection);
|
Result = OPI_SQLQueries.CreateDatabase(OPI_PostgreSQL, Base, Connection);
|
||||||
@ -211,7 +212,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function DropDatabase(Val Base, Val Connection = "") Export
|
Function DropDatabase(Val Base, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DropDatabase(OPI_PostgreSQL, Base, Connection);
|
Result = OPI_SQLQueries.DropDatabase(OPI_PostgreSQL, Base, Connection);
|
||||||
@ -227,12 +228,12 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function GetTableInformation(Val Table, Val Connection = "") Export
|
Function GetTableInformation(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(Table);
|
OPI_TypeConversion.GetLine(Table);
|
||||||
|
|
||||||
TextSQL = "SELECT column_name, data_type, character_maximum_length
|
TextSQL = "SELECT column_name, data_type, character_maximum_length
|
||||||
|FROM information_schema.columns
|
|FROM information_schema.columns
|
||||||
|WHERE table_name = '%1';";
|
|WHERE table_name = '%1';";
|
||||||
|
|
||||||
@ -244,6 +245,44 @@ Function GetTableInformation(Val Table, Val Connection = "") Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
// Get table column types
|
||||||
|
// Gets an array of table column types
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// Table - String - Table name - table
|
||||||
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// Array, Map Of KeyAndValue - Array of types or error information
|
||||||
|
Function GetTableColumnTypes(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
|
TableInformation = GetTableInformation(Table, Connection);
|
||||||
|
|
||||||
|
If Not TableInformation["result"] Then
|
||||||
|
Return TableInformation;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
TypesArray = New Array;
|
||||||
|
|
||||||
|
For Each Coloumn In TableInformation Do
|
||||||
|
|
||||||
|
CurrentType = Coloumn["data_type"];
|
||||||
|
CurrentType = String(Upper(CurrentType));
|
||||||
|
CurrentType = StrReplace(CurrentType, " " , "_");
|
||||||
|
CurrentType = StrReplace(CurrentType, """CHAR""", "OLDCHAR");
|
||||||
|
|
||||||
|
If StrStartsWith(CurrentType, "CHAR") Then
|
||||||
|
CurrentType = "CHAR";
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
TypesArray.Add(CurrentType);
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Return TypesArray;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
// Create table
|
// Create table
|
||||||
// Creates an empty table in the database
|
// Creates an empty table in the database
|
||||||
//
|
//
|
||||||
@ -253,7 +292,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Connection or connection string - dbc
|
// Connection - String, Arbitrary - Connection or connection string - dbc
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Structure Of KeyAndValue - Result of query execution
|
||||||
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.CreateTable(OPI_PostgreSQL, Table, ColoumnsStruct, Connection);
|
Result = OPI_SQLQueries.CreateTable(OPI_PostgreSQL, Table, ColoumnsStruct, Connection);
|
||||||
@ -377,6 +416,49 @@ Function ClearTable(Val Table, Val Connection = "") Export
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
// Normalise parameter set
|
||||||
|
// Converts an array of parameter values into an array of description structures to be passed to the query
|
||||||
|
//
|
||||||
|
// Parameters:
|
||||||
|
// ValuesArray - Array Of Arbitrary - Array of query parameter values - values
|
||||||
|
// TypesArray - Array Of String - Array of column types. See GetTableColumnTypes - types
|
||||||
|
//
|
||||||
|
// Returns:
|
||||||
|
// Array Of Map - Normalised set of parameters for a query
|
||||||
|
Function NormaliseParameterSet(Val ValuesArray, Val TypesArray) Export
|
||||||
|
|
||||||
|
OPI_TypeConversion.GetArray(ValuesArray);
|
||||||
|
OPI_TypeConversion.GetArray(TypesArray);
|
||||||
|
|
||||||
|
TypesMap = GetTypesMap();
|
||||||
|
ResultingArray = New Array;
|
||||||
|
TypesBound = TypesArray.UBound();
|
||||||
|
|
||||||
|
For N = 0 To ValuesArray.UBound() Do
|
||||||
|
|
||||||
|
If N > TypesBound Then
|
||||||
|
Break;
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
CurrentType = Upper(TypesArray[N]);
|
||||||
|
CurrentValue = ValuesArray[N];
|
||||||
|
TypeDescription = TypesMap.Get(CurrentType);
|
||||||
|
|
||||||
|
If TypeDescription <> Undefined Then
|
||||||
|
CurrentValue = TypeDescription.AdjustValue(CurrentValue);
|
||||||
|
EndIf;
|
||||||
|
|
||||||
|
CurrentDescription = New Map;
|
||||||
|
CurrentDescription.Insert(CurrentType, CurrentValue);
|
||||||
|
|
||||||
|
ResultingArray.Add(CurrentDescription);
|
||||||
|
|
||||||
|
EndDo;
|
||||||
|
|
||||||
|
Return ResultingArray;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
// Get records filter strucutre
|
// Get records filter strucutre
|
||||||
// Gets the template structure for filtering records in ORM queries
|
// Gets the template structure for filtering records in ORM queries
|
||||||
//
|
//
|
||||||
@ -505,4 +587,44 @@ Function ProcessBlobStructure(Val Value)
|
|||||||
|
|
||||||
EndFunction
|
EndFunction
|
||||||
|
|
||||||
|
Function GetTypesMap()
|
||||||
|
|
||||||
|
DescriptionBool = New TypeDescription("Boolean");
|
||||||
|
DescriptionOldchar = New TypeDescription("Number", , , New NumberQualifiers(1, 0, AllowedSign.Nonnegative));
|
||||||
|
DescriptionI = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Any));
|
||||||
|
DescriptionU = New TypeDescription("Number", , , New NumberQualifiers(, 0, AllowedSign.Nonnegative));
|
||||||
|
DescriptionF = New TypeDescription("Number", , , New NumberQualifiers(, , AllowedSign.Any));
|
||||||
|
DescriptionString = New TypeDescription("String");
|
||||||
|
|
||||||
|
TypesMap = New Map();
|
||||||
|
TypesMap.Insert("BOOL" , DescriptionBool);
|
||||||
|
TypesMap.Insert("""CHAR""" , DescriptionOldchar);
|
||||||
|
TypesMap.Insert("OLDCHAR" , DescriptionOldchar);
|
||||||
|
TypesMap.Insert("SMALLINT" , DescriptionI);
|
||||||
|
TypesMap.Insert("SMALLSERIAL" , DescriptionI);
|
||||||
|
TypesMap.Insert("INT" , DescriptionI);
|
||||||
|
TypesMap.Insert("SERIAL" , DescriptionI);
|
||||||
|
TypesMap.Insert("BIGINT" , DescriptionI);
|
||||||
|
TypesMap.Insert("BIGSERIAL" , DescriptionI);
|
||||||
|
TypesMap.Insert("TIMESTAMP" , DescriptionI);
|
||||||
|
TypesMap.Insert("TIMESTAMP WITH TIME ZONE", DescriptionI);
|
||||||
|
TypesMap.Insert("TIMESTAMP_WITH_TIME_ZONE", DescriptionI);
|
||||||
|
TypesMap.Insert("OID" , DescriptionU);
|
||||||
|
TypesMap.Insert("REAL" , DescriptionF);
|
||||||
|
TypesMap.Insert("DOUBLE PRECISION" , DescriptionF);
|
||||||
|
TypesMap.Insert("DOUBLE_PRECISION" , DescriptionF);
|
||||||
|
TypesMap.Insert("VARCHAR" , DescriptionString);
|
||||||
|
TypesMap.Insert("TEXT" , DescriptionString);
|
||||||
|
TypesMap.Insert("CHAR" , DescriptionString);
|
||||||
|
TypesMap.Insert("CITEXT" , DescriptionString);
|
||||||
|
TypesMap.Insert("NAME" , DescriptionString);
|
||||||
|
TypesMap.Insert("LTREE" , DescriptionString);
|
||||||
|
TypesMap.Insert("LQUERY" , DescriptionString);
|
||||||
|
TypesMap.Insert("LTXTQUERY" , DescriptionString);
|
||||||
|
TypesMap.Insert("INET" , DescriptionString);
|
||||||
|
|
||||||
|
Return TypesMap;
|
||||||
|
|
||||||
|
EndFunction
|
||||||
|
|
||||||
#EndRegion
|
#EndRegion
|
||||||
|
@ -165,7 +165,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function GetTableInformation(Val Table, Val Connection = "") Export
|
Function GetTableInformation(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
OPI_TypeConversion.GetLine(Table);
|
OPI_TypeConversion.GetLine(Table);
|
||||||
@ -188,7 +188,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);
|
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);
|
||||||
@ -209,7 +209,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function AddRecords(Val Table, Val DataArray, Val Transaction = True, Val Connection = "") Export
|
Function AddRecords(Val Table, Val DataArray, Val Transaction = True, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.AddRecords(OPI_SQLite, Table, DataArray, Transaction, Connection);
|
Result = OPI_SQLQueries.AddRecords(OPI_SQLite, Table, DataArray, Transaction, Connection);
|
||||||
@ -232,7 +232,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function GetRecords(Val Table
|
Function GetRecords(Val Table
|
||||||
, Val Fields = "*"
|
, Val Fields = "*"
|
||||||
, Val Filters = ""
|
, Val Filters = ""
|
||||||
@ -255,7 +255,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Connection = "") Export
|
Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.UpdateRecords(OPI_SQLite, Table, ValueStructure, Filters, Connection);
|
Result = OPI_SQLQueries.UpdateRecords(OPI_SQLite, Table, ValueStructure, Filters, Connection);
|
||||||
@ -272,7 +272,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export
|
Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection);
|
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection);
|
||||||
@ -288,7 +288,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function DeleteTable(Val Table, Val Connection = "") Export
|
Function DeleteTable(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DeleteTable(OPI_SQLite, Table, Connection);
|
Result = OPI_SQLQueries.DeleteTable(OPI_SQLite, Table, Connection);
|
||||||
@ -304,7 +304,7 @@ EndFunction
|
|||||||
// Connection - String, Arbitrary - Existing connection or database path - db
|
// Connection - String, Arbitrary - Existing connection or database path - db
|
||||||
//
|
//
|
||||||
// Returns:
|
// Returns:
|
||||||
// Structure Of KeyAndValue, String - Result of query execution
|
// Map Of KeyAndValue - Result of query execution
|
||||||
Function ClearTable(Val Table, Val Connection = "") Export
|
Function ClearTable(Val Table, Val Connection = "") Export
|
||||||
|
|
||||||
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, , Connection);
|
Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, , Connection);
|
||||||
|
@ -17386,7 +17386,7 @@ Procedure PostgreSQL_GetTableInformation(FunctionParameters)
|
|||||||
|
|
||||||
// END
|
// END
|
||||||
|
|
||||||
OPI_TestDataRetrieval.WriteLog(Result, "AddRecords", "PostgreSQL");
|
OPI_TestDataRetrieval.WriteLog(Result, "GetTableInformation", "PostgreSQL");
|
||||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||||
|
|
||||||
EndProcedure
|
EndProcedure
|
||||||
@ -17407,7 +17407,7 @@ Procedure PostgreSQL_AddRecords(FunctionParameters)
|
|||||||
|
|
||||||
RecordStructure = New Structure;
|
RecordStructure = New Structure;
|
||||||
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
|
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
|
||||||
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
|
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , 1));
|
||||||
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
|
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
|
||||||
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
|
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
|
||||||
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
|
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
|
||||||
|
194
src/ru/OInt/core/Modules/OPI_PostgreSQL.os
vendored
194
src/ru/OInt/core/Modules/OPI_PostgreSQL.os
vendored
@ -233,7 +233,7 @@
|
|||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
|
||||||
|
|
||||||
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
|
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
|
||||||
|FROM information_schema.columns
|
|FROM information_schema.columns
|
||||||
|WHERE table_name = '%1';";
|
|WHERE table_name = '%1';";
|
||||||
|
|
||||||
@ -247,7 +247,7 @@
|
|||||||
|
|
||||||
// Получить типы колонок таблицы
|
// Получить типы колонок таблицы
|
||||||
// Получает массив типов колонок таблицы
|
// Получает массив типов колонок таблицы
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Таблица - Строка - Имя таблицы - table
|
// Таблица - Строка - Имя таблицы - table
|
||||||
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
||||||
@ -255,32 +255,32 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
|
// Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
|
||||||
Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт
|
Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт
|
||||||
|
|
||||||
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
|
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
|
||||||
|
|
||||||
Если Не ИнформацияОТаблице["result"] Тогда
|
Если Не ИнформацияОТаблице["result"] Тогда
|
||||||
Возврат ИнформацияОТаблице;
|
Возврат ИнформацияОТаблице;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МассивТипов = Новый Массив;
|
МассивТипов = Новый Массив;
|
||||||
|
|
||||||
Для Каждого Колонка Из ИнформацияОТаблице Цикл
|
Для Каждого Колонка Из ИнформацияОТаблице Цикл
|
||||||
|
|
||||||
ТекущийТип = Колонка["data_type"];
|
ТекущийТип = Колонка["data_type"];
|
||||||
ТекущийТип = Строка(вРег(ТекущийТип));
|
ТекущийТип = Строка(вРег(ТекущийТип));
|
||||||
ТекущийТип = СтрЗаменить(ТекущийТип, " ", "_");
|
ТекущийТип = СтрЗаменить(ТекущийТип, " " , "_");
|
||||||
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
|
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
|
||||||
|
|
||||||
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
|
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
|
||||||
ТекущийТип = "CHAR";
|
ТекущийТип = "CHAR";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МассивТипов.Добавить(ТекущийТип);
|
МассивТипов.Добавить(ТекущийТип);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат МассивТипов;
|
Возврат МассивТипов;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Создать таблицу
|
// Создать таблицу
|
||||||
@ -418,45 +418,45 @@
|
|||||||
|
|
||||||
// Нормализовать набор параметров
|
// Нормализовать набор параметров
|
||||||
// Преобразует массив значений параметров в массив структур описаний для передачи в запрос
|
// Преобразует массив значений параметров в массив структур описаний для передачи в запрос
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// МассивЗначений - Массив Из Произвольный - Массив значений параметров запроса - values
|
// МассивЗначений - Массив Из Произвольный - Массив значений параметров запроса - values
|
||||||
// МассивТипов - Массив Из Строка - Массив типов колонок. См. ПолучитьТипыКолонокТаблицы - types
|
// МассивТипов - Массив Из Строка - Массив типов колонок. См. ПолучитьТипыКолонокТаблицы - types
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив Из Соответствие - Нормализованный набор параметров для запроса
|
// Массив Из Соответствие - Нормализованный набор параметров для запроса
|
||||||
Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт
|
Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
|
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
|
||||||
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
|
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
|
||||||
|
|
||||||
СоответствиеТипов = ПолучитьСоответствиеТипов();
|
СоответствиеТипов = ПолучитьСоответствиеТипов();
|
||||||
ИтоговыйМассив = Новый Массив;
|
ИтоговыйМассив = Новый Массив;
|
||||||
ГраницаТипов = МассивТипов.ВГраница();
|
ГраницаТипов = МассивТипов.ВГраница();
|
||||||
|
|
||||||
Для Н = 0 По МассивЗначений.ВГраница() Цикл
|
Для Н = 0 По МассивЗначений.ВГраница() Цикл
|
||||||
|
|
||||||
Если Н > ГраницаТипов Тогда
|
Если Н > ГраницаТипов Тогда
|
||||||
Прервать;
|
Прервать;
|
||||||
Конецесли;
|
Конецесли;
|
||||||
|
|
||||||
ТекущийТип = вРег(МассивТипов[Н]);
|
ТекущийТип = вРег(МассивТипов[Н]);
|
||||||
ТекущееЗначение = МассивЗначений[Н];
|
ТекущееЗначение = МассивЗначений[Н];
|
||||||
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
|
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
|
||||||
|
|
||||||
Если ОписаниеТипа <> Неопределено Тогда
|
Если ОписаниеТипа <> Неопределено Тогда
|
||||||
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
|
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекущееОписание = Новый Соответствие;
|
ТекущееОписание = Новый Соответствие;
|
||||||
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
|
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
|
||||||
|
|
||||||
ИтоговыйМассив.Добавить(ТекущееОписание);
|
ИтоговыйМассив.Добавить(ТекущееОписание);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат ИтоговыйМассив;
|
Возврат ИтоговыйМассив;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Получить структуру фильтра записей
|
// Получить структуру фильтра записей
|
||||||
@ -588,43 +588,43 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьСоответствиеТипов()
|
Функция ПолучитьСоответствиеТипов()
|
||||||
|
|
||||||
ОписаниеBool = Новый ОписаниеТипов("Булево");
|
|
||||||
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
|
|
||||||
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
|
|
||||||
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
|
|
||||||
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
|
|
||||||
ОписаниеString = Новый ОписаниеТипов("Строка");
|
|
||||||
|
|
||||||
СоответствиеТипов = Новый Соответствие();
|
ОписаниеBool = Новый ОписаниеТипов("Булево");
|
||||||
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
|
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
|
||||||
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
|
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
|
||||||
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
|
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
|
||||||
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
|
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
|
||||||
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
|
ОписаниеString = Новый ОписаниеТипов("Строка");
|
||||||
СоответствиеТипов.Вставить("INT" , ОписаниеI);
|
|
||||||
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
|
СоответствиеТипов = Новый Соответствие();
|
||||||
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
|
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
|
||||||
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
|
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
|
||||||
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
|
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
|
||||||
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
|
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
|
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("OID" , ОписаниеU);
|
СоответствиеТипов.Вставить("INT" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
|
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
|
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
|
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
|
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
|
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
|
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
|
СоответствиеТипов.Вставить("OID" , ОписаниеU);
|
||||||
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
|
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
|
||||||
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
|
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
|
||||||
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
|
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
|
||||||
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
|
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
|
||||||
СоответствиеТипов.Вставить("INET" , ОписаниеString);
|
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
|
||||||
Возврат СоответствиеТипов;
|
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("INET" , ОписаниеString);
|
||||||
|
|
||||||
|
Возврат СоответствиеТипов;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -2148,9 +2148,9 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьОбщийМодуль(Знач Имя)
|
Функция ПолучитьОбщийМодуль(Знач Имя)
|
||||||
|
|
||||||
Модуль = Вычислить(Имя);
|
Модуль = Вычислить(Имя);
|
||||||
|
|
||||||
Возврат Модуль;
|
Возврат Модуль;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@
|
|||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
|
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
|
||||||
|
|
||||||
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
|
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
|
||||||
|FROM information_schema.columns
|
|FROM information_schema.columns
|
||||||
|WHERE table_name = '%1';";
|
|WHERE table_name = '%1';";
|
||||||
|
|
||||||
@ -247,7 +247,7 @@
|
|||||||
|
|
||||||
// Получить типы колонок таблицы
|
// Получить типы колонок таблицы
|
||||||
// Получает массив типов колонок таблицы
|
// Получает массив типов колонок таблицы
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Таблица - Строка - Имя таблицы - table
|
// Таблица - Строка - Имя таблицы - table
|
||||||
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
||||||
@ -255,32 +255,32 @@
|
|||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
|
// Массив, Соответствие Из КлючИЗначение - Массив типов или информация об ошибке
|
||||||
Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт
|
Функция ПолучитьТипыКолонокТаблицы(Знач Таблица, Знач Соединение = "") Экспорт
|
||||||
|
|
||||||
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
|
ИнформацияОТаблице = ПолучитьИнформациюОТаблице(Таблица, Соединение);
|
||||||
|
|
||||||
Если Не ИнформацияОТаблице["result"] Тогда
|
Если Не ИнформацияОТаблице["result"] Тогда
|
||||||
Возврат ИнформацияОТаблице;
|
Возврат ИнформацияОТаблице;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МассивТипов = Новый Массив;
|
МассивТипов = Новый Массив;
|
||||||
|
|
||||||
Для Каждого Колонка Из ИнформацияОТаблице Цикл
|
Для Каждого Колонка Из ИнформацияОТаблице Цикл
|
||||||
|
|
||||||
ТекущийТип = Колонка["data_type"];
|
ТекущийТип = Колонка["data_type"];
|
||||||
ТекущийТип = Строка(вРег(ТекущийТип));
|
ТекущийТип = Строка(вРег(ТекущийТип));
|
||||||
ТекущийТип = СтрЗаменить(ТекущийТип, " ", "_");
|
ТекущийТип = СтрЗаменить(ТекущийТип, " " , "_");
|
||||||
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
|
ТекущийТип = СтрЗаменить(ТекущийТип, """CHAR""", "OLDCHAR");
|
||||||
|
|
||||||
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
|
Если СтрНачинаетсяС(ТекущийТип, "CHAR") Тогда
|
||||||
ТекущийТип = "CHAR";
|
ТекущийТип = "CHAR";
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
МассивТипов.Добавить(ТекущийТип);
|
МассивТипов.Добавить(ТекущийТип);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат МассивТипов;
|
Возврат МассивТипов;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Создать таблицу
|
// Создать таблицу
|
||||||
@ -418,45 +418,45 @@
|
|||||||
|
|
||||||
// Нормализовать набор параметров
|
// Нормализовать набор параметров
|
||||||
// Преобразует массив значений параметров в массив структур описаний для передачи в запрос
|
// Преобразует массив значений параметров в массив структур описаний для передачи в запрос
|
||||||
//
|
//
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// МассивЗначений - Массив Из Произвольный - Массив значений параметров запроса - values
|
// МассивЗначений - Массив Из Произвольный - Массив значений параметров запроса - values
|
||||||
// МассивТипов - Массив Из Строка - Массив типов колонок. См. ПолучитьТипыКолонокТаблицы - types
|
// МассивТипов - Массив Из Строка - Массив типов колонок. См. ПолучитьТипыКолонокТаблицы - types
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив Из Соответствие - Нормализованный набор параметров для запроса
|
// Массив Из Соответствие - Нормализованный набор параметров для запроса
|
||||||
Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт
|
Функция НормализоватьНаборПараметров(Знач МассивЗначений, Знач МассивТипов) Экспорт
|
||||||
|
|
||||||
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
|
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивЗначений);
|
||||||
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
|
OPI_ПреобразованиеТипов.ПолучитьМассив(МассивТипов);
|
||||||
|
|
||||||
СоответствиеТипов = ПолучитьСоответствиеТипов();
|
СоответствиеТипов = ПолучитьСоответствиеТипов();
|
||||||
ИтоговыйМассив = Новый Массив;
|
ИтоговыйМассив = Новый Массив;
|
||||||
ГраницаТипов = МассивТипов.ВГраница();
|
ГраницаТипов = МассивТипов.ВГраница();
|
||||||
|
|
||||||
Для Н = 0 По МассивЗначений.ВГраница() Цикл
|
Для Н = 0 По МассивЗначений.ВГраница() Цикл
|
||||||
|
|
||||||
Если Н > ГраницаТипов Тогда
|
Если Н > ГраницаТипов Тогда
|
||||||
Прервать;
|
Прервать;
|
||||||
Конецесли;
|
Конецесли;
|
||||||
|
|
||||||
ТекущийТип = вРег(МассивТипов[Н]);
|
ТекущийТип = вРег(МассивТипов[Н]);
|
||||||
ТекущееЗначение = МассивЗначений[Н];
|
ТекущееЗначение = МассивЗначений[Н];
|
||||||
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
|
ОписаниеТипа = СоответствиеТипов.Получить(ТекущийТип);
|
||||||
|
|
||||||
Если ОписаниеТипа <> Неопределено Тогда
|
Если ОписаниеТипа <> Неопределено Тогда
|
||||||
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
|
ТекущееЗначение = ОписаниеТипа.ПривестиЗначение(ТекущееЗначение);
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
ТекущееОписание = Новый Соответствие;
|
ТекущееОписание = Новый Соответствие;
|
||||||
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
|
ТекущееОписание.Вставить(ТекущийТип, ТекущееЗначение);
|
||||||
|
|
||||||
ИтоговыйМассив.Добавить(ТекущееОписание);
|
ИтоговыйМассив.Добавить(ТекущееОписание);
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат ИтоговыйМассив;
|
Возврат ИтоговыйМассив;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
// Получить структуру фильтра записей
|
// Получить структуру фильтра записей
|
||||||
@ -588,43 +588,43 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьСоответствиеТипов()
|
Функция ПолучитьСоответствиеТипов()
|
||||||
|
|
||||||
ОписаниеBool = Новый ОписаниеТипов("Булево");
|
|
||||||
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
|
|
||||||
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
|
|
||||||
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
|
|
||||||
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
|
|
||||||
ОписаниеString = Новый ОписаниеТипов("Строка");
|
|
||||||
|
|
||||||
СоответствиеТипов = Новый Соответствие();
|
ОписаниеBool = Новый ОписаниеТипов("Булево");
|
||||||
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
|
ОписаниеOldchar = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
|
||||||
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
|
ОписаниеI = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Любой));
|
||||||
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
|
ОписаниеU = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, 0, ДопустимыйЗнак.Неотрицательный));
|
||||||
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
|
ОписаниеF = Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(, , ДопустимыйЗнак.Любой));
|
||||||
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
|
ОписаниеString = Новый ОписаниеТипов("Строка");
|
||||||
СоответствиеТипов.Вставить("INT" , ОписаниеI);
|
|
||||||
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
|
СоответствиеТипов = Новый Соответствие();
|
||||||
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
|
СоответствиеТипов.Вставить("BOOL" , ОписаниеBool);
|
||||||
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
|
СоответствиеТипов.Вставить("""CHAR""" , ОписаниеOldchar);
|
||||||
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
|
СоответствиеТипов.Вставить("OLDCHAR" , ОписаниеOldchar);
|
||||||
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
|
СоответствиеТипов.Вставить("SMALLINT" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
|
СоответствиеТипов.Вставить("SMALLSERIAL" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("OID" , ОписаниеU);
|
СоответствиеТипов.Вставить("INT" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
|
СоответствиеТипов.Вставить("SERIAL" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
|
СоответствиеТипов.Вставить("BIGINT" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
|
СоответствиеТипов.Вставить("BIGSERIAL" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
|
СоответствиеТипов.Вставить("TIMESTAMP" , ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
|
СоответствиеТипов.Вставить("TIMESTAMP WITH TIME ZONE", ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
|
СоответствиеТипов.Вставить("TIMESTAMP_WITH_TIME_ZONE", ОписаниеI);
|
||||||
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
|
СоответствиеТипов.Вставить("OID" , ОписаниеU);
|
||||||
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
|
СоответствиеТипов.Вставить("REAL" , ОписаниеF);
|
||||||
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
|
СоответствиеТипов.Вставить("DOUBLE PRECISION" , ОписаниеF);
|
||||||
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
|
СоответствиеТипов.Вставить("DOUBLE_PRECISION" , ОписаниеF);
|
||||||
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
|
СоответствиеТипов.Вставить("VARCHAR" , ОписаниеString);
|
||||||
СоответствиеТипов.Вставить("INET" , ОписаниеString);
|
СоответствиеТипов.Вставить("TEXT" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("CHAR" , ОписаниеString);
|
||||||
Возврат СоответствиеТипов;
|
СоответствиеТипов.Вставить("CITEXT" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("NAME" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("LTREE" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("LQUERY" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("LTXTQUERY" , ОписаниеString);
|
||||||
|
СоответствиеТипов.Вставить("INET" , ОписаниеString);
|
||||||
|
|
||||||
|
Возврат СоответствиеТипов;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
// OneScript: ./OInt/tests/Modules/internal/OPI_Тесты.os
|
||||||
|
|
||||||
// MIT License
|
// MIT License
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user