You've already forked OpenIntegrations
							
							
				mirror of
				https://github.com/Bayselonarrend/OpenIntegrations.git
				synced 2025-10-30 23:47:46 +02:00 
			
		
		
		
	Main build (Jenkins)
This commit is contained in:
		
							
								
								
									
										4
									
								
								ci/clitesten
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								ci/clitesten
									
									
									
									
										vendored
									
									
								
							| @@ -1980,6 +1980,10 @@ def test_sqlite(){ | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe sqlite UpdateRecords --table "test" --values "test" --filter "test" --db "test" --debug --test ' | ||||
|                } | ||||
|  | ||||
|                catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {    | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe sqlite DeletePosts --table "test" --filter "test" --db "test" --debug --test ' | ||||
|                } | ||||
|  | ||||
|                catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {    | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe sqlite GetRecordsFilterStrucutre --empty "test" --debug --test ' | ||||
|                } | ||||
|   | ||||
							
								
								
									
										4
									
								
								ci/clitestru
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								ci/clitestru
									
									
									
									
										vendored
									
									
								
							| @@ -1980,6 +1980,10 @@ def test_sqlite(){ | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe sqlite ОбновитьЗаписи --table "test" --values "test" --filter "test" --db "test" --debug --test ' | ||||
|                } | ||||
|  | ||||
|                catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {    | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe sqlite УдалитьЗаписи --table "test" --filter "test" --db "test" --debug --test ' | ||||
|                } | ||||
|  | ||||
|                catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {    | ||||
| 					powershell encoding: 'UTF-8', script:'./oint.exe sqlite ПолучитьСтруктуруФильтраЗаписей --empty "test" --debug --test ' | ||||
|                } | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/examples/SQLite/AddRecords.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/examples/SQLite/AddRecords.txt
									
									
									
									
										vendored
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|     PictureFile = GetTempFileName("png"); | ||||
|     Image.Write(PictureFile); // PictureFile - File to disk | ||||
|  | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     DataArray = New Array; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/examples/SQLite/CreateTable.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/examples/SQLite/CreateTable.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     ColoumnsStruct = New Structure; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/examples/SQLite/GetRecords.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/examples/SQLite/GetRecords.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     Fields = New Array; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/examples/SQLite/UpdateRecords.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/examples/SQLite/UpdateRecords.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     FieldsStructure = New Structure; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/md/SQLite/Orm/Add-records.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/md/SQLite/Orm/Add-records.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem'; | ||||
|     PictureFile = GetTempFileName("png"); | ||||
|     Image.Write(PictureFile); // PictureFile - File to disk | ||||
|  | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     DataArray = New Array; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/md/SQLite/Orm/Create-table.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/md/SQLite/Orm/Create-table.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
| ```bsl title="1C:Enterprise/OneScript code example" | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     ColoumnsStruct = New Structure; | ||||
|   | ||||
							
								
								
									
										36
									
								
								docs/en/md/SQLite/Orm/Delete-posts.mdx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								docs/en/md/SQLite/Orm/Delete-posts.mdx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| sidebar_position: 5 | ||||
| --- | ||||
|  | ||||
| import Tabs from '@theme/Tabs'; | ||||
| import TabItem from '@theme/TabItem'; | ||||
|  | ||||
| # Delete records | ||||
|  Deletes records from the table | ||||
|  | ||||
|  | ||||
|  | ||||
| `Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export` | ||||
|  | ||||
|   | Parameter | CLI option | Type | Required | Description | | ||||
|   |-|-|-|-|-| | ||||
|   | Table | --table | String | ✔ | Table name | | ||||
|   | Filters | --filter | Array of Structure | ✖ | Filters array. See GetRecordsFilterStrucutre | | ||||
|   | Connection | --db | String, Arbitrary | ✖ | Existing connection or database path | | ||||
|  | ||||
|    | ||||
|   Returns:  Structure Of KeyAndValue, String - Result of query execution | ||||
|  | ||||
| <br/> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```bsl title="1C:Enterprise/OneScript code example" | ||||
|  | ||||
| ``` | ||||
|   | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -1,5 +1,5 @@ | ||||
| --- | ||||
| sidebar_position: 5 | ||||
| sidebar_position: 6 | ||||
| --- | ||||
|  | ||||
| import Tabs from '@theme/Tabs'; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/md/SQLite/Orm/Get-records.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/md/SQLite/Orm/Get-records.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -30,7 +30,7 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
| ```bsl title="1C:Enterprise/OneScript code example" | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     Fields = New Array; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/en/md/SQLite/Orm/Update-records.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/en/md/SQLite/Orm/Update-records.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -28,7 +28,7 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
| ```bsl title="1C:Enterprise/OneScript code example" | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     Base  = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Table = "test"; | ||||
|  | ||||
|     FieldsStructure = New Structure; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/examples/SQLite/ДобавитьЗаписи.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/examples/SQLite/ДобавитьЗаписи.txt
									
									
									
									
										vendored
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|     ФайлКартинки = ПолучитьИмяВременногоФайла("png"); | ||||
|     Картинка.Записать(ФайлКартинки);                          // ФайлКартинки - Файл на диске | ||||
|  | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     МассивДанных = Новый Массив; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/examples/SQLite/ОбновитьЗаписи.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/examples/SQLite/ОбновитьЗаписи.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     СтруктураПолей = Новый Структура; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/examples/SQLite/ПолучитьЗаписи.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/examples/SQLite/ПолучитьЗаписи.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     Поля = Новый Массив; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/examples/SQLite/СоздатьТаблицу.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/examples/SQLite/СоздатьТаблицу.txt
									
									
									
									
										vendored
									
									
								
							| @@ -1,4 +1,4 @@ | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     СтруктураКолонок = Новый Структура; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/md/SQLite/Orm/Add-records.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/md/SQLite/Orm/Add-records.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -34,7 +34,7 @@ import TabItem from '@theme/TabItem'; | ||||
|     ФайлКартинки = ПолучитьИмяВременногоФайла("png"); | ||||
|     Картинка.Записать(ФайлКартинки);                          // ФайлКартинки - Файл на диске | ||||
|  | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     МассивДанных = Новый Массив; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/md/SQLite/Orm/Create-table.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/md/SQLite/Orm/Create-table.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -27,7 +27,7 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
| ```bsl title="Пример использования для 1С:Предприятие/OneScript" | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     СтруктураКолонок = Новый Структура; | ||||
|   | ||||
							
								
								
									
										36
									
								
								docs/ru/md/SQLite/Orm/Delete-posts.mdx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								docs/ru/md/SQLite/Orm/Delete-posts.mdx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,36 @@ | ||||
| --- | ||||
| sidebar_position: 5 | ||||
| --- | ||||
|  | ||||
| import Tabs from '@theme/Tabs'; | ||||
| import TabItem from '@theme/TabItem'; | ||||
|  | ||||
| # Удалить записи | ||||
|  Удаляет записи из таблицы | ||||
|  | ||||
|  | ||||
|  | ||||
| `Функция УдалитьЗаписи(Знач Таблица, Знач Фильтры = "", Знач Соединение = "") Экспорт` | ||||
|  | ||||
|   | Параметр | CLI опция | Тип | Обяз. | Назначение | | ||||
|   |-|-|-|-|-| | ||||
|   | Таблица | --table | Строка | ✔ | Имя таблицы | | ||||
|   | Фильтры | --filter | Массив Из Структура | ✖ | Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей | | ||||
|   | Соединение | --db | Строка, Произвольный | ✖ | Существующее соединение или путь к базе | | ||||
|  | ||||
|    | ||||
|   Возвращаемое значение:   Структура Из КлючИЗначение, Строка - Результат выполнения запроса | ||||
|  | ||||
| <br/> | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ```bsl title="Пример использования для 1С:Предприятие/OneScript" | ||||
|  | ||||
| ``` | ||||
|      | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| @@ -1,5 +1,5 @@ | ||||
| --- | ||||
| sidebar_position: 5 | ||||
| sidebar_position: 6 | ||||
| --- | ||||
|  | ||||
| import Tabs from '@theme/Tabs'; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/md/SQLite/Orm/Get-records.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/md/SQLite/Orm/Get-records.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -30,7 +30,7 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
| ```bsl title="Пример использования для 1С:Предприятие/OneScript" | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     Поля = Новый Массив; | ||||
|   | ||||
							
								
								
									
										2
									
								
								docs/ru/md/SQLite/Orm/Update-records.mdx
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								docs/ru/md/SQLite/Orm/Update-records.mdx
									
									
									
									
										vendored
									
									
								
							| @@ -28,7 +28,7 @@ import TabItem from '@theme/TabItem'; | ||||
|  | ||||
|  | ||||
| ```bsl title="Пример использования для 1С:Предприятие/OneScript" | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_3590_23.sqlite"; | ||||
|     База    = "C:\Users\Administrator\AppData\Local\Temp\v8_D671_13.sqlite"; | ||||
|     Таблица = "test"; | ||||
|  | ||||
|     СтруктураПолей = Новый Структура; | ||||
|   | ||||
							
								
								
									
										12264
									
								
								service/dictionaries/en.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12264
									
								
								service/dictionaries/en.json
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										17
									
								
								src/en/OInt/core/Modules/OPI_SQLite.os
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								src/en/OInt/core/Modules/OPI_SQLite.os
									
									
									
									
										vendored
									
									
								
							| @@ -234,6 +234,23 @@ Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Conn | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| // Delete records | ||||
| // Deletes records from the table | ||||
| // | ||||
| // Parameters: | ||||
| // Table - String - Table name - table | ||||
| // Filters - Array of Structure - Filters array. See GetRecordsFilterStrucutre - filter | ||||
| // Connection - String, Arbitrary - Existing connection or database path - db | ||||
| // | ||||
| // Returns: | ||||
| // Structure Of KeyAndValue, String - Result of query execution | ||||
| Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export | ||||
|  | ||||
|     Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection); | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| // Get records filter strucutre | ||||
| // Gets the template structure for filtering records in ORM queries | ||||
| // | ||||
|   | ||||
							
								
								
									
										2
									
								
								src/en/OInt/lib.config
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								src/en/OInt/lib.config
									
									
									
									
										vendored
									
									
								
							| @@ -23,7 +23,7 @@ | ||||
|     <module name="OPI_YandexID" file="core/Modules/OPI_YandexID.os"/> | ||||
|     <module name="OPI_YandexMarket" file="core/Modules/OPI_YandexMarket.os"/> | ||||
|     <module name="OPI_YandexMetrika" file="core/Modules/OPI_YandexMetrika.os"/> | ||||
|     <module name="os" file="tools/Modules/os"/> | ||||
|     <module name="OPI_SQLQueries" file="tools/Modules/OPI_SQLQueries.os"/> | ||||
|     <module name="OPI_Tools" file="tools/Modules/internal/Modules/OPI_Tools.os"/> | ||||
|     <module name="OPI_Cryptography" file="tools/Modules/internal/Modules/OPI_Cryptography.os"/> | ||||
|     <module name="OPI_TestDataRetrieval" file="tools/Modules/OPI_TestDataRetrieval.os"/> | ||||
|   | ||||
							
								
								
									
										583
									
								
								src/en/OInt/tools/Modules/OPI_SQLQueries.os
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										583
									
								
								src/en/OInt/tools/Modules/OPI_SQLQueries.os
									
									
									
									
										vendored
									
									
								
							| @@ -42,164 +42,200 @@ | ||||
|  | ||||
| #Region Internal | ||||
|  | ||||
| Function NewSQLScheme(Val Action) Export | ||||
| Function CreateTable(Val Module, Val Table, Val ColoumnsStruct, Val Connection = "") Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Action); | ||||
|     ErrorText = "The column structure is not a valid key-value structure"; | ||||
|     OPI_TypeConversion.GetKeyValueCollection(ColoumnsStruct, ErrorText); | ||||
|  | ||||
|     Action = Upper(Action); | ||||
|     Scheme = NewSQLScheme("CREATE"); | ||||
|  | ||||
|     If Action = "SELECT" Then | ||||
|     SetTableName(Scheme, Table); | ||||
|  | ||||
|         Scheme = EmptySchemeSelect(); | ||||
|     For Each Coloumn In ColoumnsStruct Do | ||||
|         AddColoumn(Scheme, Coloumn.Key, Coloumn.Value); | ||||
|     EndDo; | ||||
|  | ||||
|     ElsIf Action = "INSERT" Then | ||||
|     Request = FormSQLText(Scheme); | ||||
|     Result  = Module.ExecuteSQLQuery(Request, , , Connection); | ||||
|  | ||||
|         Scheme = EmptySchemeInsert(); | ||||
|  | ||||
|     ElsIf Action = "UPDATE" Then | ||||
|  | ||||
|         Scheme = EmptySchemeUpdate(); | ||||
|  | ||||
|     ElsIf Action = "DELETE" Then | ||||
|  | ||||
|         Scheme = EmptySchemeDelete(); | ||||
|  | ||||
|     ElsIf Action = "CREATE" Then | ||||
|  | ||||
|         Scheme = EmptySchemeCreate(); | ||||
|  | ||||
|     Else | ||||
|  | ||||
|         Scheme = New Structure; | ||||
|  | ||||
|     EndIf; | ||||
|  | ||||
|     Return Scheme; | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function FormSQLText(Val Scheme) Export | ||||
| Function AddRecords(Val Module | ||||
|     , Val Table | ||||
|     , Val DataArray | ||||
|     , Val Transaction = True | ||||
|     , Val Connection  = "") Export | ||||
|  | ||||
|     ErrorText = "The value passed is not a valid SQL query schema"; | ||||
|     OPI_TypeConversion.GetKeyValueCollection(Scheme, ErrorText); | ||||
|     OPI_TypeConversion.GetArray(DataArray); | ||||
|     OPI_TypeConversion.GetBoolean(Transaction); | ||||
|  | ||||
|     SchemeType = ""; | ||||
|     Connection = Module.CreateConnection(Connection); | ||||
|  | ||||
|     If Not OPI_Tools.CollectionFieldExist(Scheme, "type", SchemeType) Then | ||||
|         Raise ErrorText; | ||||
|     If Not Module.IsConnector(Connection) Then | ||||
|         Return Connection; | ||||
|     EndIf; | ||||
|  | ||||
|     SchemeType = Upper(SchemeType); | ||||
|     If Transaction Then | ||||
|  | ||||
|     If SchemeType = "SELECT" Then | ||||
|         Start = Module.ExecuteSQLQuery("BEGIN TRANSACTION", , , Connection); | ||||
|  | ||||
|         QueryText = FormTextSelect(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "INSERT" Then | ||||
|  | ||||
|         QueryText = FormTextInsert(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "UPDATE" Then | ||||
|  | ||||
|         QueryText = FormTextUpdate(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "DELETE" Then | ||||
|  | ||||
|         QueryText = FormTextDelete(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "CREATE" Then | ||||
|  | ||||
|         QueryText = FormTextCreate(Scheme); | ||||
|  | ||||
|     Else | ||||
|  | ||||
|         QueryText = ""; | ||||
|         If Not Start["result"] Then | ||||
|             Return Start; | ||||
|         EndIf; | ||||
|  | ||||
|     EndIf; | ||||
|  | ||||
|     Return QueryText; | ||||
|     Counter      = 0; | ||||
|     SuccessCount = 0; | ||||
|  | ||||
|     Error           = False; | ||||
|     ErrorsArray     = New Array; | ||||
|     CollectionError = "Invalid data"; | ||||
|  | ||||
|     ResultStrucutre = New Structure; | ||||
|  | ||||
|     For Each Record In DataArray Do | ||||
|  | ||||
|         If Error And Transaction Then | ||||
|  | ||||
|             Rollback = Module.ExecuteSQLQuery("ROLLBACK", , , Connection); | ||||
|  | ||||
|             SuccessCount = 0; | ||||
|             ResultStrucutre.Insert("rollback", Rollback); | ||||
|             Break; | ||||
|  | ||||
|         EndIf; | ||||
|  | ||||
|         Counter = Counter + 1; | ||||
|         Error   = False; | ||||
|  | ||||
|         Try | ||||
|             OPI_TypeConversion.GetKeyValueCollection(Record, CollectionError); | ||||
|         Except | ||||
|             ErrorsArray.Add(New Structure("row,error", Counter, CollectionError)); | ||||
|             Error = True; | ||||
|             Continue; | ||||
|         EndTry; | ||||
|  | ||||
|         Result = AddRow(Module, Table, Record, Connection); | ||||
|  | ||||
|         If Result["result"] Then | ||||
|  | ||||
|             SuccessCount = SuccessCount + 1; | ||||
|  | ||||
|         Else | ||||
|  | ||||
|             ErrorsArray.Add(New Structure("row,error", Counter, Result["error"])); | ||||
|             Error = True; | ||||
|  | ||||
|         EndIf; | ||||
|  | ||||
|     EndDo; | ||||
|  | ||||
|     If Transaction And Not Error Then | ||||
|  | ||||
|         Completion = Module.ExecuteSQLQuery("COMMIT", , , Connection); | ||||
|         ResultStrucutre.Insert("commit", Completion); | ||||
|  | ||||
|     EndIf; | ||||
|  | ||||
|     ResultStrucutre.Insert("result", ErrorsArray.Count() = 0); | ||||
|     ResultStrucutre.Insert("rows"  , SuccessCount); | ||||
|     ResultStrucutre.Insert("errors", ErrorsArray); | ||||
|  | ||||
|      Return ResultStrucutre; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Procedure AddColoumn(Scheme, Val Name, Val Type) Export | ||||
| Function GetRecords(Val Module | ||||
|     , Val Table | ||||
|     , Val Fields     = "*" | ||||
|     , Val Filters    = "" | ||||
|     , Val Sort       = "" | ||||
|     , Val Count      = "" | ||||
|     , Val Connection = "") Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Name); | ||||
|     OPI_TypeConversion.GetLine(Type); | ||||
|     Scheme = NewSQLScheme("SELECT"); | ||||
|  | ||||
|     If Not Scheme["type"] = "CREATE" Then | ||||
|         Return; | ||||
|     SetTableName(Scheme, Table); | ||||
|     SetLimit(Scheme, Count); | ||||
|  | ||||
|     FillFields(Scheme, Fields); | ||||
|     FillFilters(Scheme, Filters); | ||||
|     FillSorting(Scheme, Sort); | ||||
|  | ||||
|     Request = FormSQLText(Scheme); | ||||
|  | ||||
|     Result = Module.ExecuteSQLQuery(Request, Scheme["values"], , Connection); | ||||
|  | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function UpdateRecords(Val Module | ||||
|     , Val Table | ||||
|     , Val ValueStructure | ||||
|     , Val Filters    = "" | ||||
|     , Val Connection = "") Export | ||||
|  | ||||
|     Scheme = NewSQLScheme("UPDATE"); | ||||
|  | ||||
|     FieldArray  = New Array; | ||||
|     ValuesArray = New Array; | ||||
|  | ||||
|     SetTableName(Scheme, Table); | ||||
|     SplitDataCollection(ValueStructure, FieldArray, ValuesArray); | ||||
|  | ||||
|     Scheme["values"] = ValuesArray; | ||||
|  | ||||
|     For Each Field In FieldArray Do | ||||
|         AddField(Scheme, Field); | ||||
|     EndDo; | ||||
|  | ||||
|     FillFilters(Scheme, Filters); | ||||
|  | ||||
|     Request = FormSQLText(Scheme); | ||||
|     Result  = Module.ExecuteSQLQuery(Request, Scheme["values"], , Connection); | ||||
|  | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function DeletePosts(Val Module, Val Table, Val Filters = "", Val Connection = "") Export | ||||
|  | ||||
|     Scheme = NewSQLScheme("DELETE"); | ||||
|  | ||||
|     SetTableName(Scheme, Table); | ||||
|  | ||||
|     FillFilters(Scheme, Filters); | ||||
|  | ||||
|     Request = FormSQLText(Scheme); | ||||
|     Result  = Module.ExecuteSQLQuery(Request, Scheme["values"], , Connection); | ||||
|  | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function GetRecordsFilterStrucutre(Val Clear = False) Export | ||||
|  | ||||
|     FilterStructure = New Structure; | ||||
|  | ||||
|     FilterStructure.Insert("field", "<filtering field name>"); | ||||
|     FilterStructure.Insert("type" , "<comparison type>"); | ||||
|     FilterStructure.Insert("value", "<comparison value>"); | ||||
|     FilterStructure.Insert("union", "<connection with the following condition: AND, OR, etc..>"); | ||||
|     FilterStructure.Insert("raw"  , "<true - the value will be inserted by text as it is, false - through the parameter>"); | ||||
|  | ||||
|     If Clear Then | ||||
|         FilterStructure = OPI_Tools.ClearCollectionRecursively(FilterStructure); | ||||
|     EndIf; | ||||
|  | ||||
|     ColoumnMap = New Map; | ||||
|     ColoumnMap.Insert(Name, Type); | ||||
|     //@skip-check constructor-function-return-section | ||||
|     Return FilterStructure; | ||||
|  | ||||
|     Scheme["columns"].Add(ColoumnMap); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure AddField(Scheme, Val Name) Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Name); | ||||
|  | ||||
|     Scheme["set"].Add(Name); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure AddFilter(Scheme, Val Field, Val Type, Val Value, Val Grouping, Val Raw) Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Field); | ||||
|     OPI_TypeConversion.GetLine(Type); | ||||
|     OPI_TypeConversion.GetLine(Grouping); | ||||
|     OPI_TypeConversion.GetBoolean(Raw); | ||||
|  | ||||
|     MainStructure = New Structure("field,type,union" | ||||
|         , Field | ||||
|         , Type | ||||
|         , Grouping); | ||||
|  | ||||
|     If Raw Then | ||||
|  | ||||
|         MainStructure.Insert("value", String(Value)); | ||||
|  | ||||
|     Else | ||||
|  | ||||
|         Scheme["values"].Add(Value); | ||||
|  | ||||
|         OrderNumber = Scheme["values"].Count(); | ||||
|         MainStructure.Insert("value", "?" + OPI_Tools.NumberToString(OrderNumber)); | ||||
|  | ||||
|     EndIf; | ||||
|  | ||||
|  | ||||
|     Scheme["filter"].Add(MainStructure); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure AddSorting(Scheme, Val Field, Val Type) Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Field); | ||||
|     OPI_TypeConversion.GetLine(Type); | ||||
|  | ||||
|     Scheme["order"].Add(New Structure("field,type", Field, Type)); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
|  | ||||
| Procedure SetTableName(Scheme, Val Name) Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Name); | ||||
|  | ||||
|     Scheme.Insert("table", Name); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure SetLimit(Scheme, Val Count) Export | ||||
|  | ||||
|     OPI_TypeConversion.GetNumber(Count); | ||||
|  | ||||
|     Scheme.Insert("limit", Count); | ||||
|  | ||||
| EndProcedure | ||||
| EndFunction | ||||
|  | ||||
| #EndRegion | ||||
|  | ||||
| @@ -237,9 +273,10 @@ Function EmptySchemeUpdate() | ||||
|  | ||||
|     Scheme = New Structure("type", "UPDATE"); | ||||
|  | ||||
|     Scheme.Insert("table" , ""); | ||||
|     Scheme.Insert("set"   , New Array); | ||||
|     Scheme.Insert("filter", New Array); | ||||
|     Scheme.Insert("table"  , ""); | ||||
|     Scheme.Insert("set"    , New Array); | ||||
|     Scheme.Insert("filter" , New Array); | ||||
|     Scheme.Insert("values" , New Array); | ||||
|  | ||||
|     Return Scheme; | ||||
|  | ||||
| @@ -318,7 +355,23 @@ EndFunction | ||||
|  | ||||
| Function FormTextUpdate(Val Scheme) | ||||
|  | ||||
|     TextSQL = ""; | ||||
|     CheckSchemeRequiredFields(Scheme, "table,set,values"); | ||||
|  | ||||
|     Table   = Scheme["table"]; | ||||
|     Fields  = Scheme["set"]; | ||||
|     Filters = Scheme["filter"]; | ||||
|  | ||||
|     SQLTemplate = "UPDATE %1 SET %2 %3"; | ||||
|  | ||||
|     FilterText = FormFilterText(Filters); | ||||
|  | ||||
|     For N = 0 To Fields.UBound() Do | ||||
|  | ||||
|         Fields[N] = Fields[N] + " = ?" + OPI_Tools.NumberToString(N + 1); | ||||
|  | ||||
|     EndDo; | ||||
|  | ||||
|     TextSQL = StrTemplate(SQLTemplate, Table, StrConcat(Fields, "," + Chars.LF), FilterText); | ||||
|  | ||||
|     Return TextSQL; | ||||
|  | ||||
| @@ -326,7 +379,16 @@ EndFunction | ||||
|  | ||||
| Function FormTextDelete(Val Scheme) | ||||
|  | ||||
|     TextSQL = ""; | ||||
|     CheckSchemeRequiredFields(Scheme, "table"); | ||||
|  | ||||
|     Table   = Scheme["table"]; | ||||
|     Filters = Scheme["filter"]; | ||||
|  | ||||
|     SQLTemplate = "DELETE FROM %1 %2"; | ||||
|  | ||||
|     FilterText = FormFilterText(Filters); | ||||
|  | ||||
|     TextSQL = StrTemplate(SQLTemplate, Table, FilterText); | ||||
|  | ||||
|     Return TextSQL; | ||||
|  | ||||
| @@ -363,6 +425,87 @@ EndFunction | ||||
|  | ||||
| #EndRegion | ||||
|  | ||||
| #Region Auxiliary | ||||
|  | ||||
| Function NewSQLScheme(Val Action) | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Action); | ||||
|  | ||||
|     Action = Upper(Action); | ||||
|  | ||||
|     If Action = "SELECT" Then | ||||
|  | ||||
|         Scheme = EmptySchemeSelect(); | ||||
|  | ||||
|     ElsIf Action = "INSERT" Then | ||||
|  | ||||
|         Scheme = EmptySchemeInsert(); | ||||
|  | ||||
|     ElsIf Action = "UPDATE" Then | ||||
|  | ||||
|         Scheme = EmptySchemeUpdate(); | ||||
|  | ||||
|     ElsIf Action = "DELETE" Then | ||||
|  | ||||
|         Scheme = EmptySchemeDelete(); | ||||
|  | ||||
|     ElsIf Action = "CREATE" Then | ||||
|  | ||||
|         Scheme = EmptySchemeCreate(); | ||||
|  | ||||
|     Else | ||||
|  | ||||
|         Scheme = New Structure; | ||||
|  | ||||
|     EndIf; | ||||
|  | ||||
|     Return Scheme; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function FormSQLText(Val Scheme) | ||||
|  | ||||
|     ErrorText = "The value passed is not a valid SQL query schema"; | ||||
|     OPI_TypeConversion.GetKeyValueCollection(Scheme, ErrorText); | ||||
|  | ||||
|     SchemeType = ""; | ||||
|  | ||||
|     If Not OPI_Tools.CollectionFieldExist(Scheme, "type", SchemeType) Then | ||||
|         Raise ErrorText; | ||||
|     EndIf; | ||||
|  | ||||
|     SchemeType = Upper(SchemeType); | ||||
|  | ||||
|     If SchemeType = "SELECT" Then | ||||
|  | ||||
|         QueryText = FormTextSelect(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "INSERT" Then | ||||
|  | ||||
|         QueryText = FormTextInsert(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "UPDATE" Then | ||||
|  | ||||
|         QueryText = FormTextUpdate(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "DELETE" Then | ||||
|  | ||||
|         QueryText = FormTextDelete(Scheme); | ||||
|  | ||||
|     ElsIf SchemeType = "CREATE" Then | ||||
|  | ||||
|         QueryText = FormTextCreate(Scheme); | ||||
|  | ||||
|     Else | ||||
|  | ||||
|         QueryText = ""; | ||||
|  | ||||
|     EndIf; | ||||
|  | ||||
|     Return QueryText; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function ForSelectOptionsText(Val Filters, Val Sort, Val Count) | ||||
|  | ||||
|     BlockTemplate = "%1 | ||||
| @@ -454,6 +597,93 @@ Function FormCountText(Val Count) | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function AddRow(Val Module, Val Table, Val Record, Val Connection) | ||||
|  | ||||
|     FieldArray  = New Array; | ||||
|     ValuesArray = New Array; | ||||
|  | ||||
|     Scheme = NewSQLScheme("INSERT"); | ||||
|     SetTableName(Scheme, Table); | ||||
|  | ||||
|     SplitDataCollection(Record, FieldArray, ValuesArray); | ||||
|  | ||||
|     For Each Field In FieldArray Do | ||||
|         AddField(Scheme, Field); | ||||
|     EndDo; | ||||
|  | ||||
|     Request = FormSQLText(Scheme); | ||||
|  | ||||
|     Result = Module.ExecuteSQLQuery(Request, ValuesArray, , Connection); | ||||
|  | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Procedure SplitDataCollection(Val Record, FieldArray, ValuesArray) | ||||
|  | ||||
|     ErrorText = "Incorrect data set for updating"; | ||||
|     OPI_TypeConversion.GetKeyValueCollection(Record, ErrorText); | ||||
|  | ||||
|     For Each Element In Record Do | ||||
|  | ||||
|         FieldArray.Add(Element.Key); | ||||
|         ValuesArray.Add(Element.Value); | ||||
|  | ||||
|     EndDo; | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure FillFields(Scheme, Val Fields) | ||||
|  | ||||
|     If Not ValueIsFilled(Fields) Then | ||||
|         Fields = "*"; | ||||
|     EndIf; | ||||
|  | ||||
|     OPI_TypeConversion.GetArray(Fields); | ||||
|  | ||||
|     For Each Field In Fields Do | ||||
|         AddField(Scheme, Field); | ||||
|     EndDo; | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure FillFilters(Scheme, Val Filters) | ||||
|  | ||||
|     If Not ValueIsFilled(Filters) Then | ||||
|         Return; | ||||
|     EndIf; | ||||
|  | ||||
|     OPI_TypeConversion.GetArray(Filters); | ||||
|  | ||||
|     For Each Filter In Filters Do | ||||
|  | ||||
|         AddFilter(Scheme | ||||
|             , Filter["field"] | ||||
|             , ?(Filter.Property("type"), Filter["type"], "=") | ||||
|             , Filter["value"] | ||||
|             , ?(Filter.Property("union"), Filter["union"], "AND") | ||||
|             , ?(Filter.Property("raw"), Filter["raw"], False)); | ||||
|  | ||||
|     EndDo; | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure FillSorting(Val Scheme, Val Sort) | ||||
|  | ||||
|     If Not ValueIsFilled(Sort) Then | ||||
|         Return; | ||||
|     EndIf; | ||||
|  | ||||
|     OPI_TypeConversion.GetCollection(Sort); | ||||
|  | ||||
|     For Each Element In Sort Do | ||||
|  | ||||
|         AddSorting(Scheme, Element.Key, Element.Value); | ||||
|  | ||||
|     EndDo; | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure CheckSchemeRequiredFields(Scheme, Val Fields) | ||||
|  | ||||
|     RequiredFieldsArray = StrSplit(Fields, ","); | ||||
| @@ -465,4 +695,85 @@ Procedure CheckSchemeRequiredFields(Scheme, Val Fields) | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure AddColoumn(Scheme, Val Name, Val Type) Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Name); | ||||
|     OPI_TypeConversion.GetLine(Type); | ||||
|  | ||||
|     If Not Scheme["type"] = "CREATE" Then | ||||
|         Return; | ||||
|     EndIf; | ||||
|  | ||||
|     ColoumnMap = New Map; | ||||
|     ColoumnMap.Insert(Name, Type); | ||||
|  | ||||
|     Scheme["columns"].Add(ColoumnMap); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure AddField(Scheme, Val Name) Export | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Name); | ||||
|  | ||||
|     Scheme["set"].Add(Name); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure AddFilter(Scheme, Val Field, Val Type, Val Value, Val Grouping, Val Raw) | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Field); | ||||
|     OPI_TypeConversion.GetLine(Type); | ||||
|     OPI_TypeConversion.GetLine(Grouping); | ||||
|     OPI_TypeConversion.GetBoolean(Raw); | ||||
|  | ||||
|     MainStructure = New Structure("field,type,union" | ||||
|         , Field | ||||
|         , Type | ||||
|         , Grouping); | ||||
|  | ||||
|     If Raw Then | ||||
|  | ||||
|         MainStructure.Insert("value", String(Value)); | ||||
|  | ||||
|     Else | ||||
|  | ||||
|         Scheme["values"].Add(Value); | ||||
|  | ||||
|         OrderNumber = Scheme["values"].Count(); | ||||
|         MainStructure.Insert("value", "?" + OPI_Tools.NumberToString(OrderNumber)); | ||||
|  | ||||
|     EndIf; | ||||
|  | ||||
|  | ||||
|     Scheme["filter"].Add(MainStructure); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure AddSorting(Scheme, Val Field, Val Type) | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Field); | ||||
|     OPI_TypeConversion.GetLine(Type); | ||||
|  | ||||
|     Scheme["order"].Add(New Structure("field,type", Field, Type)); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure SetTableName(Scheme, Val Name) | ||||
|  | ||||
|     OPI_TypeConversion.GetLine(Name); | ||||
|  | ||||
|     Scheme.Insert("table", Name); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| Procedure SetLimit(Scheme, Val Count) | ||||
|  | ||||
|     OPI_TypeConversion.GetNumber(Count); | ||||
|  | ||||
|     Scheme.Insert("limit", Count); | ||||
|  | ||||
| EndProcedure | ||||
|  | ||||
| #EndRegion | ||||
|  | ||||
| #EndRegion | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| // OneScript: ./OInt/tools/Modules/os | ||||
| // OneScript: ./OInt/tools/Modules/OPI_SQLQueries.os | ||||
|  | ||||
| // MIT License | ||||
|  | ||||
| @@ -203,6 +203,21 @@ Function UpdateRecords(Val Module | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function DeletePosts(Val Module, Val Table, Val Filters = "", Val Connection = "") Export | ||||
|  | ||||
|     Scheme = NewSQLScheme("DELETE"); | ||||
|  | ||||
|     SetTableName(Scheme, Table); | ||||
|  | ||||
|     FillFilters(Scheme, Filters); | ||||
|  | ||||
|     Request = FormSQLText(Scheme); | ||||
|     Result  = Module.ExecuteSQLQuery(Request, Scheme["values"], , Connection); | ||||
|  | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| Function GetRecordsFilterStrucutre(Val Clear = False) Export | ||||
|  | ||||
|     FilterStructure = New Structure; | ||||
| @@ -364,7 +379,16 @@ EndFunction | ||||
|  | ||||
| Function FormTextDelete(Val Scheme) | ||||
|  | ||||
|     TextSQL = ""; | ||||
|     CheckSchemeRequiredFields(Scheme, "table"); | ||||
|  | ||||
|     Table   = Scheme["table"]; | ||||
|     Filters = Scheme["filter"]; | ||||
|  | ||||
|     SQLTemplate = "DELETE FROM %1 %2"; | ||||
|  | ||||
|     FilterText = FormFilterText(Filters); | ||||
|  | ||||
|     TextSQL = StrTemplate(SQLTemplate, Table, FilterText); | ||||
|  | ||||
|     Return TextSQL; | ||||
|  | ||||
|   | ||||
| @@ -234,6 +234,23 @@ Function UpdateRecords(Val Table, Val ValueStructure, Val Filters = "", Val Conn | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| // Delete records | ||||
| // Deletes records from the table | ||||
| // | ||||
| // Parameters: | ||||
| // Table - String - Table name - table | ||||
| // Filters - Array of Structure - Filters array. See GetRecordsFilterStrucutre - filter | ||||
| // Connection - String, Arbitrary - Existing connection or database path - db | ||||
| // | ||||
| // Returns: | ||||
| // Structure Of KeyAndValue, String - Result of query execution | ||||
| Function DeletePosts(Val Table, Val Filters = "", Val Connection = "") Export | ||||
|  | ||||
|     Result = OPI_SQLQueries.DeletePosts(OPI_SQLite, Table, Filters, Connection); | ||||
|     Return Result; | ||||
|  | ||||
| EndFunction | ||||
|  | ||||
| // Get records filter strucutre | ||||
| // Gets the template structure for filtering records in ORM queries | ||||
| // | ||||
|   | ||||
| @@ -225,6 +225,37 @@ | ||||
|     NewLine.Область     = "Orm"; | ||||
|  | ||||
|  | ||||
|     NewLine = CompositionTable.Add(); | ||||
|     NewLine.Библиотека  = "sqlite"; | ||||
|     NewLine.Модуль      = "OPI_SQLite"; | ||||
|     NewLine.Метод       = "DeletePosts"; | ||||
|     NewLine.МетодПоиска = "DELETEPOSTS"; | ||||
|     NewLine.Параметр    = "--table"; | ||||
|     NewLine.Описание    = "Table name"; | ||||
|     NewLine.Область     = "Orm"; | ||||
|     NewLine.ОписаниеМетода   = "Deletes records from the table"; | ||||
|  | ||||
|  | ||||
|     NewLine = CompositionTable.Add(); | ||||
|     NewLine.Библиотека  = "sqlite"; | ||||
|     NewLine.Модуль      = "OPI_SQLite"; | ||||
|     NewLine.Метод       = "DeletePosts"; | ||||
|     NewLine.МетодПоиска = "DELETEPOSTS"; | ||||
|     NewLine.Параметр    = "--filter"; | ||||
|     NewLine.Описание    = "Filters array. See GetRecordsFilterStrucutre (optional, def. val. - Empty value)"; | ||||
|     NewLine.Область     = "Orm"; | ||||
|  | ||||
|  | ||||
|     NewLine = CompositionTable.Add(); | ||||
|     NewLine.Библиотека  = "sqlite"; | ||||
|     NewLine.Модуль      = "OPI_SQLite"; | ||||
|     NewLine.Метод       = "DeletePosts"; | ||||
|     NewLine.МетодПоиска = "DELETEPOSTS"; | ||||
|     NewLine.Параметр    = "--db"; | ||||
|     NewLine.Описание    = "Existing connection or database path (optional, def. val. - Empty value)"; | ||||
|     NewLine.Область     = "Orm"; | ||||
|  | ||||
|  | ||||
|     NewLine = CompositionTable.Add(); | ||||
|     NewLine.Библиотека  = "sqlite"; | ||||
|     NewLine.Модуль      = "OPI_SQLite"; | ||||
|   | ||||
							
								
								
									
										6
									
								
								src/ru/OInt/core/Modules/OPI_SQLite.os
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								src/ru/OInt/core/Modules/OPI_SQLite.os
									
									
									
									
										vendored
									
									
								
							| @@ -236,7 +236,7 @@ | ||||
|  | ||||
| // Удалить записи | ||||
| // Удаляет записи из таблицы | ||||
| //  | ||||
| // | ||||
| // Параметры: | ||||
| //  Таблица    - Строка               - Имя таблицы                                          - table | ||||
| //  Фильтры    - Массив Из Структура  - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter | ||||
| @@ -245,10 +245,10 @@ | ||||
| // Возвращаемое значение: | ||||
| //  Структура Из КлючИЗначение, Строка - Результат выполнения запроса | ||||
| Функция УдалитьЗаписи(Знач Таблица, Знач Фильтры = "", Знач Соединение = "") Экспорт | ||||
|      | ||||
|  | ||||
|     Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_SQLite, Таблица, Фильтры, Соединение); | ||||
|     Возврат Результат; | ||||
|      | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Получить структуру фильтра записей | ||||
|   | ||||
							
								
								
									
										14
									
								
								src/ru/OInt/tools/Modules/OPI_ЗапросыSQL.os
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								src/ru/OInt/tools/Modules/OPI_ЗапросыSQL.os
									
									
									
									
										vendored
									
									
								
							| @@ -204,18 +204,18 @@ | ||||
| КонецФункции | ||||
|  | ||||
| Функция УдалитьЗаписи(Знач Модуль, Знач Таблица, Знач Фильтры = "", Знач Соединение = "") Экспорт | ||||
|      | ||||
|  | ||||
|     Схема = ПустаяСхемаSQL("DELETE"); | ||||
|      | ||||
|  | ||||
|     УстановитьИмяТаблицы(Схема, Таблица); | ||||
|      | ||||
|  | ||||
|     ЗаполнитьФильтры(Схема, Фильтры); | ||||
|  | ||||
|     Запрос    = СформироватьТекстSQL(Схема); | ||||
|     Результат = Модуль.ВыполнитьЗапросSQL(Запрос, Схема["values"], , Соединение); | ||||
|  | ||||
|     Возврат Результат; | ||||
|      | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция ПолучитьСтруктуруФильтраЗаписей(Знач Пустая = Ложь) Экспорт | ||||
| @@ -383,11 +383,11 @@ | ||||
|  | ||||
|     Таблица = Схема["table"]; | ||||
|     Фильтры = Схема["filter"]; | ||||
|      | ||||
|  | ||||
|     ШаблонSQL = "DELETE FROM %1 %2"; | ||||
|      | ||||
|  | ||||
|     ТекстФильтра = СформироватьТекстФильтра(Фильтры); | ||||
|      | ||||
|  | ||||
|     ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, ТекстФильтра); | ||||
|  | ||||
|     Возврат ТекстSQL; | ||||
|   | ||||
| @@ -2127,9 +2127,9 @@ | ||||
| КонецФункции | ||||
|  | ||||
| Функция ПолучитьОбщийМодуль(Знач Имя) | ||||
|      | ||||
|  | ||||
|     Модуль = Вычислить(Имя); | ||||
|      | ||||
|  | ||||
|     Возврат Модуль; | ||||
| КонецФункции | ||||
|  | ||||
|   | ||||
| @@ -236,7 +236,7 @@ | ||||
|  | ||||
| // Удалить записи | ||||
| // Удаляет записи из таблицы | ||||
| //  | ||||
| // | ||||
| // Параметры: | ||||
| //  Таблица    - Строка               - Имя таблицы                                          - table | ||||
| //  Фильтры    - Массив Из Структура  - Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей - filter | ||||
| @@ -245,10 +245,10 @@ | ||||
| // Возвращаемое значение: | ||||
| //  Структура Из КлючИЗначение, Строка - Результат выполнения запроса | ||||
| Функция УдалитьЗаписи(Знач Таблица, Знач Фильтры = "", Знач Соединение = "") Экспорт | ||||
|      | ||||
|  | ||||
|     Результат = OPI_ЗапросыSQL.УдалитьЗаписи(OPI_SQLite, Таблица, Фильтры, Соединение); | ||||
|     Возврат Результат; | ||||
|      | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| // Получить структуру фильтра записей | ||||
|   | ||||
| @@ -204,18 +204,18 @@ | ||||
| КонецФункции | ||||
|  | ||||
| Функция УдалитьЗаписи(Знач Модуль, Знач Таблица, Знач Фильтры = "", Знач Соединение = "") Экспорт | ||||
|      | ||||
|  | ||||
|     Схема = ПустаяСхемаSQL("DELETE"); | ||||
|      | ||||
|  | ||||
|     УстановитьИмяТаблицы(Схема, Таблица); | ||||
|      | ||||
|  | ||||
|     ЗаполнитьФильтры(Схема, Фильтры); | ||||
|  | ||||
|     Запрос    = СформироватьТекстSQL(Схема); | ||||
|     Результат = Модуль.ВыполнитьЗапросSQL(Запрос, Схема["values"], , Соединение); | ||||
|  | ||||
|     Возврат Результат; | ||||
|      | ||||
|  | ||||
| КонецФункции | ||||
|  | ||||
| Функция ПолучитьСтруктуруФильтраЗаписей(Знач Пустая = Ложь) Экспорт | ||||
| @@ -383,11 +383,11 @@ | ||||
|  | ||||
|     Таблица = Схема["table"]; | ||||
|     Фильтры = Схема["filter"]; | ||||
|      | ||||
|  | ||||
|     ШаблонSQL = "DELETE FROM %1 %2"; | ||||
|      | ||||
|  | ||||
|     ТекстФильтра = СформироватьТекстФильтра(Фильтры); | ||||
|      | ||||
|  | ||||
|     ТекстSQL = СтрШаблон(ШаблонSQL, Таблица, ТекстФильтра); | ||||
|  | ||||
|     Возврат ТекстSQL; | ||||
|   | ||||
| @@ -241,6 +241,41 @@ | ||||
|     НоваяСтрока.Область     = "Orm"; | ||||
|  | ||||
|  | ||||
|     НоваяСтрока = ТаблицаСостава.Добавить(); | ||||
|     НоваяСтрока.Библиотека  = "sqlite"; | ||||
|     НоваяСтрока.Модуль      = "OPI_SQLite"; | ||||
|     НоваяСтрока.Метод       = "УдалитьЗаписи"; | ||||
|     НоваяСтрока.МетодПоиска = "УДАЛИТЬЗАПИСИ"; | ||||
|     НоваяСтрока.Параметр    = "--table"; | ||||
|     НоваяСтрока.Описание    = "Имя таблицы"; | ||||
|     НоваяСтрока.Область     = "Orm"; | ||||
|     НоваяСтрока.ОписаниеМетода   = "Удаляет записи из таблицы | ||||
|     | | ||||
|     |    Пример указания параметра типа массив: | ||||
|     |    --param ""['Val1','Val2','Val3']"" | ||||
|     |"; | ||||
|  | ||||
|  | ||||
|     НоваяСтрока = ТаблицаСостава.Добавить(); | ||||
|     НоваяСтрока.Библиотека  = "sqlite"; | ||||
|     НоваяСтрока.Модуль      = "OPI_SQLite"; | ||||
|     НоваяСтрока.Метод       = "УдалитьЗаписи"; | ||||
|     НоваяСтрока.МетодПоиска = "УДАЛИТЬЗАПИСИ"; | ||||
|     НоваяСтрока.Параметр    = "--filter"; | ||||
|     НоваяСтрока.Описание    = "Массив фильтров. См. ПолучитьСтруктуруФильтраЗаписей (необяз. по ум. - Пустое значение)"; | ||||
|     НоваяСтрока.Область     = "Orm"; | ||||
|  | ||||
|  | ||||
|     НоваяСтрока = ТаблицаСостава.Добавить(); | ||||
|     НоваяСтрока.Библиотека  = "sqlite"; | ||||
|     НоваяСтрока.Модуль      = "OPI_SQLite"; | ||||
|     НоваяСтрока.Метод       = "УдалитьЗаписи"; | ||||
|     НоваяСтрока.МетодПоиска = "УДАЛИТЬЗАПИСИ"; | ||||
|     НоваяСтрока.Параметр    = "--db"; | ||||
|     НоваяСтрока.Описание    = "Существующее соединение или путь к базе (необяз. по ум. - Пустое значение)"; | ||||
|     НоваяСтрока.Область     = "Orm"; | ||||
|  | ||||
|  | ||||
|     НоваяСтрока = ТаблицаСостава.Добавить(); | ||||
|     НоваяСтрока.Библиотека  = "sqlite"; | ||||
|     НоваяСтрока.Модуль      = "OPI_SQLite"; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user