1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-31 22:05:13 +02:00

Main build (Jenkins)

This commit is contained in:
Vitaly the Alpaca (bot) 2025-02-11 12:20:30 +03:00
parent 4b8c0ecb75
commit d160c54c31
31 changed files with 6813 additions and 6597 deletions

View File

@ -374,6 +374,48 @@ jobs:
path: ./data.json
Testing-PostgreSQL:
runs-on: ubuntu-latest
needs: [Decode, Build]
steps:
- uses: actions/checkout@v2
- uses: otymko/setup-onescript@v1.4
with:
version: 1.9.1
- name: Получить тестовые данные из кэша
uses: actions/cache/restore@v3
with:
key: test-data
path: ./data.json
- name: Установить asserts и 1testrunner
run: |
opm install asserts
opm install 1testrunner
- name: Установить OInt
run: |
TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://api.athenaeum.digital/tc/job/Release/lastSuccessfulBuild/artifact/1.18.1/oint_1.18.1_all_en.deb' &&
sudo dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB"
- name: ORM
if: ${{ cancelled() }} == false
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os "CLI_Postgres_ORM"
- name: Записать логи
if: ${{ cancelled() }} == false
uses: actions/cache/save@v3
with:
key: logs-PostgreSQL
path: ./docs/en/results/PostgreSQL
Testing-SQLite:
runs-on: ubuntu-latest
needs: [Decode, Build]
@ -1407,7 +1449,7 @@ jobs:
Encode:
runs-on: ubuntu-latest
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-SQLite,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24,Testing-VkTeams,Testing-Ozon,Testing-Neocities,Testing-CDEK,Testing-YandexMetrika,Testing-S3,Testing-TCP]
needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-PostgreSQL,Testing-SQLite,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24,Testing-VkTeams,Testing-Ozon,Testing-Neocities,Testing-CDEK,Testing-YandexMetrika,Testing-S3,Testing-TCP]
if: ${{ always() }}
permissions:
contents: write
@ -1499,6 +1541,22 @@ jobs:
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Twitter"
- name: Получить логи PostgreSQL
uses: actions/cache/restore@v3
with:
key: logs-PostgreSQL
path: ./docs/en/results/PostgreSQL
- name: Очистка логов PostgreSQL
run: |
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.TOKEN }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-PostgreSQL"
- name: Получить логи SQLite
uses: actions/cache/restore@v3
with:
@ -1799,7 +1857,7 @@ jobs:
Clear-Cache:
runs-on: ubuntu-latest
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-SQLite, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Testing-VkTeams, Testing-Ozon, Testing-Neocities, Testing-CDEK, Testing-YandexMetrika, Testing-S3, Testing-TCP, Encode]
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-PostgreSQL, Testing-SQLite, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Testing-VkTeams, Testing-Ozon, Testing-Neocities, Testing-CDEK, Testing-YandexMetrika, Testing-S3, Testing-TCP, Encode]
if: ${{ always() }}
steps:
- name: Очистка основного кэша

11
ci/cli_ostesten vendored
View File

@ -239,6 +239,17 @@ pipeline {
}
}
stage('Testing-PostgreSQL') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os" "CLI_Postgres_ORM"'
}
}
}
stage('Testing-SQLite') {
steps {

11
ci/ostesten vendored
View File

@ -239,6 +239,17 @@ pipeline {
}
}
stage('Testing-PostgreSQL') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_Tests.os" "Postgres_ORM"'
}
}
}
stage('Testing-SQLite') {
steps {

View File

@ -0,0 +1,4 @@
{
"Address": "93.125.42.204",
"Password": "12we..."
}

View File

@ -10,21 +10,15 @@
Image = "https://api.athenaeum.digital/test_data/picture.jpg";
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
Char = New Map;
Char.Insert("""char""", 1);
DP = New Map;
DP.Insert("DOUBLE PRECISION", 1.0000000000000002);
RecordStructure = New Structure;
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
RecordStructure.Insert("char_field" , Char);
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
RecordStructure.Insert("bigint_field" , New Structure("BIGINT" , 9999999));
RecordStructure.Insert("real_field" , New Structure("REAL" , 15.2));
RecordStructure.Insert("dp_field" , DP);
RecordStructure.Insert("dp_field" , New Structure("DOUBLE_PRECISION", 1.0000000000000002));
RecordStructure.Insert("text_field" , New Structure("TEXT" , "Some text"));
RecordStructure.Insert("bytea_field" , New Structure("BYTEA" , Image));
RecordStructure.Insert("ts_field" , New Structure("TIMESTAMP" , 1739207915));

View File

@ -0,0 +1,10 @@
 Address = "93.125.42.204";
Login = "bayselonarrend";
Password = "12we...";
Base = "testbase1";
ConnectionString = OPI_PostgreSQL.GenerateConnectionString(Address, Base, Login, Password);
Table = "testtable";
Result = OPI_PostgreSQL.GetTableInformation(Table, ConnectionString);

View File

@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | ✖ | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - The result of the execution or SQL query text
Returns: Structure Of KeyAndValue, String - Result of query execution
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Connection | --db | String, Arbitrary | &#x2716; | Existing connection or database path |
Returns: Structure Of KeyAndValue, String - The result of the execution or SQL query text
Returns: Structure Of KeyAndValue, String - Result of query execution
<br/>

View File

@ -0,0 +1,4 @@
{
"Адрес": "93.125.42.204",
"Пароль": "12we..."
}

View File

@ -10,21 +10,15 @@
Картинка = "https://api.athenaeum.digital/test_data/picture.jpg";
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
Char = Новый Соответствие;
Char.Вставить("""char""", 1);
DP = Новый Соответствие;
DP.Вставить("DOUBLE PRECISION", 1.0000000000000002);
СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
СтруктураЗаписи.Вставить("char_field" , Char);
СтруктураЗаписи.Вставить("char_field" , Новый Структура("OLDCHAR" , "A"));
СтруктураЗаписи.Вставить("smallint_field", Новый Структура("SMALLINT" , 5));
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));
СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 9999999));
СтруктураЗаписи.Вставить("real_field" , Новый Структура("REAL" , 15.2));
СтруктураЗаписи.Вставить("dp_field" , DP);
СтруктураЗаписи.Вставить("dp_field" , Новый Структура("DOUBLE_PRECISION", 1.0000000000000002));
СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
СтруктураЗаписи.Вставить("bytea_field" , Новый Структура("BYTEA" , Картинка));
СтруктураЗаписи.Вставить("ts_field" , Новый Структура("TIMESTAMP" , 1739207915));

View File

@ -0,0 +1,10 @@
 Адрес = "93.125.42.204";
Логин = "bayselonarrend";
Пароль = "12we...";
База = "testbase1";
СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "testtable";
Результат = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения);

View File

@ -19,7 +19,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса или его текст
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
<br/>

View File

@ -18,7 +18,7 @@ import TabItem from '@theme/TabItem';
| Соединение | --db | Строка, Произвольный | &#x2716; | Существующее соединение или путь к базе |
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса или его текст
Возвращаемое значение: Структура Из КлючИЗначение, Строка - Результат выполнения запроса
<br/>

File diff suppressed because it is too large Load Diff

View File

@ -219,6 +219,31 @@ Function DropDatabase(Val Base, Val Connection = "") Export
EndFunction
// Get table information
// Gets information about the table
//
// Parameters:
// Table - String - Table name - table
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
TextSQL = "SELECT column_name, data_type, character_maximum_length
|FROM information_schema.columns
|WHERE table_name = '%1';";
TextSQL = StrTemplate(TextSQL, Table);
Result = ExecuteSQLQuery(TextSQL, , , Connection);
Return Result;
EndFunction
// Create table
// Creates an empty table in the database
//

View File

@ -165,7 +165,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - The result of the execution or SQL query text
// Structure Of KeyAndValue, String - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
@ -188,7 +188,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - The result of the execution or SQL query text
// Structure Of KeyAndValue, String - Result of query execution
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);

View File

@ -2322,6 +2322,7 @@ Procedure Postgres_ORM() Export
PostgreSQL_CreateDatabase(TestParameters);
PostgreSQL_CreateTable(TestParameters);
PostgreSQL_GetTableInformation(TestParameters);
PostgreSQL_AddRecords(TestParameters);
PostgreSQL_DropDatabase(TestParameters);
@ -17370,6 +17371,26 @@ Procedure PostgreSQL_CreateTable(FunctionParameters)
EndProcedure
Procedure PostgreSQL_GetTableInformation(FunctionParameters)
Address = FunctionParameters["PG_IP"];
Login = "bayselonarrend";
Password = FunctionParameters["PG_Password"];
Base = "testbase1";
ConnectionString = OPI_PostgreSQL.GenerateConnectionString(Address, Base, Login, Password);
Table = "testtable";
Result = OPI_PostgreSQL.GetTableInformation(Table, ConnectionString);
// END
OPI_TestDataRetrieval.WriteLog(Result, "AddRecords", "PostgreSQL");
OPI_TestDataRetrieval.Check_ResultTrue(Result);
EndProcedure
Procedure PostgreSQL_AddRecords(FunctionParameters)
Address = FunctionParameters["PG_IP"];
@ -17384,21 +17405,15 @@ Procedure PostgreSQL_AddRecords(FunctionParameters)
Image = FunctionParameters["Picture"];
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
Char = New Map;
Char.Insert("""char""", 1);
DP = New Map;
DP.Insert("DOUBLE PRECISION", 1.0000000000000002);
RecordStructure = New Structure;
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
RecordStructure.Insert("char_field" , Char);
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
RecordStructure.Insert("bigint_field" , New Structure("BIGINT" , 9999999));
RecordStructure.Insert("real_field" , New Structure("REAL" , 15.2));
RecordStructure.Insert("dp_field" , DP);
RecordStructure.Insert("dp_field" , New Structure("DOUBLE_PRECISION", 1.0000000000000002));
RecordStructure.Insert("text_field" , New Structure("TEXT" , "Some text"));
RecordStructure.Insert("bytea_field" , New Structure("BYTEA" , Image));
RecordStructure.Insert("ts_field" , New Structure("TIMESTAMP" , 1739207915));

View File

@ -219,6 +219,31 @@ Function DropDatabase(Val Base, Val Connection = "") Export
EndFunction
// Get table information
// Gets information about the table
//
// Parameters:
// Table - String - Table name - table
// Connection - String, Arbitrary - Connection or connection string - dbc
//
// Returns:
// Structure Of KeyAndValue, String - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
TextSQL = "SELECT column_name, data_type, character_maximum_length
|FROM information_schema.columns
|WHERE table_name = '%1';";
TextSQL = StrTemplate(TextSQL, Table);
Result = ExecuteSQLQuery(TextSQL, , , Connection);
Return Result;
EndFunction
// Create table
// Creates an empty table in the database
//

View File

@ -165,7 +165,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - The result of the execution or SQL query text
// Structure Of KeyAndValue, String - Result of query execution
Function GetTableInformation(Val Table, Val Connection = "") Export
OPI_TypeConversion.GetLine(Table);
@ -188,7 +188,7 @@ EndFunction
// Connection - String, Arbitrary - Existing connection or database path - db
//
// Returns:
// Structure Of KeyAndValue, String - The result of the execution or SQL query text
// Structure Of KeyAndValue, String - Result of query execution
Function CreateTable(Val Table, Val ColoumnsStruct, Val Connection = "") Export
Result = OPI_SQLQueries.CreateTable(OPI_SQLite, Table, ColoumnsStruct, Connection);

View File

@ -2322,6 +2322,7 @@ Procedure Postgres_ORM() Export
PostgreSQL_CreateDatabase(TestParameters);
PostgreSQL_CreateTable(TestParameters);
PostgreSQL_GetTableInformation(TestParameters);
PostgreSQL_AddRecords(TestParameters);
PostgreSQL_DropDatabase(TestParameters);
@ -17370,6 +17371,26 @@ Procedure PostgreSQL_CreateTable(FunctionParameters)
EndProcedure
Procedure PostgreSQL_GetTableInformation(FunctionParameters)
Address = FunctionParameters["PG_IP"];
Login = "bayselonarrend";
Password = FunctionParameters["PG_Password"];
Base = "testbase1";
ConnectionString = OPI_PostgreSQL.GenerateConnectionString(Address, Base, Login, Password);
Table = "testtable";
Result = OPI_PostgreSQL.GetTableInformation(Table, ConnectionString);
// END
OPI_TestDataRetrieval.WriteLog(Result, "AddRecords", "PostgreSQL");
OPI_TestDataRetrieval.Check_ResultTrue(Result);
EndProcedure
Procedure PostgreSQL_AddRecords(FunctionParameters)
Address = FunctionParameters["PG_IP"];
@ -17384,21 +17405,15 @@ Procedure PostgreSQL_AddRecords(FunctionParameters)
Image = FunctionParameters["Picture"];
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
Char = New Map;
Char.Insert("""char""", 1);
DP = New Map;
DP.Insert("DOUBLE PRECISION", 1.0000000000000002);
RecordStructure = New Structure;
RecordStructure.Insert("bool_field" , New Structure("BOOL" , True));
RecordStructure.Insert("char_field" , Char);
RecordStructure.Insert("char_field" , New Structure("OLDCHAR" , "A"));
RecordStructure.Insert("smallint_field", New Structure("SMALLINT" , 5));
RecordStructure.Insert("int_field" , New Structure("INT" , 100));
RecordStructure.Insert("oid_field" , New Structure("OID" , 24576));
RecordStructure.Insert("bigint_field" , New Structure("BIGINT" , 9999999));
RecordStructure.Insert("real_field" , New Structure("REAL" , 15.2));
RecordStructure.Insert("dp_field" , DP);
RecordStructure.Insert("dp_field" , New Structure("DOUBLE_PRECISION", 1.0000000000000002));
RecordStructure.Insert("text_field" , New Structure("TEXT" , "Some text"));
RecordStructure.Insert("bytea_field" , New Structure("BYTEA" , Image));
RecordStructure.Insert("ts_field" , New Structure("TIMESTAMP" , 1739207915));

View File

@ -219,6 +219,31 @@
КонецФункции
// Получить информацию о таблице
// Получает информацию о таблице
//
// Параметры:
// Таблица - Строка - Имя таблицы - table
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
//
// Возвращаемое значение:
// Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Функция ПолучитьИнформациюОТаблице(Знач Таблица, Знач Соединение = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
ТекстSQL = "SELECT column_name, data_type, character_maximum_length
|FROM information_schema.columns
|WHERE table_name = '%1';";
ТекстSQL = СтрШаблон(ТекстSQL, Таблица);
Результат = ВыполнитьЗапросSQL(ТекстSQL, , , Соединение);
Возврат Результат;
КонецФункции
// Создать таблицу
// Создает пустую таблицу в базе
//

View File

@ -165,7 +165,7 @@
// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
//
// Возвращаемое значение:
// Структура Из КлючИЗначение, Строка - Результат выполнения запроса или его текст
// Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Функция ПолучитьИнформациюОТаблице(Знач Таблица, Знач Соединение = "") Экспорт
OPI_ПреобразованиеТипов.ПолучитьСтроку(Таблица);
@ -188,7 +188,7 @@
// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
//
// Возвращаемое значение:
// Структура Из КлючИЗначение, Строка - Результат выполнения запроса или его текст
// Структура Из КлючИЗначение, Строка - Результат выполнения запроса
Функция СоздатьТаблицу(Знач Таблица, Знач СтруктураКолонок, Знач Соединение = "") Экспорт
Результат = OPI_ЗапросыSQL.СоздатьТаблицу(OPI_SQLite, Таблица, СтруктураКолонок, Соединение);

View File

@ -2322,6 +2322,7 @@
PostgreSQL_СоздатьБазуДанных(ПараметрыТеста);
PostgreSQL_СоздатьТаблицу(ПараметрыТеста);
PostgreSQL_ПолучитьИнформациюОТаблице(ПараметрыТеста);
PostgreSQL_ДобавитьЗаписи(ПараметрыТеста);
PostgreSQL_УдалитьБазуДанных(ПараметрыТеста);
@ -17370,6 +17371,26 @@
КонецПроцедуры
Процедура PostgreSQL_ПолучитьИнформациюОТаблице(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
Логин = "bayselonarrend";
Пароль = ПараметрыФункции["PG_Password"];
База = "testbase1";
СтрокаПодключения = OPI_PostgreSQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
Таблица = "testtable";
Результат = OPI_PostgreSQL.ПолучитьИнформациюОТаблице(Таблица, СтрокаПодключения);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьЗаписи", "PostgreSQL");
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
КонецПроцедуры
Процедура PostgreSQL_ДобавитьЗаписи(ПараметрыФункции)
Адрес = ПараметрыФункции["PG_IP"];
@ -17384,21 +17405,15 @@
Картинка = ПараметрыФункции["Picture"];
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
Char = Новый Соответствие;
Char.Вставить("""char""", 1);
DP = Новый Соответствие;
DP.Вставить("DOUBLE PRECISION", 1.0000000000000002);
СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
СтруктураЗаписи.Вставить("char_field" , Char);
СтруктураЗаписи.Вставить("char_field" , Новый Структура("OLDCHAR" , "A"));
СтруктураЗаписи.Вставить("smallint_field", Новый Структура("SMALLINT" , 5));
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));
СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 9999999));
СтруктураЗаписи.Вставить("real_field" , Новый Структура("REAL" , 15.2));
СтруктураЗаписи.Вставить("dp_field" , DP);
СтруктураЗаписи.Вставить("dp_field" , Новый Структура("DOUBLE_PRECISION", 1.0000000000000002));
СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
СтруктураЗаписи.Вставить("bytea_field" , Новый Структура("BYTEA" , Картинка));
СтруктураЗаписи.Вставить("ts_field" , Новый Структура("TIMESTAMP" , 1739207915));