You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-11-29 22:27:42 +02:00
SQL: Добавление и удаление колонок таблиц
This commit is contained in:
@@ -284,6 +284,43 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавить колонку таблицы
|
||||
// Добавляет новую колонку в существующую таблицу
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - Строка - Имя таблицы - table
|
||||
// Имя - Строка - Имя колонки - name
|
||||
// ТипДанных - Строка - Тип данных колонки - type
|
||||
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||
Функция ДобавитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач ТипДанных, Знач Соединение = "", Знач Tls = "") Экспорт
|
||||
|
||||
Результат = OPI_ЗапросыSQL.ДобавитьКолонкуТаблицы(OPI_MySQL, Таблица, Имя, ТипДанных, Соединение, Tls);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить колонку таблицы
|
||||
// Удаляет колонку из таблицы
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - Строка - Имя таблицы - table
|
||||
// Имя - Строка - Имя колонки - name
|
||||
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||
Функция УдалитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач Соединение = "", Знач Tls = "") Экспорт
|
||||
|
||||
Результат = OPI_ЗапросыSQL.УдалитьКолонкуТаблицы(OPI_MySQL, Таблица, Имя, Соединение, Tls);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Очистить таблицу
|
||||
// Очищает таблицу базы
|
||||
//
|
||||
|
||||
@@ -327,6 +327,43 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавить колонку таблицы
|
||||
// Добавляет новую колонку в существующую таблицу
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - Строка - Имя таблицы - table
|
||||
// Имя - Строка - Имя колонки - name
|
||||
// ТипДанных - Строка - Тип данных колонки - type
|
||||
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||
Функция ДобавитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач ТипДанных, Знач Соединение = "", Знач Tls = "") Экспорт
|
||||
|
||||
Результат = OPI_ЗапросыSQL.ДобавитьКолонкуТаблицы(OPI_PostgreSQL, Таблица, Имя, ТипДанных, Соединение, Tls);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить колонку таблицы
|
||||
// Удаляет колонку из таблицы
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - Строка - Имя таблицы - table
|
||||
// Имя - Строка - Имя колонки - name
|
||||
// Соединение - Строка, Произвольный - Соединение или строка подключения - dbc
|
||||
// Tls - Структура Из КлючИЗначение - Настройки TLS, если необходимо. См. ПолучитьНастройкиTls - tls
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||
Функция УдалитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач Соединение = "", Знач Tls = "") Экспорт
|
||||
|
||||
Результат = OPI_ЗапросыSQL.УдалитьКолонкуТаблицы(OPI_PostgreSQL, Таблица, Имя, Соединение, Tls);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Очистить таблицу
|
||||
// Очищает таблицу базы
|
||||
//
|
||||
|
||||
@@ -257,6 +257,41 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавить колонку таблицы
|
||||
// Добавляет новую колонку в существующую таблицу
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - Строка - Имя таблицы - table
|
||||
// Имя - Строка - Имя колонки - name
|
||||
// ТипДанных - Строка - Тип данных колонки - type
|
||||
// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||
Функция ДобавитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач ТипДанных, Знач Соединение = "") Экспорт
|
||||
|
||||
Результат = OPI_ЗапросыSQL.ДобавитьКолонкуТаблицы(OPI_SQLite, Таблица, Имя, ТипДанных, Соединение);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Удалить колонку таблицы
|
||||
// Удаляет колонку из таблицы
|
||||
//
|
||||
// Параметры:
|
||||
// Таблица - Строка - Имя таблицы - table
|
||||
// Имя - Строка - Имя колонки - name
|
||||
// Соединение - Строка, Произвольный - Существующее соединение или путь к базе - db
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - Результат выполнения запроса
|
||||
Функция УдалитьКолонкуТаблицы(Знач Таблица, Знач Имя, Знач Соединение = "") Экспорт
|
||||
|
||||
Результат = OPI_ЗапросыSQL.УдалитьКолонкуТаблицы(OPI_SQLite, Таблица, Имя, Соединение);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавить записи
|
||||
// Добавляет записи в таблицу
|
||||
//
|
||||
|
||||
@@ -95,6 +95,45 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДобавитьКолонкуТаблицы(Знач Модуль
|
||||
, Знач Таблица
|
||||
, Знач Имя
|
||||
, Знач ТипДанных
|
||||
, Знач Соединение = ""
|
||||
, Знач Tls = Неопределено) Экспорт
|
||||
|
||||
Схема = ПустаяСхемаSQL("ALTERTABLEADD", Модуль);
|
||||
|
||||
УстановитьИмяТаблицы(Схема, Таблица);
|
||||
|
||||
УстановитьПроизвольноеПоле(Схема, "name" , Имя , "Строка");
|
||||
УстановитьПроизвольноеПоле(Схема, "dtype", ТипДанных, "Строка");
|
||||
|
||||
Запрос = СформироватьТекстSQL(Схема);
|
||||
Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция УдалитьКолонкуТаблицы(Знач Модуль
|
||||
, Знач Таблица
|
||||
, Знач Имя
|
||||
, Знач Соединение = ""
|
||||
, Знач Tls = Неопределено) Экспорт
|
||||
|
||||
Схема = ПустаяСхемаSQL("ALTERTABLEDROP", Модуль);
|
||||
|
||||
УстановитьИмяТаблицы(Схема, Таблица);
|
||||
УстановитьПроизвольноеПоле(Схема, "name", Имя, "Строка");
|
||||
|
||||
Запрос = СформироватьТекстSQL(Схема);
|
||||
Результат = ВыполнитьЗапросSQL(Модуль, Запрос, , , Соединение, Tls);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДобавитьЗаписи(Знач Модуль
|
||||
, Знач Таблица
|
||||
, Знач МассивДанных
|
||||
@@ -303,6 +342,14 @@
|
||||
ИначеЕсли Действие = "TABLESCHEMA" Тогда
|
||||
|
||||
Схема = ПустаяСхемаTableSchema();
|
||||
|
||||
ИначеЕсли Действие = "ALTERTABLEADD" Тогда
|
||||
|
||||
Схема = ПустаяСхемAlterTableAdd();
|
||||
|
||||
ИначеЕсли Действие = "ALTERTABLEDROP" Тогда
|
||||
|
||||
Схема = ПустаяСхемAlterTableDrop();
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -435,6 +482,29 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПустаяСхемAlterTableAdd()
|
||||
|
||||
Схема = Новый Структура("type", "ALTERTABLEADD");
|
||||
|
||||
Схема.Вставить("table", "");
|
||||
Схема.Вставить("name" , "");
|
||||
Схема.Вставить("dtype", "");
|
||||
|
||||
Возврат Схема;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПустаяСхемAlterTableDrop()
|
||||
|
||||
Схема = Новый Структура("type", "ALTERTABLEDROP");
|
||||
|
||||
Схема.Вставить("table", "");
|
||||
Схема.Вставить("name" , "");
|
||||
|
||||
Возврат Схема;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Процессоры
|
||||
@@ -491,6 +561,14 @@
|
||||
ИначеЕсли ТипСхемы = "TABLESCHEMA" Тогда
|
||||
|
||||
ТекстЗапроса = СформироватьТекстTableSchema(Схема);
|
||||
|
||||
ИначеЕсли ТипСхемы = "ALTERTABLEADD" Тогда
|
||||
|
||||
ТекстЗапроса = СформироватьТекстAlterTableAdd(Схема);
|
||||
|
||||
ИначеЕсли ТипСхемы = "ALTERTABLEDROP" Тогда
|
||||
|
||||
ТекстЗапроса = СформироватьТекстAlterTableDrop(Схема);
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -714,6 +792,33 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьТекстAlterTableAdd(Знач Схема)
|
||||
|
||||
Таблица = Схема["table"];
|
||||
Имя = Схема["name"];
|
||||
ТипДанных = Схема["dtype"];
|
||||
|
||||
ШаблонSQL = "ALTER TABLE %1 ADD %2 %3";
|
||||
|
||||
ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, Имя, ТипДанных);
|
||||
|
||||
Возврат ТекстSQL;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьТекстAlterTableDrop(Знач Схема)
|
||||
|
||||
Таблица = Схема["table"];
|
||||
Имя = Схема["name"];
|
||||
|
||||
ШаблонSQL = "ALTER TABLE %1 DROP %2";
|
||||
|
||||
ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, Имя);
|
||||
|
||||
Возврат ТекстSQL;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Вспомогательные
|
||||
|
||||
@@ -2316,6 +2316,8 @@
|
||||
SQLite_ОбновитьЗаписи(ПараметрыТеста);
|
||||
SQLite_УдалитьЗаписи(ПараметрыТеста);
|
||||
SQLite_ПолучитьИнформациюОТаблице(ПараметрыТеста);
|
||||
SQLite_ДобавитьКолонкуТаблицы(ПараметрыТеста);
|
||||
SQLite_УдалитьКолонкуТаблицы(ПараметрыТеста);
|
||||
SQLite_ОчиститьТаблицу(ПараметрыТеста);
|
||||
SQLite_УдалитьТаблицу(ПараметрыТеста);
|
||||
SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
|
||||
@@ -2329,6 +2331,8 @@
|
||||
SQLite_ОбновитьЗаписи(ПараметрыТеста);
|
||||
SQLite_УдалитьЗаписи(ПараметрыТеста);
|
||||
SQLite_ПолучитьИнформациюОТаблице(ПараметрыТеста);
|
||||
SQLite_ДобавитьКолонкуТаблицы(ПараметрыТеста);
|
||||
SQLite_УдалитьКолонкуТаблицы(ПараметрыТеста);
|
||||
SQLite_ОчиститьТаблицу(ПараметрыТеста);
|
||||
SQLite_УдалитьТаблицу(ПараметрыТеста);
|
||||
SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
|
||||
@@ -17882,6 +17886,68 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура SQLite_ДобавитьКолонкуТаблицы(ПараметрыФункции)
|
||||
|
||||
База = ПараметрыФункции["SQLite_DB"];
|
||||
Таблица = "test";
|
||||
Имя = "new_col";
|
||||
ТипДанных = "TEXT";
|
||||
|
||||
Результат = OPI_SQLite.ДобавитьКолонкуТаблицы(Таблица, Имя, ТипДанных, База);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы", "SQLite");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
|
||||
|
||||
Результат = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьКолонкуТаблицы (проверка)", "SQLite");
|
||||
|
||||
Найдена = Ложь;
|
||||
|
||||
Для Каждого Колонка Из Результат["data"] Цикл
|
||||
|
||||
Если Колонка["name"] = Имя Тогда
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(ТипДанных, Колонка["type"]);
|
||||
Найдена = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура SQLite_УдалитьКолонкуТаблицы(ПараметрыФункции)
|
||||
|
||||
База = ПараметрыФункции["SQLite_DB"];
|
||||
Таблица = "test";
|
||||
Имя = "new_col";
|
||||
|
||||
Результат = OPI_SQLite.УдалитьКолонкуТаблицы(Таблица, Имя, База);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКолонкуТаблицы", "SQLite");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
|
||||
|
||||
Результат = OPI_SQLite.ПолучитьИнформациюОТаблице(Таблица, База);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьКолонкуТаблицы (проверка)", "SQLite");
|
||||
|
||||
Найдена = Ложь;
|
||||
|
||||
Для Каждого Колонка Из Результат["data"] Цикл
|
||||
|
||||
Если Колонка["name"] = Имя Тогда
|
||||
Найдена = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область PostgreSQL
|
||||
|
||||
@@ -2295,6 +2295,8 @@
|
||||
CLI_SQLite_ОбновитьЗаписи(ПараметрыТеста);
|
||||
CLI_SQLite_УдалитьЗаписи(ПараметрыТеста);
|
||||
CLI_SQLite_ПолучитьИнформациюОТаблице(ПараметрыТеста);
|
||||
CLI_SQLite_ДобавитьКолонкуТаблицы(ПараметрыТеста);
|
||||
CLI_SQLite_УдалитьКолонкуТаблицы(ПараметрыТеста);
|
||||
CLI_SQLite_ОчиститьТаблицу(ПараметрыТеста);
|
||||
CLI_SQLite_УдалитьТаблицу(ПараметрыТеста);
|
||||
CLI_SQLite_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
|
||||
@@ -19820,6 +19822,84 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_SQLite_ДобавитьКолонкуТаблицы(ПараметрыФункции)
|
||||
|
||||
База = ПараметрыФункции["SQLite_DB"];
|
||||
Таблица = "test";
|
||||
Имя = "new_col";
|
||||
ТипДанных = "TEXT";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("table", Таблица);
|
||||
Опции.Вставить("name" , Имя);
|
||||
Опции.Вставить("type" , ТипДанных);
|
||||
Опции.Вставить("db" , База);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ДобавитьКолонкуТаблицы", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ДобавитьКолонкуТаблицы", "SQLite");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("table", Таблица);
|
||||
Опции.Вставить("db" , База);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ДобавитьКолонкуТаблицы (проверка)", "SQLite");
|
||||
|
||||
Найдена = Ложь;
|
||||
|
||||
Для Каждого Колонка Из Результат["data"] Цикл
|
||||
|
||||
Если Колонка["name"] = Имя Тогда
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(ТипДанных, Колонка["type"]);
|
||||
Найдена = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_SQLite_УдалитьКолонкуТаблицы(ПараметрыФункции)
|
||||
|
||||
База = ПараметрыФункции["SQLite_DB"];
|
||||
Таблица = "test";
|
||||
Имя = "new_col";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("table", Таблица);
|
||||
Опции.Вставить("name" , Имя);
|
||||
Опции.Вставить("db" , База);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "УдалитьКолонкуТаблицы", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УдалитьКолонкуТаблицы", "SQLite");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат);
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("table", Таблица);
|
||||
Опции.Вставить("db" , База);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ПолучитьИнформациюОТаблице", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "УдалитьКолонкуТаблицы (проверка)", "SQLite");
|
||||
Найдена = Ложь;
|
||||
|
||||
Для Каждого Колонка Из Результат["data"] Цикл
|
||||
|
||||
Если Колонка["name"] = Имя Тогда
|
||||
Найдена = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Найдена, Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область PostgreSQL
|
||||
|
||||
Reference in New Issue
Block a user