1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-03-29 21:57:16 +02:00

Доработка компоненты PG

This commit is contained in:
Anton Titovets 2025-02-11 12:14:19 +03:00
parent 5523d267b9
commit 4b8c0ecb75
9 changed files with 65 additions and 22 deletions
src
addins/postgres
en
OInt/addins
OPI/src/CommonTemplates/OPI_PostgreSQL
ru
OInt/addins
OPI/src
CommonModules
OPI_PostgreSQL
OPI_SQLite
OPI_Тесты
CommonTemplates/OPI_PostgreSQL

Binary file not shown.

@ -245,9 +245,12 @@ fn rows_to_json(rows: Vec<postgres::Row>) -> String {
}
result.push(Value::Object(row_map));
}
};
json!(result).to_string()
json!({
"result": true,
"data": result
}).to_string()
}
fn format_json_error(error: &str) -> String {

Binary file not shown.

Binary file not shown.

@ -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, , , Соединение);
Возврат Результат;
КонецФункции
// Создать таблицу
// Создает пустую таблицу в базе
//

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

@ -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,25 +17405,19 @@
Картинка = ПараметрыФункции["Picture"];
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
Char = Новый Соответствие;
Char.Вставить("""char""", 1);
DP = Новый Соответствие;
DP.Вставить("DOUBLE PRECISION", 1.0000000000000002);
СтруктураЗаписи = Новый Структура;
СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
СтруктураЗаписи.Вставить("char_field" , Char);
СтруктураЗаписи.Вставить("smallint_field", Новый Структура("SMALLINT" , 5));
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , 100));
СтруктураЗаписи.Вставить("oid_field" , Новый Структура("OID" , 24576));
СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("BIGINT" , 9999999));
СтруктураЗаписи.Вставить("real_field" , Новый Структура("REAL" , 15.2));
СтруктураЗаписи.Вставить("dp_field" , DP);
СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
СтруктураЗаписи.Вставить("bytea_field" , Новый Структура("BYTEA" , Картинка));
СтруктураЗаписи.Вставить("ts_field" , Новый Структура("TIMESTAMP", 1739207915));
СтруктураЗаписи.Вставить("ip_field" , Новый Структура("INET" , "127.0.0.1"));
СтруктураЗаписи.Вставить("bool_field" , Новый Структура("BOOL" , Истина));
СтруктураЗаписи.Вставить("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" , Новый Структура("DOUBLE_PRECISION", 1.0000000000000002));
СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
СтруктураЗаписи.Вставить("bytea_field" , Новый Структура("BYTEA" , Картинка));
СтруктураЗаписи.Вставить("ts_field" , Новый Структура("TIMESTAMP" , 1739207915));
СтруктураЗаписи.Вставить("ip_field" , Новый Структура("INET" , "127.0.0.1"));
Результат = OPI_PostgreSQL.ДобавитьЗаписи(Таблица, СтруктураЗаписи, Ложь, СтрокаПодключения);