You've already forked OpenIntegrations
mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-08-24 19:49:22 +02:00
Main build (Jenkins)
This commit is contained in:
4
.github/workflows/oint_test_full_en.yml
vendored
4
.github/workflows/oint_test_full_en.yml
vendored
@@ -454,6 +454,10 @@ jobs:
|
||||
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_MYS_CommonMethods"
|
||||
|
||||
- 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_MYS_ORM"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
|
4
.github/workflows/oint_test_full_ru.yml
vendored
4
.github/workflows/oint_test_full_ru.yml
vendored
@@ -454,6 +454,10 @@ jobs:
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os "CLI_MYS_ОсновныеМетоды"
|
||||
|
||||
- name: ORM
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os "CLI_MYS_ORM"
|
||||
|
||||
- name: Записать логи
|
||||
if: ${{ cancelled() }} == false
|
||||
uses: actions/cache/save@v3
|
||||
|
4
ci/cli_ostesten
vendored
4
ci/cli_ostesten
vendored
@@ -262,6 +262,10 @@ pipeline {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os" "CLI_MYS_CommonMethods"'
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os" "CLI_MYS_ORM"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
4
ci/cli_ostestru
vendored
4
ci/cli_ostestru
vendored
@@ -262,6 +262,10 @@ pipeline {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os" "CLI_MYS_ОсновныеМетоды"'
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os" "CLI_MYS_ORM"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
4
ci/ostesten
vendored
4
ci/ostesten
vendored
@@ -262,6 +262,10 @@ pipeline {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_Tests.os" "MYS_CommonMethods"'
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/en/OInt/tests/Modules/internal/OPI_Tests.os" "MYS_ORM"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
4
ci/ostestru
vendored
4
ci/ostestru
vendored
@@ -262,6 +262,10 @@ pipeline {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os" "MYS_ОсновныеМетоды"'
|
||||
}
|
||||
|
||||
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
|
||||
powershell encoding: 'UTF-8', script:'1testrunner -run "./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os" "MYS_ORM"'
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
5
docs/en/data/MySQL/AddRecords.json
vendored
Normal file
5
docs/en/data/MySQL/AddRecords.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we...",
|
||||
"Image": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||
}
|
4
docs/en/data/MySQL/ClearTable.json
vendored
Normal file
4
docs/en/data/MySQL/ClearTable.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
4
docs/en/data/MySQL/CreateDatabase.json
vendored
Normal file
4
docs/en/data/MySQL/CreateDatabase.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
4
docs/en/data/MySQL/CreateTable.json
vendored
Normal file
4
docs/en/data/MySQL/CreateTable.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
4
docs/en/data/MySQL/DeleteDatabase.json
vendored
Normal file
4
docs/en/data/MySQL/DeleteDatabase.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
4
docs/en/data/MySQL/DeleteRecords.json
vendored
Normal file
4
docs/en/data/MySQL/DeleteRecords.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
4
docs/en/data/MySQL/DeleteTable.json
vendored
Normal file
4
docs/en/data/MySQL/DeleteTable.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
3
docs/en/data/MySQL/ExecuteSQLQuery.json
vendored
3
docs/en/data/MySQL/ExecuteSQLQuery.json
vendored
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"Image": "https://api.athenaeum.digital/test_data/picture.jpg",
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
"Password": "12we...",
|
||||
"SQLFile": "https://api.athenaeum.digital/test_data/TEST_DATA2.sql"
|
||||
}
|
4
docs/en/data/MySQL/GetRecords.json
vendored
Normal file
4
docs/en/data/MySQL/GetRecords.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
4
docs/en/data/MySQL/UpdateRecords.json
vendored
Normal file
4
docs/en/data/MySQL/UpdateRecords.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Address": "127.0.0.1",
|
||||
"Password": "12we..."
|
||||
}
|
44
docs/en/examples/MySQL/AddRecords.txt
vendored
Normal file
44
docs/en/examples/MySQL/AddRecords.txt
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
RecordsArray = New Array;
|
||||
|
||||
Image = "https://api.athenaeum.digital/test_data/picture.jpg";
|
||||
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
|
||||
|
||||
CurrentDate = OPI_Tools.GetCurrentDate();
|
||||
|
||||
RecordStructure = New Structure;
|
||||
RecordStructure.Insert("char_field" , New Structure("TEXT" , "AAAAA"));
|
||||
RecordStructure.Insert("varchar_field" , New Structure("TEXT" , "Some varchar"));
|
||||
RecordStructure.Insert("tinytext_field" , New Structure("TEXT" , "Some tiny text"));
|
||||
RecordStructure.Insert("text_field" , New Structure("TEXT" , "Some text"));
|
||||
RecordStructure.Insert("mediumtext_field", New Structure("TEXT" , "Some medium text"));
|
||||
RecordStructure.Insert("longtext_field" , New Structure("TEXT" , "Some looooooong text"));
|
||||
RecordStructure.Insert("tinyint_field" , New Structure("INT" , 127));
|
||||
RecordStructure.Insert("smallint_field" , New Structure("INT" , -32767));
|
||||
RecordStructure.Insert("mediumint_field" , New Structure("INT" , 8388607));
|
||||
RecordStructure.Insert("int_field" , New Structure("INT" , -2147483647));
|
||||
RecordStructure.Insert("uint_field" , New Structure("UINT" , 4294967295));
|
||||
RecordStructure.Insert("bigint_field" , New Structure("INT" , 9223372036854775807));
|
||||
RecordStructure.Insert("float_field" , New Structure("FLOAT" , 100.50));
|
||||
RecordStructure.Insert("double_field" , New Structure("FLOAT" , 100.512123));
|
||||
RecordStructure.Insert("date_field" , New Structure("DATE" , CurrentDate));
|
||||
RecordStructure.Insert("time_field" , New Structure("TIME" , CurrentDate));
|
||||
RecordStructure.Insert("datetime_field" , New Structure("DATE" , CurrentDate));
|
||||
RecordStructure.Insert("timestamp_field" , New Structure("DATE" , CurrentDate));
|
||||
RecordStructure.Insert("mediumblob_field", New Structure("BYTES" , Image));
|
||||
RecordStructure.Insert("set_field" , New Structure("TEXT" , "one"));
|
||||
|
||||
RecordsArray.Add(RecordStructure);
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.AddRecords(Table, RecordsArray, True, ConnectionString);
|
14
docs/en/examples/MySQL/ClearTable.txt
vendored
Normal file
14
docs/en/examples/MySQL/ClearTable.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.ClearTable(Table, ConnectionString);
|
14
docs/en/examples/MySQL/CreateDatabase.txt
vendored
Normal file
14
docs/en/examples/MySQL/CreateDatabase.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Base = "testbase1";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.CreateDatabase(Base, ConnectionString);
|
36
docs/en/examples/MySQL/CreateTable.txt
vendored
Normal file
36
docs/en/examples/MySQL/CreateTable.txt
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
ColoumnsStruct = New Structure;
|
||||
ColoumnsStruct.Insert("char_field" , "CHAR(5)");
|
||||
ColoumnsStruct.Insert("varchar_field" , "VARCHAR(255)");
|
||||
ColoumnsStruct.Insert("tinytext_field" , "TINYTEXT");
|
||||
ColoumnsStruct.Insert("text_field" , "TEXT");
|
||||
ColoumnsStruct.Insert("mediumtext_field", "MEDIUMTEXT");
|
||||
ColoumnsStruct.Insert("longtext_field" , "LONGTEXT");
|
||||
ColoumnsStruct.Insert("tinyint_field" , "TINYINT");
|
||||
ColoumnsStruct.Insert("smallint_field" , "SMALLINT");
|
||||
ColoumnsStruct.Insert("mediumint_field" , "MEDIUMINT");
|
||||
ColoumnsStruct.Insert("int_field" , "INT");
|
||||
ColoumnsStruct.Insert("uint_field" , "INT UNSIGNED");
|
||||
ColoumnsStruct.Insert("bigint_field" , "BIGINT");
|
||||
ColoumnsStruct.Insert("float_field" , "FLOAT");
|
||||
ColoumnsStruct.Insert("double_field" , "DOUBLE");
|
||||
ColoumnsStruct.Insert("date_field" , "DATE");
|
||||
ColoumnsStruct.Insert("time_field" , "TIME");
|
||||
ColoumnsStruct.Insert("datetime_field" , "DATETIME");
|
||||
ColoumnsStruct.Insert("timestamp_field" , "TIMESTAMP");
|
||||
ColoumnsStruct.Insert("mediumblob_field", "MEDIUMBLOB");
|
||||
ColoumnsStruct.Insert("set_field" , "SET('one','two','three')");
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.CreateTable(Table, ColoumnsStruct, ConnectionString);
|
14
docs/en/examples/MySQL/DeleteDatabase.txt
vendored
Normal file
14
docs/en/examples/MySQL/DeleteDatabase.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Base = "testbase1";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, ConnectionString);
|
33
docs/en/examples/MySQL/DeleteRecords.txt
vendored
Normal file
33
docs/en/examples/MySQL/DeleteRecords.txt
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
FilterStructure.Insert("union", "AND");
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "ip_address");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "127.0.0.1"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteRecords(Table, Filters, ConnectionString);
|
14
docs/en/examples/MySQL/DeleteTable.txt
vendored
Normal file
14
docs/en/examples/MySQL/DeleteTable.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteTable(Table, ConnectionString);
|
6
docs/en/examples/MySQL/ExecuteSQLQuery.txt
vendored
6
docs/en/examples/MySQL/ExecuteSQLQuery.txt
vendored
@@ -50,4 +50,10 @@
|
||||
|
||||
Result = OPI_MySQL.ExecuteSQLQuery(QueryText, , , Connection);
|
||||
|
||||
// SQL query from file
|
||||
|
||||
SQLFile = "https://api.athenaeum.digital/test_data/TEST_DATA2.sql"; // Binary Data, URL or path to file
|
||||
|
||||
Result = OPI_MySQL.ExecuteSQLQuery(SQLFile, , , Connection);
|
||||
|
||||
Closing = OPI_MySQL.CloseConnection(Connection);
|
||||
|
52
docs/en/examples/MySQL/GetRecords.txt
vendored
Normal file
52
docs/en/examples/MySQL/GetRecords.txt
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
// All records without filters
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
// Filter, selected fields, limit and sorting
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, "test_data", Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Fields = New Array;
|
||||
Fields.Add("first_name");
|
||||
Fields.Add("last_name");
|
||||
Fields.Add("email");
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure1 = New Structure;
|
||||
|
||||
FilterStructure1.Insert("field", "gender");
|
||||
FilterStructure1.Insert("type" , "=");
|
||||
FilterStructure1.Insert("value", "Male");
|
||||
FilterStructure1.Insert("union", "AND");
|
||||
FilterStructure1.Insert("raw" , False);
|
||||
|
||||
FilterStructure2 = New Structure;
|
||||
|
||||
FilterStructure2.Insert("field", "id");
|
||||
FilterStructure2.Insert("type" , "BETWEEN");
|
||||
FilterStructure2.Insert("value", "20 AND 50");
|
||||
FilterStructure2.Insert("raw" , True);
|
||||
|
||||
Filters.Add(FilterStructure1);
|
||||
Filters.Add(FilterStructure2);
|
||||
|
||||
Sort = New Structure("ip_address", "DESC");
|
||||
Count = 5;
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, Fields, Filters, Sort, Count, ConnectionString);
|
1
docs/en/examples/MySQL/GetRecordsFilterStrucutre.txt
vendored
Normal file
1
docs/en/examples/MySQL/GetRecordsFilterStrucutre.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
Result = OPI_MySQL.GetRecordsFilterStrucutre();
|
28
docs/en/examples/MySQL/UpdateRecords.txt
vendored
Normal file
28
docs/en/examples/MySQL/UpdateRecords.txt
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
FieldsStructure = New Structure;
|
||||
FieldsStructure.Insert("ip_address", New Structure("VARCHAR", "127.0.0.1"));
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.UpdateRecords(Table, FieldsStructure, FilterStructure, ConnectionString);
|
@@ -87,6 +87,12 @@ Without specifying the `ForcifyResult` flag, result data is returned only for qu
|
||||
|
||||
Result = OPI_MySQL.ExecuteSQLQuery(QueryText, , , Connection);
|
||||
|
||||
// SQL query from file
|
||||
|
||||
SQLFile = "https://api.athenaeum.digital/test_data/TEST_DATA2.sql"; // Binary Data, URL or path to file
|
||||
|
||||
Result = OPI_MySQL.ExecuteSQLQuery(SQLFile, , , Connection);
|
||||
|
||||
Closing = OPI_MySQL.CloseConnection(Connection);
|
||||
```
|
||||
|
||||
|
43
docs/en/md/MySQL/Orm/Add-records.mdx
vendored
43
docs/en/md/MySQL/Orm/Add-records.mdx
vendored
@@ -35,7 +35,50 @@ The list of available types is described on the initial page of the MySQL librar
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
RecordsArray = New Array;
|
||||
|
||||
Image = "https://api.athenaeum.digital/test_data/picture.jpg";
|
||||
OPI_TypeConversion.GetBinaryData(Image); // Image - Type: BinaryData
|
||||
|
||||
CurrentDate = OPI_Tools.GetCurrentDate();
|
||||
|
||||
RecordStructure = New Structure;
|
||||
RecordStructure.Insert("char_field" , New Structure("TEXT" , "AAAAA"));
|
||||
RecordStructure.Insert("varchar_field" , New Structure("TEXT" , "Some varchar"));
|
||||
RecordStructure.Insert("tinytext_field" , New Structure("TEXT" , "Some tiny text"));
|
||||
RecordStructure.Insert("text_field" , New Structure("TEXT" , "Some text"));
|
||||
RecordStructure.Insert("mediumtext_field", New Structure("TEXT" , "Some medium text"));
|
||||
RecordStructure.Insert("longtext_field" , New Structure("TEXT" , "Some looooooong text"));
|
||||
RecordStructure.Insert("tinyint_field" , New Structure("INT" , 127));
|
||||
RecordStructure.Insert("smallint_field" , New Structure("INT" , -32767));
|
||||
RecordStructure.Insert("mediumint_field" , New Structure("INT" , 8388607));
|
||||
RecordStructure.Insert("int_field" , New Structure("INT" , -2147483647));
|
||||
RecordStructure.Insert("uint_field" , New Structure("UINT" , 4294967295));
|
||||
RecordStructure.Insert("bigint_field" , New Structure("INT" , 9223372036854775807));
|
||||
RecordStructure.Insert("float_field" , New Structure("FLOAT" , 100.50));
|
||||
RecordStructure.Insert("double_field" , New Structure("FLOAT" , 100.512123));
|
||||
RecordStructure.Insert("date_field" , New Structure("DATE" , CurrentDate));
|
||||
RecordStructure.Insert("time_field" , New Structure("TIME" , CurrentDate));
|
||||
RecordStructure.Insert("datetime_field" , New Structure("DATE" , CurrentDate));
|
||||
RecordStructure.Insert("timestamp_field" , New Structure("DATE" , CurrentDate));
|
||||
RecordStructure.Insert("mediumblob_field", New Structure("BYTES" , Image));
|
||||
RecordStructure.Insert("set_field" , New Structure("TEXT" , "one"));
|
||||
|
||||
RecordsArray.Add(RecordStructure);
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.AddRecords(Table, RecordsArray, True, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/en/md/MySQL/Orm/Clear-table.mdx
vendored
13
docs/en/md/MySQL/Orm/Clear-table.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.ClearTable(Table, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/en/md/MySQL/Orm/Create-database.mdx
vendored
13
docs/en/md/MySQL/Orm/Create-database.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Base = "testbase1";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.CreateDatabase(Base, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
35
docs/en/md/MySQL/Orm/Create-table.mdx
vendored
35
docs/en/md/MySQL/Orm/Create-table.mdx
vendored
@@ -32,7 +32,42 @@ The list of available types is described on the initial page of the MySQL librar
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
ColoumnsStruct = New Structure;
|
||||
ColoumnsStruct.Insert("char_field" , "CHAR(5)");
|
||||
ColoumnsStruct.Insert("varchar_field" , "VARCHAR(255)");
|
||||
ColoumnsStruct.Insert("tinytext_field" , "TINYTEXT");
|
||||
ColoumnsStruct.Insert("text_field" , "TEXT");
|
||||
ColoumnsStruct.Insert("mediumtext_field", "MEDIUMTEXT");
|
||||
ColoumnsStruct.Insert("longtext_field" , "LONGTEXT");
|
||||
ColoumnsStruct.Insert("tinyint_field" , "TINYINT");
|
||||
ColoumnsStruct.Insert("smallint_field" , "SMALLINT");
|
||||
ColoumnsStruct.Insert("mediumint_field" , "MEDIUMINT");
|
||||
ColoumnsStruct.Insert("int_field" , "INT");
|
||||
ColoumnsStruct.Insert("uint_field" , "INT UNSIGNED");
|
||||
ColoumnsStruct.Insert("bigint_field" , "BIGINT");
|
||||
ColoumnsStruct.Insert("float_field" , "FLOAT");
|
||||
ColoumnsStruct.Insert("double_field" , "DOUBLE");
|
||||
ColoumnsStruct.Insert("date_field" , "DATE");
|
||||
ColoumnsStruct.Insert("time_field" , "TIME");
|
||||
ColoumnsStruct.Insert("datetime_field" , "DATETIME");
|
||||
ColoumnsStruct.Insert("timestamp_field" , "TIMESTAMP");
|
||||
ColoumnsStruct.Insert("mediumblob_field", "MEDIUMBLOB");
|
||||
ColoumnsStruct.Insert("set_field" , "SET('one','two','three')");
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.CreateTable(Table, ColoumnsStruct, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/en/md/MySQL/Orm/Delete-database.mdx
vendored
13
docs/en/md/MySQL/Orm/Delete-database.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Base = "testbase1";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
32
docs/en/md/MySQL/Orm/Delete-records.mdx
vendored
32
docs/en/md/MySQL/Orm/Delete-records.mdx
vendored
@@ -28,7 +28,39 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
FilterStructure.Insert("union", "AND");
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "ip_address");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "127.0.0.1"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteRecords(Table, Filters, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/en/md/MySQL/Orm/Delete-table.mdx
vendored
13
docs/en/md/MySQL/Orm/Delete-table.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteTable(Table, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
@@ -31,7 +31,7 @@ In such a case, you must use `raw:true` to set the condition directly in the que
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
|
||||
Result = OPI_MySQL.GetRecordsFilterStrucutre();
|
||||
```
|
||||
|
||||
|
||||
|
51
docs/en/md/MySQL/Orm/Get-records.mdx
vendored
51
docs/en/md/MySQL/Orm/Get-records.mdx
vendored
@@ -31,7 +31,58 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
// All records without filters
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
// Filter, selected fields, limit and sorting
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, "test_data", Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Fields = New Array;
|
||||
Fields.Add("first_name");
|
||||
Fields.Add("last_name");
|
||||
Fields.Add("email");
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure1 = New Structure;
|
||||
|
||||
FilterStructure1.Insert("field", "gender");
|
||||
FilterStructure1.Insert("type" , "=");
|
||||
FilterStructure1.Insert("value", "Male");
|
||||
FilterStructure1.Insert("union", "AND");
|
||||
FilterStructure1.Insert("raw" , False);
|
||||
|
||||
FilterStructure2 = New Structure;
|
||||
|
||||
FilterStructure2.Insert("field", "id");
|
||||
FilterStructure2.Insert("type" , "BETWEEN");
|
||||
FilterStructure2.Insert("value", "20 AND 50");
|
||||
FilterStructure2.Insert("raw" , True);
|
||||
|
||||
Filters.Add(FilterStructure1);
|
||||
Filters.Add(FilterStructure2);
|
||||
|
||||
Sort = New Structure("ip_address", "DESC");
|
||||
Count = 5;
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, Fields, Filters, Sort, Count, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
27
docs/en/md/MySQL/Orm/Update-records.mdx
vendored
27
docs/en/md/MySQL/Orm/Update-records.mdx
vendored
@@ -35,7 +35,34 @@ The list of available types is described on the initial page of the MySQL librar
|
||||
|
||||
|
||||
```bsl title="1C:Enterprise/OneScript code example"
|
||||
Address = "127.0.0.1";
|
||||
Login = "bayselonarrend";
|
||||
Password = "12we...";
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
FieldsStructure = New Structure;
|
||||
FieldsStructure.Insert("ip_address", New Structure("VARCHAR", "127.0.0.1"));
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.UpdateRecords(Table, FieldsStructure, FilterStructure, ConnectionString);
|
||||
```
|
||||
|
||||
|
||||
|
3
docs/ru/data/MySQL/ВыполнитьЗапросSQL.json
vendored
3
docs/ru/data/MySQL/ВыполнитьЗапросSQL.json
vendored
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg",
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
"Пароль": "12we...",
|
||||
"ФайлSQL": "https://api.athenaeum.digital/test_data/TEST_DATA2.sql"
|
||||
}
|
5
docs/ru/data/MySQL/ДобавитьЗаписи.json
vendored
Normal file
5
docs/ru/data/MySQL/ДобавитьЗаписи.json
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we...",
|
||||
"Картинка": "https://api.athenaeum.digital/test_data/picture.jpg"
|
||||
}
|
4
docs/ru/data/MySQL/ОбновитьЗаписи.json
vendored
Normal file
4
docs/ru/data/MySQL/ОбновитьЗаписи.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
4
docs/ru/data/MySQL/ОчиститьТаблицу.json
vendored
Normal file
4
docs/ru/data/MySQL/ОчиститьТаблицу.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
4
docs/ru/data/MySQL/ПолучитьЗаписи.json
vendored
Normal file
4
docs/ru/data/MySQL/ПолучитьЗаписи.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
4
docs/ru/data/MySQL/СоздатьБазуДанных.json
vendored
Normal file
4
docs/ru/data/MySQL/СоздатьБазуДанных.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
4
docs/ru/data/MySQL/СоздатьТаблицу.json
vendored
Normal file
4
docs/ru/data/MySQL/СоздатьТаблицу.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
4
docs/ru/data/MySQL/УдалитьБазуДанных.json
vendored
Normal file
4
docs/ru/data/MySQL/УдалитьБазуДанных.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
4
docs/ru/data/MySQL/УдалитьЗаписи.json
vendored
Normal file
4
docs/ru/data/MySQL/УдалитьЗаписи.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
4
docs/ru/data/MySQL/УдалитьТаблицу.json
vendored
Normal file
4
docs/ru/data/MySQL/УдалитьТаблицу.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"Адрес": "127.0.0.1",
|
||||
"Пароль": "12we..."
|
||||
}
|
@@ -50,4 +50,10 @@
|
||||
|
||||
Результат = OPI_MySQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
|
||||
|
||||
// SQL запрос из файла
|
||||
|
||||
ФайлSQL = "https://api.athenaeum.digital/test_data/TEST_DATA2.sql"; // Двоичные данные, URL или путь к файлу
|
||||
|
||||
Результат = OPI_MySQL.ВыполнитьЗапросSQL(ФайлSQL, , , Соединение);
|
||||
|
||||
Закрытие = OPI_MySQL.ЗакрытьСоединение(Соединение);
|
||||
|
44
docs/ru/examples/MySQL/ДобавитьЗаписи.txt
vendored
Normal file
44
docs/ru/examples/MySQL/ДобавитьЗаписи.txt
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
МассивЗаписей = Новый Массив;
|
||||
|
||||
Картинка = "https://api.athenaeum.digital/test_data/picture.jpg";
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
|
||||
|
||||
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
|
||||
|
||||
СтруктураЗаписи = Новый Структура;
|
||||
СтруктураЗаписи.Вставить("char_field" , Новый Структура("TEXT" , "AAAAA"));
|
||||
СтруктураЗаписи.Вставить("varchar_field" , Новый Структура("TEXT" , "Some varchar"));
|
||||
СтруктураЗаписи.Вставить("tinytext_field" , Новый Структура("TEXT" , "Some tiny text"));
|
||||
СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
|
||||
СтруктураЗаписи.Вставить("mediumtext_field", Новый Структура("TEXT" , "Some medium text"));
|
||||
СтруктураЗаписи.Вставить("longtext_field" , Новый Структура("TEXT" , "Some looooooong text"));
|
||||
СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("INT" , 127));
|
||||
СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("INT" , -32767));
|
||||
СтруктураЗаписи.Вставить("mediumint_field" , Новый Структура("INT" , 8388607));
|
||||
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , -2147483647));
|
||||
СтруктураЗаписи.Вставить("uint_field" , Новый Структура("UINT" , 4294967295));
|
||||
СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("INT" , 9223372036854775807));
|
||||
СтруктураЗаписи.Вставить("float_field" , Новый Структура("FLOAT" , 100.50));
|
||||
СтруктураЗаписи.Вставить("double_field" , Новый Структура("FLOAT" , 100.512123));
|
||||
СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATE" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("timestamp_field" , Новый Структура("DATE" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("mediumblob_field", Новый Структура("BYTES" , Картинка));
|
||||
СтруктураЗаписи.Вставить("set_field" , Новый Структура("TEXT" , "one"));
|
||||
|
||||
МассивЗаписей.Добавить(СтруктураЗаписи);
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ДобавитьЗаписи(Таблица, МассивЗаписей, Истина, СтрокаПодключения);
|
28
docs/ru/examples/MySQL/ОбновитьЗаписи.txt
vendored
Normal file
28
docs/ru/examples/MySQL/ОбновитьЗаписи.txt
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "test_data";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
СтруктураПолей = Новый Структура;
|
||||
СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "gender");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра);
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, СтрокаПодключения);
|
14
docs/ru/examples/MySQL/ОчиститьТаблицу.txt
vendored
Normal file
14
docs/ru/examples/MySQL/ОчиститьТаблицу.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ОчиститьТаблицу(Таблица, СтрокаПодключения);
|
52
docs/ru/examples/MySQL/ПолучитьЗаписи.txt
vendored
Normal file
52
docs/ru/examples/MySQL/ПолучитьЗаписи.txt
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
// Все записи без отборов
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения);
|
||||
|
||||
// Отборы, выбранные поля, количество и сортировка
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, "test_data", Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
Поля = Новый Массив;
|
||||
Поля.Добавить("first_name");
|
||||
Поля.Добавить("last_name");
|
||||
Поля.Добавить("email");
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра1 = Новый Структура;
|
||||
|
||||
СтруктураФильтра1.Вставить("field", "gender");
|
||||
СтруктураФильтра1.Вставить("type" , "=");
|
||||
СтруктураФильтра1.Вставить("value", "Male");
|
||||
СтруктураФильтра1.Вставить("union", "AND");
|
||||
СтруктураФильтра1.Вставить("raw" , Ложь);
|
||||
|
||||
СтруктураФильтра2 = Новый Структура;
|
||||
|
||||
СтруктураФильтра2.Вставить("field", "id");
|
||||
СтруктураФильтра2.Вставить("type" , "BETWEEN");
|
||||
СтруктураФильтра2.Вставить("value", "20 AND 50");
|
||||
СтруктураФильтра2.Вставить("raw" , Истина);
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра1);
|
||||
Фильтры.Добавить(СтруктураФильтра2);
|
||||
|
||||
Сортировка = Новый Структура("ip_address", "DESC");
|
||||
Количество = 5;
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, Поля, Фильтры, Сортировка, Количество, СтрокаПодключения);
|
1
docs/ru/examples/MySQL/ПолучитьСтруктуруФильтраЗаписей.txt
vendored
Normal file
1
docs/ru/examples/MySQL/ПолучитьСтруктуруФильтраЗаписей.txt
vendored
Normal file
@@ -0,0 +1 @@
|
||||
Результат = OPI_MySQL.ПолучитьСтруктуруФильтраЗаписей();
|
14
docs/ru/examples/MySQL/СоздатьБазуДанных.txt
vendored
Normal file
14
docs/ru/examples/MySQL/СоздатьБазуДанных.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
База = "testbase1";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.СоздатьБазуДанных(База, СтрокаПодключения);
|
36
docs/ru/examples/MySQL/СоздатьТаблицу.txt
vendored
Normal file
36
docs/ru/examples/MySQL/СоздатьТаблицу.txt
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
СтруктураКолонок = Новый Структура;
|
||||
СтруктураКолонок.Вставить("char_field" , "CHAR(5)");
|
||||
СтруктураКолонок.Вставить("varchar_field" , "VARCHAR(255)");
|
||||
СтруктураКолонок.Вставить("tinytext_field" , "TINYTEXT");
|
||||
СтруктураКолонок.Вставить("text_field" , "TEXT");
|
||||
СтруктураКолонок.Вставить("mediumtext_field", "MEDIUMTEXT");
|
||||
СтруктураКолонок.Вставить("longtext_field" , "LONGTEXT");
|
||||
СтруктураКолонок.Вставить("tinyint_field" , "TINYINT");
|
||||
СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
|
||||
СтруктураКолонок.Вставить("mediumint_field" , "MEDIUMINT");
|
||||
СтруктураКолонок.Вставить("int_field" , "INT");
|
||||
СтруктураКолонок.Вставить("uint_field" , "INT UNSIGNED");
|
||||
СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
|
||||
СтруктураКолонок.Вставить("float_field" , "FLOAT");
|
||||
СтруктураКолонок.Вставить("double_field" , "DOUBLE");
|
||||
СтруктураКолонок.Вставить("date_field" , "DATE");
|
||||
СтруктураКолонок.Вставить("time_field" , "TIME");
|
||||
СтруктураКолонок.Вставить("datetime_field" , "DATETIME");
|
||||
СтруктураКолонок.Вставить("timestamp_field" , "TIMESTAMP");
|
||||
СтруктураКолонок.Вставить("mediumblob_field", "MEDIUMBLOB");
|
||||
СтруктураКолонок.Вставить("set_field" , "SET('one','two','three')");
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения);
|
14
docs/ru/examples/MySQL/УдалитьБазуДанных.txt
vendored
Normal file
14
docs/ru/examples/MySQL/УдалитьБазуДанных.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
База = "testbase1";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения);
|
33
docs/ru/examples/MySQL/УдалитьЗаписи.txt
vendored
Normal file
33
docs/ru/examples/MySQL/УдалитьЗаписи.txt
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "test_data";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "gender");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
СтруктураФильтра.Вставить("union", "AND");
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра);
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "ip_address");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "127.0.0.1"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения);
|
14
docs/ru/examples/MySQL/УдалитьТаблицу.txt
vendored
Normal file
14
docs/ru/examples/MySQL/УдалитьТаблицу.txt
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьТаблицу(Таблица, СтрокаПодключения);
|
@@ -87,6 +87,12 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
Результат = OPI_MySQL.ВыполнитьЗапросSQL(ТекстЗапроса, , , Соединение);
|
||||
|
||||
// SQL запрос из файла
|
||||
|
||||
ФайлSQL = "https://api.athenaeum.digital/test_data/TEST_DATA2.sql"; // Двоичные данные, URL или путь к файлу
|
||||
|
||||
Результат = OPI_MySQL.ВыполнитьЗапросSQL(ФайлSQL, , , Соединение);
|
||||
|
||||
Закрытие = OPI_MySQL.ЗакрытьСоединение(Соединение);
|
||||
```
|
||||
|
||||
|
43
docs/ru/md/MySQL/Orm/Add-records.mdx
vendored
43
docs/ru/md/MySQL/Orm/Add-records.mdx
vendored
@@ -35,7 +35,50 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
МассивЗаписей = Новый Массив;
|
||||
|
||||
Картинка = "https://api.athenaeum.digital/test_data/picture.jpg";
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка); // Картинка - Тип: ДвоичныеДанные
|
||||
|
||||
ТекущаяДата = OPI_Инструменты.ПолучитьТекущуюДату();
|
||||
|
||||
СтруктураЗаписи = Новый Структура;
|
||||
СтруктураЗаписи.Вставить("char_field" , Новый Структура("TEXT" , "AAAAA"));
|
||||
СтруктураЗаписи.Вставить("varchar_field" , Новый Структура("TEXT" , "Some varchar"));
|
||||
СтруктураЗаписи.Вставить("tinytext_field" , Новый Структура("TEXT" , "Some tiny text"));
|
||||
СтруктураЗаписи.Вставить("text_field" , Новый Структура("TEXT" , "Some text"));
|
||||
СтруктураЗаписи.Вставить("mediumtext_field", Новый Структура("TEXT" , "Some medium text"));
|
||||
СтруктураЗаписи.Вставить("longtext_field" , Новый Структура("TEXT" , "Some looooooong text"));
|
||||
СтруктураЗаписи.Вставить("tinyint_field" , Новый Структура("INT" , 127));
|
||||
СтруктураЗаписи.Вставить("smallint_field" , Новый Структура("INT" , -32767));
|
||||
СтруктураЗаписи.Вставить("mediumint_field" , Новый Структура("INT" , 8388607));
|
||||
СтруктураЗаписи.Вставить("int_field" , Новый Структура("INT" , -2147483647));
|
||||
СтруктураЗаписи.Вставить("uint_field" , Новый Структура("UINT" , 4294967295));
|
||||
СтруктураЗаписи.Вставить("bigint_field" , Новый Структура("INT" , 9223372036854775807));
|
||||
СтруктураЗаписи.Вставить("float_field" , Новый Структура("FLOAT" , 100.50));
|
||||
СтруктураЗаписи.Вставить("double_field" , Новый Структура("FLOAT" , 100.512123));
|
||||
СтруктураЗаписи.Вставить("date_field" , Новый Структура("DATE" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("time_field" , Новый Структура("TIME" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("datetime_field" , Новый Структура("DATE" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("timestamp_field" , Новый Структура("DATE" , ТекущаяДата));
|
||||
СтруктураЗаписи.Вставить("mediumblob_field", Новый Структура("BYTES" , Картинка));
|
||||
СтруктураЗаписи.Вставить("set_field" , Новый Структура("TEXT" , "one"));
|
||||
|
||||
МассивЗаписей.Добавить(СтруктураЗаписи);
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ДобавитьЗаписи(Таблица, МассивЗаписей, Истина, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/ru/md/MySQL/Orm/Clear-table.mdx
vendored
13
docs/ru/md/MySQL/Orm/Clear-table.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ОчиститьТаблицу(Таблица, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/ru/md/MySQL/Orm/Create-database.mdx
vendored
13
docs/ru/md/MySQL/Orm/Create-database.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
База = "testbase1";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.СоздатьБазуДанных(База, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
35
docs/ru/md/MySQL/Orm/Create-table.mdx
vendored
35
docs/ru/md/MySQL/Orm/Create-table.mdx
vendored
@@ -32,7 +32,42 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
СтруктураКолонок = Новый Структура;
|
||||
СтруктураКолонок.Вставить("char_field" , "CHAR(5)");
|
||||
СтруктураКолонок.Вставить("varchar_field" , "VARCHAR(255)");
|
||||
СтруктураКолонок.Вставить("tinytext_field" , "TINYTEXT");
|
||||
СтруктураКолонок.Вставить("text_field" , "TEXT");
|
||||
СтруктураКолонок.Вставить("mediumtext_field", "MEDIUMTEXT");
|
||||
СтруктураКолонок.Вставить("longtext_field" , "LONGTEXT");
|
||||
СтруктураКолонок.Вставить("tinyint_field" , "TINYINT");
|
||||
СтруктураКолонок.Вставить("smallint_field" , "SMALLINT");
|
||||
СтруктураКолонок.Вставить("mediumint_field" , "MEDIUMINT");
|
||||
СтруктураКолонок.Вставить("int_field" , "INT");
|
||||
СтруктураКолонок.Вставить("uint_field" , "INT UNSIGNED");
|
||||
СтруктураКолонок.Вставить("bigint_field" , "BIGINT");
|
||||
СтруктураКолонок.Вставить("float_field" , "FLOAT");
|
||||
СтруктураКолонок.Вставить("double_field" , "DOUBLE");
|
||||
СтруктураКолонок.Вставить("date_field" , "DATE");
|
||||
СтруктураКолонок.Вставить("time_field" , "TIME");
|
||||
СтруктураКолонок.Вставить("datetime_field" , "DATETIME");
|
||||
СтруктураКолонок.Вставить("timestamp_field" , "TIMESTAMP");
|
||||
СтруктураКолонок.Вставить("mediumblob_field", "MEDIUMBLOB");
|
||||
СтруктураКолонок.Вставить("set_field" , "SET('one','two','three')");
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.СоздатьТаблицу(Таблица, СтруктураКолонок, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/ru/md/MySQL/Orm/Delete-database.mdx
vendored
13
docs/ru/md/MySQL/Orm/Delete-database.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
База = "testbase1";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
32
docs/ru/md/MySQL/Orm/Delete-records.mdx
vendored
32
docs/ru/md/MySQL/Orm/Delete-records.mdx
vendored
@@ -28,7 +28,39 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "test_data";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "gender");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
СтруктураФильтра.Вставить("union", "AND");
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра);
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "ip_address");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "127.0.0.1"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
13
docs/ru/md/MySQL/Orm/Delete-table.mdx
vendored
13
docs/ru/md/MySQL/Orm/Delete-table.mdx
vendored
@@ -27,7 +27,20 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьТаблицу(Таблица, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
@@ -29,7 +29,7 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьСтруктуруФильтраЗаписей();
|
||||
```
|
||||
|
||||
|
||||
|
51
docs/ru/md/MySQL/Orm/Get-records.mdx
vendored
51
docs/ru/md/MySQL/Orm/Get-records.mdx
vendored
@@ -31,7 +31,58 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
// Все записи без отборов
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения);
|
||||
|
||||
// Отборы, выбранные поля, количество и сортировка
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, "test_data", Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
Поля = Новый Массив;
|
||||
Поля.Добавить("first_name");
|
||||
Поля.Добавить("last_name");
|
||||
Поля.Добавить("email");
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра1 = Новый Структура;
|
||||
|
||||
СтруктураФильтра1.Вставить("field", "gender");
|
||||
СтруктураФильтра1.Вставить("type" , "=");
|
||||
СтруктураФильтра1.Вставить("value", "Male");
|
||||
СтруктураФильтра1.Вставить("union", "AND");
|
||||
СтруктураФильтра1.Вставить("raw" , Ложь);
|
||||
|
||||
СтруктураФильтра2 = Новый Структура;
|
||||
|
||||
СтруктураФильтра2.Вставить("field", "id");
|
||||
СтруктураФильтра2.Вставить("type" , "BETWEEN");
|
||||
СтруктураФильтра2.Вставить("value", "20 AND 50");
|
||||
СтруктураФильтра2.Вставить("raw" , Истина);
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра1);
|
||||
Фильтры.Добавить(СтруктураФильтра2);
|
||||
|
||||
Сортировка = Новый Структура("ip_address", "DESC");
|
||||
Количество = 5;
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, Поля, Фильтры, Сортировка, Количество, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
27
docs/ru/md/MySQL/Orm/Update-records.mdx
vendored
27
docs/ru/md/MySQL/Orm/Update-records.mdx
vendored
@@ -35,7 +35,34 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
|
||||
```bsl title="Пример использования для 1С:Предприятие/OneScript"
|
||||
Адрес = "127.0.0.1";
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = "12we...";
|
||||
База = "test_data";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
СтруктураПолей = Новый Структура;
|
||||
СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "gender");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра);
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, СтрокаПодключения);
|
||||
```
|
||||
|
||||
|
||||
|
13840
service/dictionaries/en.json
vendored
13840
service/dictionaries/en.json
vendored
File diff suppressed because it is too large
Load Diff
397
src/en/OInt/tests/Modules/internal/OPI_Tests.os
vendored
397
src/en/OInt/tests/Modules/internal/OPI_Tests.os
vendored
@@ -2414,6 +2414,13 @@ Procedure MYS_ORM() Export
|
||||
MySQL_CreateDatabase(TestParameters);
|
||||
MySQL_CreateTable(TestParameters);
|
||||
MySQL_AddRecords(TestParameters);
|
||||
MySQL_GetRecords(TestParameters);
|
||||
MySQL_UpdateRecords(TestParameters);
|
||||
MySQL_DeleteRecords(TestParameters);
|
||||
MySQL_ClearTable(TestParameters);
|
||||
MySQL_DeleteTable(TestParameters);
|
||||
MySQL_DeleteDatabase(TestParameters);
|
||||
MySQL_GetRecordsFilterStrucutre(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -18086,8 +18093,7 @@ Procedure PostgreSQL_GetRecords(FunctionParameters)
|
||||
Result = OPI_PostgreSQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
If ValueIsFilled(Result["data"]) Then // SKIP
|
||||
Result["data"][0]["bytea_field"]["BYTEA"] // SKIP
|
||||
= Left(Result["data"][0]["bytea_field"]["BYTEA"], 10) + "..."; // SKIP
|
||||
Result["data"][0]["bytea_field"]["BYTEA"] = Left(Result["data"][0]["bytea_field"]["BYTEA"], 10) + "..."; // SKIP
|
||||
EndIf; // SKIP
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords", "PostgreSQL"); // SKIP
|
||||
@@ -18701,6 +18707,7 @@ Procedure MySQL_ExecuteSQLQuery(FunctionParameters)
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ExecuteSQLQuery", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
OPI_TestDataRetrieval.Check_Equality(Base64Value(Blob).Size(), Image.Size()); // SKIP
|
||||
OPI_MySQL.ExecuteSQLQuery("create table TEST_DATA (id INT,first_name VARCHAR(50),last_name VARCHAR(50),email VARCHAR(50),gender VARCHAR(50),ip_address VARCHAR(20));", , , Connection); // SKIP
|
||||
|
||||
// SQL query from file
|
||||
|
||||
@@ -18916,6 +18923,392 @@ Procedure MySQL_AddRecords(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_GetRecords(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
// All records without filters
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
If ValueIsFilled(Result["data"]) Then // SKIP
|
||||
Result["data"][0]["mediumblob_field"]["BYTES"] = Left(Result["data"][0]["mediumblob_field"]["BYTES"], 10) + "..."; // SKIP
|
||||
EndIf; // SKIP
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// Filter, selected fields, limit and sorting
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, "test_data", Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Fields = New Array;
|
||||
Fields.Add("first_name");
|
||||
Fields.Add("last_name");
|
||||
Fields.Add("email");
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure1 = New Structure;
|
||||
|
||||
FilterStructure1.Insert("field", "gender");
|
||||
FilterStructure1.Insert("type" , "=");
|
||||
FilterStructure1.Insert("value", "Male");
|
||||
FilterStructure1.Insert("union", "AND");
|
||||
FilterStructure1.Insert("raw" , False);
|
||||
|
||||
FilterStructure2 = New Structure;
|
||||
|
||||
FilterStructure2.Insert("field", "id");
|
||||
FilterStructure2.Insert("type" , "BETWEEN");
|
||||
FilterStructure2.Insert("value", "20 AND 50");
|
||||
FilterStructure2.Insert("raw" , True);
|
||||
|
||||
Filters.Add(FilterStructure1);
|
||||
Filters.Add(FilterStructure2);
|
||||
|
||||
Sort = New Structure("ip_address", "DESC");
|
||||
Count = 5;
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, Fields, Filters, Sort, Count, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords (filters)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"], 5);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"]);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_UpdateRecords(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
FieldsStructure = New Structure;
|
||||
FieldsStructure.Insert("ip_address", New Structure("VARCHAR", "127.0.0.1"));
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
Count = OPI_MySQL.GetRecords(Table, , Filters, , , ConnectionString); // SKIP
|
||||
OPI_TestDataRetrieval.WriteLog(Count, "UpdateRecords (amount)", "MySQL"); // SKIP
|
||||
Count = Count["data"].Count(); // SKIP
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.UpdateRecords(Table, FieldsStructure, FilterStructure, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UpdateRecords", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Check = OPI_MySQL.GetRecords(Table, "['ip_address']", Filters, , , ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Check, "UpdateRecords (check)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Check);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"], Count);
|
||||
|
||||
For N = 0 To Check["data"].UBound() Do
|
||||
OPI_TestDataRetrieval.Check_SQLiteFieldsValues(Check["data"][N], FieldsStructure);
|
||||
EndDo;
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
FieldsStructure = New Structure;
|
||||
FieldsStructure.Insert("varchar_field", New Structure("VARCHAR", "Another varchar"));
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, "testbase1", Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.UpdateRecords("testtable", FieldsStructure, , TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UpdateRecords (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_DeleteRecords(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
FilterStructure.Insert("union", "AND");
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "ip_address");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "127.0.0.1"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
Obtaining = OPI_MySQL.GetRecords(Table, , Filters, , , ConnectionString); // SKIP
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteRecords(Table, Filters, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Obtaining, "DeleteRecords (get)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Count = Obtaining["data"].Count();
|
||||
Residue = 100 - Count;
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteRecords", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteRecords (check)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"], Residue);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, "testbase1", Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.DeleteRecords("testtable", , TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteRecords (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_DeleteTable(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteTable(Table, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteTable", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.DeleteTable(Table, TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteTable (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Base = "test_data";
|
||||
Table = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
Result = OPI_MySQL.DeleteTable(Table, ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteTable (test)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_DeleteDatabase(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Base = "testbase1";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Base = "testbase2";
|
||||
|
||||
Connection = OPI_MySQL.CreateConnection(ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Connection, "DeleteDatabase (open)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_AddIn(Connection, "AddIn.OPI_MySQL.Main");
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (connect)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (error)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
Closing = OPI_MySQL.CloseConnection(Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Closing, "DeleteDatabase (close)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Closing);
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (connect error)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, "", Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
Base = "testbase1";
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_ClearTable(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.ClearTable(Table, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ClearTable", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.ClearTable(Table, TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ClearTable (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ClearTable (check)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"], 0);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_GetRecordsFilterStrucutre(FunctionParameters)
|
||||
|
||||
Result = OPI_MySQL.GetRecordsFilterStrucutre();
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecordsFilterStrucutre", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_Structure(Result);
|
||||
|
||||
Result = OPI_MySQL.GetRecordsFilterStrucutre(True);
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecordsFilterStrucutre (empty)", "MySQL");
|
||||
|
||||
For Each Element In Result Do
|
||||
|
||||
OPI_TestDataRetrieval.Check_Empty(Element.Value);
|
||||
|
||||
EndDo;
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region GreenAPI
|
||||
|
186
src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os
vendored
186
src/en/OInt/tests/Modules/internal/OPI_TestsCLI.os
vendored
@@ -2347,6 +2347,23 @@ EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region MySQL
|
||||
|
||||
Procedure CLI_MYS_CommonMethods() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("PG_IP" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("PG_Password", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("SQL2" , TestParameters);
|
||||
|
||||
CLI_MySQL_GenerateConnectionString(TestParameters);
|
||||
CLI_MySQL_ExecuteSQLQuery(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region GreenAPI
|
||||
|
||||
Procedure CLI_GAPI_Account() Export
|
||||
@@ -20459,6 +20476,175 @@ EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region MySQL
|
||||
|
||||
Procedure CLI_MySQL_GenerateConnectionString(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("addr" , Address);
|
||||
Options.Insert("db" , Base);
|
||||
Options.Insert("login", Login);
|
||||
Options.Insert("pass" , Password);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "GenerateConnectionString", Options);
|
||||
Result = ПолучитьСтрокуИзДвоичныхДанных(Result);
|
||||
|
||||
Result = StrReplace(Result, Password, "***");
|
||||
Result = StrReplace(Result, Address , "127.0.0.1");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GenerateConnectionString", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_String(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_MySQL_ExecuteSQLQuery(FunctionParameters)
|
||||
|
||||
Image = FunctionParameters["Picture"];
|
||||
TFN = GetTempFileName();
|
||||
OPI_TypeConversion.GetBinaryData(Image);
|
||||
Image.Write(TFN);
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "test_data";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("addr" , Address);
|
||||
Options.Insert("db" , Base);
|
||||
Options.Insert("login", Login);
|
||||
Options.Insert("pass" , Password);
|
||||
|
||||
ConnectionString = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "GenerateConnectionString", Options, False);
|
||||
ConnectionString = ПолучитьСтрокуИзДвоичныхДанных(ConnectionString);
|
||||
|
||||
Options = New Structure();
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Options.Insert("table", "users");
|
||||
OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "DeleteTable", Options, False);
|
||||
|
||||
Options.Insert("table", "test_data");
|
||||
OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "DeleteTable", Options, False);
|
||||
|
||||
Options.Insert("table", "test_table");
|
||||
OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "DeleteTable", Options, False);
|
||||
|
||||
// CREATE
|
||||
|
||||
QueryText = "
|
||||
|CREATE TABLE test_table (
|
||||
|id SERIAL PRIMARY KEY,
|
||||
|name NAME,
|
||||
|age INT,
|
||||
|salary REAL,
|
||||
|is_active BOOL,
|
||||
|created_at DATE,
|
||||
|data BYTEA
|
||||
|);";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (Create)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// INSERT with parameters
|
||||
|
||||
QueryText = "
|
||||
|INSERT INTO test_table (name, age, salary, is_active, created_at, data)
|
||||
|VALUES ($1, $2, $3, $4, $5, $6);";
|
||||
|
||||
ParameterArray = New Array;
|
||||
ParameterArray.Add(New Structure("NAME" , "Vitaly"));
|
||||
ParameterArray.Add(New Structure("INT" , 25));
|
||||
ParameterArray.Add(New Structure("REAL" , 1000.12));
|
||||
ParameterArray.Add(New Structure("BOOL" , True));
|
||||
ParameterArray.Add(New Structure("DATE" , OPI_Tools.GetCurrentDate()));
|
||||
ParameterArray.Add(New Structure("BYTEA", TFN));
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("params", ParameterArray);
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (Insert)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// SELECT (The result of this query is shown in the Result block)
|
||||
|
||||
QueryText = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
Blob = Result["data"][0]["data"]["BYTES"]; // SKIP
|
||||
|
||||
Result["data"][0]["data"]["BYTES"] = "Base64"; // SKIP
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
OPI_TestDataRetrieval.Check_Equality(Base64Value(Blob).Size(), Image.Size()); // SKIP
|
||||
|
||||
// DO + Transaction
|
||||
|
||||
QueryText = "DO $$
|
||||
|BEGIN
|
||||
| CREATE TABLE users (
|
||||
| id SMALLSERIAL,
|
||||
| name TEXT NOT NULL,
|
||||
| age INT NOT NULL
|
||||
| );
|
||||
| INSERT INTO users (name, age) VALUES ('Alice', 30);
|
||||
| INSERT INTO users (name, age) VALUES ('Bob', 25);
|
||||
| INSERT INTO users (name, age) VALUES ('Charlie', 35);
|
||||
| COMMIT;
|
||||
|END $$ LANGUAGE plpgsql;";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (Transaction)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// SQL query from file
|
||||
|
||||
SQLFile = FunctionParameters["SQL2"]; // Binary Data, URL or path to file
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , SQLFile);
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (file)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
Try
|
||||
DeleteFiles(TFN);
|
||||
Except
|
||||
OPI_TestDataRetrieval.WriteLogCLI(ErrorDescription(), "Error deleting a picture file", "MySQL");
|
||||
EndTry;
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region GreenAPI
|
||||
|
||||
Procedure CLI_GreenAPI_FormAccessParameters(FunctionParameters)
|
||||
|
397
src/en/OPI/src/CommonModules/OPI_Tests/Module.bsl
vendored
397
src/en/OPI/src/CommonModules/OPI_Tests/Module.bsl
vendored
@@ -2414,6 +2414,13 @@ Procedure MYS_ORM() Export
|
||||
MySQL_CreateDatabase(TestParameters);
|
||||
MySQL_CreateTable(TestParameters);
|
||||
MySQL_AddRecords(TestParameters);
|
||||
MySQL_GetRecords(TestParameters);
|
||||
MySQL_UpdateRecords(TestParameters);
|
||||
MySQL_DeleteRecords(TestParameters);
|
||||
MySQL_ClearTable(TestParameters);
|
||||
MySQL_DeleteTable(TestParameters);
|
||||
MySQL_DeleteDatabase(TestParameters);
|
||||
MySQL_GetRecordsFilterStrucutre(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
@@ -18086,8 +18093,7 @@ Procedure PostgreSQL_GetRecords(FunctionParameters)
|
||||
Result = OPI_PostgreSQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
If ValueIsFilled(Result["data"]) Then // SKIP
|
||||
Result["data"][0]["bytea_field"]["BYTEA"] // SKIP
|
||||
= Left(Result["data"][0]["bytea_field"]["BYTEA"], 10) + "..."; // SKIP
|
||||
Result["data"][0]["bytea_field"]["BYTEA"] = Left(Result["data"][0]["bytea_field"]["BYTEA"], 10) + "..."; // SKIP
|
||||
EndIf; // SKIP
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords", "PostgreSQL"); // SKIP
|
||||
@@ -18701,6 +18707,7 @@ Procedure MySQL_ExecuteSQLQuery(FunctionParameters)
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ExecuteSQLQuery", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
OPI_TestDataRetrieval.Check_Equality(Base64Value(Blob).Size(), Image.Size()); // SKIP
|
||||
OPI_MySQL.ExecuteSQLQuery("create table TEST_DATA (id INT,first_name VARCHAR(50),last_name VARCHAR(50),email VARCHAR(50),gender VARCHAR(50),ip_address VARCHAR(20));", , , Connection); // SKIP
|
||||
|
||||
// SQL query from file
|
||||
|
||||
@@ -18916,6 +18923,392 @@ Procedure MySQL_AddRecords(FunctionParameters)
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_GetRecords(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
// All records without filters
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
If ValueIsFilled(Result["data"]) Then // SKIP
|
||||
Result["data"][0]["mediumblob_field"]["BYTES"] = Left(Result["data"][0]["mediumblob_field"]["BYTES"], 10) + "..."; // SKIP
|
||||
EndIf; // SKIP
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// Filter, selected fields, limit and sorting
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, "test_data", Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Fields = New Array;
|
||||
Fields.Add("first_name");
|
||||
Fields.Add("last_name");
|
||||
Fields.Add("email");
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure1 = New Structure;
|
||||
|
||||
FilterStructure1.Insert("field", "gender");
|
||||
FilterStructure1.Insert("type" , "=");
|
||||
FilterStructure1.Insert("value", "Male");
|
||||
FilterStructure1.Insert("union", "AND");
|
||||
FilterStructure1.Insert("raw" , False);
|
||||
|
||||
FilterStructure2 = New Structure;
|
||||
|
||||
FilterStructure2.Insert("field", "id");
|
||||
FilterStructure2.Insert("type" , "BETWEEN");
|
||||
FilterStructure2.Insert("value", "20 AND 50");
|
||||
FilterStructure2.Insert("raw" , True);
|
||||
|
||||
Filters.Add(FilterStructure1);
|
||||
Filters.Add(FilterStructure2);
|
||||
|
||||
Sort = New Structure("ip_address", "DESC");
|
||||
Count = 5;
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, Fields, Filters, Sort, Count, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords (filters)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"], 5);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecords (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"]);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_UpdateRecords(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
FieldsStructure = New Structure;
|
||||
FieldsStructure.Insert("ip_address", New Structure("VARCHAR", "127.0.0.1"));
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
Count = OPI_MySQL.GetRecords(Table, , Filters, , , ConnectionString); // SKIP
|
||||
OPI_TestDataRetrieval.WriteLog(Count, "UpdateRecords (amount)", "MySQL"); // SKIP
|
||||
Count = Count["data"].Count(); // SKIP
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.UpdateRecords(Table, FieldsStructure, FilterStructure, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UpdateRecords", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Check = OPI_MySQL.GetRecords(Table, "['ip_address']", Filters, , , ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Check, "UpdateRecords (check)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Check);
|
||||
OPI_TestDataRetrieval.Check_Array(Check["data"], Count);
|
||||
|
||||
For N = 0 To Check["data"].UBound() Do
|
||||
OPI_TestDataRetrieval.Check_SQLiteFieldsValues(Check["data"][N], FieldsStructure);
|
||||
EndDo;
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
FieldsStructure = New Structure;
|
||||
FieldsStructure.Insert("varchar_field", New Structure("VARCHAR", "Another varchar"));
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, "testbase1", Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.UpdateRecords("testtable", FieldsStructure, , TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "UpdateRecords (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_DeleteRecords(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "test_data";
|
||||
|
||||
Filters = New Array;
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "gender");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "Male"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
FilterStructure.Insert("union", "AND");
|
||||
|
||||
Filters.Add(FilterStructure);
|
||||
|
||||
FilterStructure = New Structure;
|
||||
|
||||
FilterStructure.Insert("field", "ip_address");
|
||||
FilterStructure.Insert("type" , "=");
|
||||
FilterStructure.Insert("value", New Structure("VARCHAR", "127.0.0.1"));
|
||||
FilterStructure.Insert("raw" , False);
|
||||
|
||||
Obtaining = OPI_MySQL.GetRecords(Table, , Filters, , , ConnectionString); // SKIP
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteRecords(Table, Filters, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Obtaining, "DeleteRecords (get)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Count = Obtaining["data"].Count();
|
||||
Residue = 100 - Count;
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteRecords", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteRecords (check)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"], Residue);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, "testbase1", Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.DeleteRecords("testtable", , TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteRecords (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_DeleteTable(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteTable(Table, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteTable", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.DeleteTable(Table, TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteTable (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Base = "test_data";
|
||||
Table = "test_data";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
Result = OPI_MySQL.DeleteTable(Table, ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteTable (test)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_DeleteDatabase(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Base = "testbase1";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Base = "testbase2";
|
||||
|
||||
Connection = OPI_MySQL.CreateConnection(ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Connection, "DeleteDatabase (open)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_AddIn(Connection, "AddIn.OPI_MySQL.Main");
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (connect)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (error)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
Closing = OPI_MySQL.CloseConnection(Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Closing, "DeleteDatabase (close)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Closing);
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, Connection);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (connect error)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultFalse(Result);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, "", Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
Base = "testbase1";
|
||||
|
||||
Result = OPI_MySQL.DeleteDatabase(Base, TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "DeleteDatabase (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_ClearTable(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "testbase1";
|
||||
|
||||
ConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password);
|
||||
|
||||
Table = "testtable";
|
||||
|
||||
// When using the connection string, a new connection is initialised,
|
||||
// which will be closed after the function is executed.
|
||||
// If several operations are performed, it is desirable to use one connection,
|
||||
// previously created by the CreateConnection function()
|
||||
Result = OPI_MySQL.ClearTable(Table, ConnectionString);
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ClearTable", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Address = "api.athenaeum.digital";
|
||||
Port = "3307";
|
||||
|
||||
TLSConnectionString = OPI_MySQL.GenerateConnectionString(Address, Base, Login, Password, Port);
|
||||
TLSSettings = OPI_MySQL.GetTlsSettings(False);
|
||||
|
||||
Result = OPI_MySQL.ClearTable(Table, TLSConnectionString, TLSSettings);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ClearTable (TLS)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
|
||||
Result = OPI_MySQL.GetRecords(Table, , , , , ConnectionString);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "ClearTable (check)", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result);
|
||||
OPI_TestDataRetrieval.Check_Array(Result["data"], 0);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure MySQL_GetRecordsFilterStrucutre(FunctionParameters)
|
||||
|
||||
Result = OPI_MySQL.GetRecordsFilterStrucutre();
|
||||
|
||||
// END
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecordsFilterStrucutre", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_Structure(Result);
|
||||
|
||||
Result = OPI_MySQL.GetRecordsFilterStrucutre(True);
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GetRecordsFilterStrucutre (empty)", "MySQL");
|
||||
|
||||
For Each Element In Result Do
|
||||
|
||||
OPI_TestDataRetrieval.Check_Empty(Element.Value);
|
||||
|
||||
EndDo;
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region GreenAPI
|
||||
|
186
src/en/OPI/src/CommonModules/OPI_TestsCLI/Module.bsl
vendored
186
src/en/OPI/src/CommonModules/OPI_TestsCLI/Module.bsl
vendored
@@ -2347,6 +2347,23 @@ EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region MySQL
|
||||
|
||||
Procedure CLI_MYS_CommonMethods() Export
|
||||
|
||||
TestParameters = New Structure;
|
||||
OPI_TestDataRetrieval.ParameterToCollection("PG_IP" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("PG_Password", TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("Picture" , TestParameters);
|
||||
OPI_TestDataRetrieval.ParameterToCollection("SQL2" , TestParameters);
|
||||
|
||||
CLI_MySQL_GenerateConnectionString(TestParameters);
|
||||
CLI_MySQL_ExecuteSQLQuery(TestParameters);
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region GreenAPI
|
||||
|
||||
Procedure CLI_GAPI_Account() Export
|
||||
@@ -20459,6 +20476,175 @@ EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region MySQL
|
||||
|
||||
Procedure CLI_MySQL_GenerateConnectionString(FunctionParameters)
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("addr" , Address);
|
||||
Options.Insert("db" , Base);
|
||||
Options.Insert("login", Login);
|
||||
Options.Insert("pass" , Password);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "GenerateConnectionString", Options);
|
||||
Result = GetStringFromBinaryData(Result);
|
||||
|
||||
Result = StrReplace(Result, Password, "***");
|
||||
Result = StrReplace(Result, Address , "127.0.0.1");
|
||||
|
||||
OPI_TestDataRetrieval.WriteLog(Result, "GenerateConnectionString", "MySQL");
|
||||
OPI_TestDataRetrieval.Check_String(Result);
|
||||
|
||||
EndProcedure
|
||||
|
||||
Procedure CLI_MySQL_ExecuteSQLQuery(FunctionParameters)
|
||||
|
||||
Image = FunctionParameters["Picture"];
|
||||
TFN = GetTempFileName();
|
||||
OPI_TypeConversion.GetBinaryData(Image);
|
||||
Image.Write(TFN);
|
||||
|
||||
Address = FunctionParameters["PG_IP"];
|
||||
Login = "bayselonarrend";
|
||||
Password = FunctionParameters["PG_Password"];
|
||||
Base = "test_data";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("addr" , Address);
|
||||
Options.Insert("db" , Base);
|
||||
Options.Insert("login", Login);
|
||||
Options.Insert("pass" , Password);
|
||||
|
||||
ConnectionString = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "GenerateConnectionString", Options, False);
|
||||
ConnectionString = GetStringFromBinaryData(ConnectionString);
|
||||
|
||||
Options = New Structure();
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Options.Insert("table", "users");
|
||||
OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "DeleteTable", Options, False);
|
||||
|
||||
Options.Insert("table", "test_data");
|
||||
OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "DeleteTable", Options, False);
|
||||
|
||||
Options.Insert("table", "test_table");
|
||||
OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "DeleteTable", Options, False);
|
||||
|
||||
// CREATE
|
||||
|
||||
QueryText = "
|
||||
|CREATE TABLE test_table (
|
||||
|id SERIAL PRIMARY KEY,
|
||||
|name NAME,
|
||||
|age INT,
|
||||
|salary REAL,
|
||||
|is_active BOOL,
|
||||
|created_at DATE,
|
||||
|data BYTEA
|
||||
|);";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (Create)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// INSERT with parameters
|
||||
|
||||
QueryText = "
|
||||
|INSERT INTO test_table (name, age, salary, is_active, created_at, data)
|
||||
|VALUES ($1, $2, $3, $4, $5, $6);";
|
||||
|
||||
ParameterArray = New Array;
|
||||
ParameterArray.Add(New Structure("NAME" , "Vitaly"));
|
||||
ParameterArray.Add(New Structure("INT" , 25));
|
||||
ParameterArray.Add(New Structure("REAL" , 1000.12));
|
||||
ParameterArray.Add(New Structure("BOOL" , True));
|
||||
ParameterArray.Add(New Structure("DATE" , OPI_Tools.GetCurrentDate()));
|
||||
ParameterArray.Add(New Structure("BYTEA", TFN));
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("params", ParameterArray);
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (Insert)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// SELECT (The result of this query is shown in the Result block)
|
||||
|
||||
QueryText = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
Blob = Result["data"][0]["data"]["BYTES"]; // SKIP
|
||||
|
||||
Result["data"][0]["data"]["BYTES"] = "Base64"; // SKIP
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
OPI_TestDataRetrieval.Check_Equality(Base64Value(Blob).Size(), Image.Size()); // SKIP
|
||||
|
||||
// DO + Transaction
|
||||
|
||||
QueryText = "DO $$
|
||||
|BEGIN
|
||||
| CREATE TABLE users (
|
||||
| id SMALLSERIAL,
|
||||
| name TEXT NOT NULL,
|
||||
| age INT NOT NULL
|
||||
| );
|
||||
| INSERT INTO users (name, age) VALUES ('Alice', 30);
|
||||
| INSERT INTO users (name, age) VALUES ('Bob', 25);
|
||||
| INSERT INTO users (name, age) VALUES ('Charlie', 35);
|
||||
| COMMIT;
|
||||
|END $$ LANGUAGE plpgsql;";
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , StrReplace(QueryText, Chars.LF, " "));
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options, False);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (Transaction)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
// SQL query from file
|
||||
|
||||
SQLFile = FunctionParameters["SQL2"]; // Binary Data, URL or path to file
|
||||
|
||||
Options = New Structure;
|
||||
Options.Insert("sql" , SQLFile);
|
||||
Options.Insert("dbc" , ConnectionString);
|
||||
|
||||
Result = OPI_TestDataRetrieval.ExecuteTestCLI("mysql", "ExecuteSQLQuery", Options);
|
||||
|
||||
OPI_TestDataRetrieval.WriteLogCLI(Result, "ExecuteSQLQuery (file)", "MySQL"); // SKIP
|
||||
OPI_TestDataRetrieval.Check_ResultTrue(Result); // SKIP
|
||||
|
||||
Try
|
||||
DeleteFiles(TFN);
|
||||
Except
|
||||
OPI_TestDataRetrieval.WriteLogCLI(ErrorDescription(), "Error deleting a picture file", "MySQL");
|
||||
EndTry;
|
||||
|
||||
EndProcedure
|
||||
|
||||
#EndRegion
|
||||
|
||||
#Region GreenAPI
|
||||
|
||||
Procedure CLI_GreenAPI_FormAccessParameters(FunctionParameters)
|
||||
|
399
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
399
src/ru/OInt/tests/Modules/internal/OPI_Тесты.os
vendored
@@ -2414,6 +2414,13 @@
|
||||
MySQL_СоздатьБазуДанных(ПараметрыТеста);
|
||||
MySQL_СоздатьТаблицу(ПараметрыТеста);
|
||||
MySQL_ДобавитьЗаписи(ПараметрыТеста);
|
||||
MySQL_ПолучитьЗаписи(ПараметрыТеста);
|
||||
MySQL_ОбновитьЗаписи(ПараметрыТеста);
|
||||
MySQL_УдалитьЗаписи(ПараметрыТеста);
|
||||
MySQL_ОчиститьТаблицу(ПараметрыТеста);
|
||||
MySQL_УдалитьТаблицу(ПараметрыТеста);
|
||||
MySQL_УдалитьБазуДанных(ПараметрыТеста);
|
||||
MySQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -18086,12 +18093,11 @@
|
||||
Результат = OPI_PostgreSQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения);
|
||||
|
||||
Если ЗначениеЗаполнено(Результат["data"]) Тогда // SKIP
|
||||
Результат["data"][0]["bytea_field"]["BYTEA"] // SKIP
|
||||
= Лев(Результат["data"][0]["bytea_field"]["BYTEA"], 10) + "..."; // SKIP
|
||||
Результат["data"][0]["bytea_field"]["BYTEA"] = Лев(Результат["data"][0]["bytea_field"]["BYTEA"], 10) + "..."; // SKIP
|
||||
КонецЕсли; // SKIP
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗаписи", "PostgreSQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
|
||||
// Отборы, выбранные поля, количество и сортировка
|
||||
|
||||
@@ -18701,6 +18707,7 @@
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ВыполнитьЗапросSQL", "MySQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Base64Значение(Blob).Размер(), Картинка.Размер()); // SKIP
|
||||
OPI_MySQL.ВыполнитьЗапросSQL("create table TEST_DATA (id INT,first_name VARCHAR(50),last_name VARCHAR(50),email VARCHAR(50),gender VARCHAR(50),ip_address VARCHAR(20));", , , Соединение); // SKIP
|
||||
|
||||
// SQL запрос из файла
|
||||
|
||||
@@ -18916,6 +18923,392 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура MySQL_ПолучитьЗаписи(ПараметрыФункции)
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
// Все записи без отборов
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения);
|
||||
|
||||
Если ЗначениеЗаполнено(Результат["data"]) Тогда // SKIP
|
||||
Результат["data"][0]["mediumblob_field"]["BYTES"] = Лев(Результат["data"][0]["mediumblob_field"]["BYTES"], 10) + "..."; // SKIP
|
||||
КонецЕсли; // SKIP
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗаписи", "MySQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
|
||||
// Отборы, выбранные поля, количество и сортировка
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, "test_data", Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
Поля = Новый Массив;
|
||||
Поля.Добавить("first_name");
|
||||
Поля.Добавить("last_name");
|
||||
Поля.Добавить("email");
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра1 = Новый Структура;
|
||||
|
||||
СтруктураФильтра1.Вставить("field", "gender");
|
||||
СтруктураФильтра1.Вставить("type" , "=");
|
||||
СтруктураФильтра1.Вставить("value", "Male");
|
||||
СтруктураФильтра1.Вставить("union", "AND");
|
||||
СтруктураФильтра1.Вставить("raw" , Ложь);
|
||||
|
||||
СтруктураФильтра2 = Новый Структура;
|
||||
|
||||
СтруктураФильтра2.Вставить("field", "id");
|
||||
СтруктураФильтра2.Вставить("type" , "BETWEEN");
|
||||
СтруктураФильтра2.Вставить("value", "20 AND 50");
|
||||
СтруктураФильтра2.Вставить("raw" , Истина);
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра1);
|
||||
Фильтры.Добавить(СтруктураФильтра2);
|
||||
|
||||
Сортировка = Новый Структура("ip_address", "DESC");
|
||||
Количество = 5;
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, Поля, Фильтры, Сортировка, Количество, СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗаписи (отборы)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 5);
|
||||
|
||||
Адрес = "api.athenaeum.digital";
|
||||
Порт = "3307";
|
||||
|
||||
СтрокаПодключенияTLS = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
|
||||
НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTls(Ложь);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключенияTLS, НастройкиTLS);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗаписи (TLS)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"]);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура MySQL_ОбновитьЗаписи(ПараметрыФункции)
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "test_data";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
СтруктураПолей = Новый Структура;
|
||||
СтруктураПолей.Вставить("ip_address", Новый Структура("VARCHAR", "127.0.0.1"));
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "gender");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра);
|
||||
|
||||
Количество = OPI_MySQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Количество, "ОбновитьЗаписи (количество)", "MySQL"); // SKIP
|
||||
Количество = Количество["data"].Количество(); // SKIP
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ОбновитьЗаписи(Таблица, СтруктураПолей, СтруктураФильтра, СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьЗаписи", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Проверка = OPI_MySQL.ПолучитьЗаписи(Таблица, "['ip_address']", Фильтры, , , СтрокаПодключения);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Проверка, "ОбновитьЗаписи (проверка)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Проверка);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Проверка["data"], Количество);
|
||||
|
||||
Для Н = 0 По Проверка["data"].ВГраница() Цикл
|
||||
OPI_ПолучениеДанныхТестов.Проверка_SQLiteЗначенияПолей(Проверка["data"][Н], СтруктураПолей);
|
||||
КонецЦикла;
|
||||
|
||||
Адрес = "api.athenaeum.digital";
|
||||
Порт = "3307";
|
||||
|
||||
СтруктураПолей = Новый Структура;
|
||||
СтруктураПолей.Вставить("varchar_field", Новый Структура("VARCHAR", "Another varchar"));
|
||||
|
||||
СтрокаПодключенияTLS = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, "testbase1", Логин, Пароль, Порт);
|
||||
НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTls(Ложь);
|
||||
|
||||
Результат = OPI_MySQL.ОбновитьЗаписи("testtable", СтруктураПолей, , СтрокаПодключенияTLS, НастройкиTLS);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьЗаписи (TLS)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура MySQL_УдалитьЗаписи(ПараметрыФункции)
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "test_data";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "test_data";
|
||||
|
||||
Фильтры = Новый Массив;
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "gender");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "Male"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
СтруктураФильтра.Вставить("union", "AND");
|
||||
|
||||
Фильтры.Добавить(СтруктураФильтра);
|
||||
|
||||
СтруктураФильтра = Новый Структура;
|
||||
|
||||
СтруктураФильтра.Вставить("field", "ip_address");
|
||||
СтруктураФильтра.Вставить("type" , "=");
|
||||
СтруктураФильтра.Вставить("value", Новый Структура("VARCHAR", "127.0.0.1"));
|
||||
СтруктураФильтра.Вставить("raw" , Ложь);
|
||||
|
||||
Получение = OPI_MySQL.ПолучитьЗаписи(Таблица, , Фильтры, , , СтрокаПодключения); // SKIP
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьЗаписи(Таблица, Фильтры, СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Получение, "УдалитьЗаписи (получение)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Количество = Получение["data"].Количество();
|
||||
Остаток = 100 - Количество;
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи (проверка)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], Остаток);
|
||||
|
||||
Адрес = "api.athenaeum.digital";
|
||||
Порт = "3307";
|
||||
|
||||
СтрокаПодключенияTLS = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, "testbase1", Логин, Пароль, Порт);
|
||||
НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTls(Ложь);
|
||||
|
||||
Результат = OPI_MySQL.УдалитьЗаписи("testtable", , СтрокаПодключенияTLS, НастройкиTLS);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЗаписи (TLS)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура MySQL_УдалитьТаблицу(ПараметрыФункции)
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьТаблицу(Таблица, СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТаблицу", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Адрес = "api.athenaeum.digital";
|
||||
Порт = "3307";
|
||||
|
||||
СтрокаПодключенияTLS = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
|
||||
НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTls(Ложь);
|
||||
|
||||
Результат = OPI_MySQL.УдалитьТаблицу(Таблица, СтрокаПодключенияTLS, НастройкиTLS);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТаблицу (TLS)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
База = "test_data";
|
||||
Таблица = "test_data";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
Результат = OPI_MySQL.УдалитьТаблицу(Таблица, СтрокаПодключения);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьТаблицу (тест)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура MySQL_УдалитьБазуДанных(ПараметрыФункции)
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
База = "testbase1";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
База = "testbase2";
|
||||
|
||||
Подключение = OPI_MySQL.ОткрытьСоединение(СтрокаПодключения);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Подключение, "УдалитьБазуДанных (открытие)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Компонента(Подключение, "AddIn.OPI_MySQL.Main");
|
||||
|
||||
Результат = OPI_MySQL.УдалитьБазуДанных(База, Подключение);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных (подключение)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Результат = OPI_MySQL.УдалитьБазуДанных(База, Подключение);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных (ошибка)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатЛожь(Результат);
|
||||
|
||||
Закрытие = OPI_MySQL.ЗакрытьСоединение(Подключение);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Закрытие, "УдалитьБазуДанных (закрытие)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Закрытие);
|
||||
|
||||
Результат = OPI_MySQL.УдалитьБазуДанных(База, Подключение);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных (ошибка подключения)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатЛожь(Результат);
|
||||
|
||||
Адрес = "api.athenaeum.digital";
|
||||
Порт = "3307";
|
||||
|
||||
СтрокаПодключенияTLS = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, "", Логин, Пароль, Порт);
|
||||
НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTls(Ложь);
|
||||
База = "testbase1";
|
||||
|
||||
Результат = OPI_MySQL.УдалитьБазуДанных(База, СтрокаПодключенияTLS, НастройкиTLS);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьБазуДанных (TLS)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура MySQL_ОчиститьТаблицу(ПараметрыФункции)
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "testbase1";
|
||||
|
||||
СтрокаПодключения = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль);
|
||||
|
||||
Таблица = "testtable";
|
||||
|
||||
// При использовании строки подключения инициализируется новое соединение,
|
||||
// которое будет закрыто после выполнения функции.
|
||||
// В случае выполнения нескольких операций желательно использовать одно соединение,
|
||||
// заранее созданное функцией ОткрытьСоединение()
|
||||
Результат = OPI_MySQL.ОчиститьТаблицу(Таблица, СтрокаПодключения);
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьТаблицу", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Адрес = "api.athenaeum.digital";
|
||||
Порт = "3307";
|
||||
|
||||
СтрокаПодключенияTLS = OPI_MySQL.СформироватьСтрокуПодключения(Адрес, База, Логин, Пароль, Порт);
|
||||
НастройкиTLS = OPI_MySQL.ПолучитьНастройкиTls(Ложь);
|
||||
|
||||
Результат = OPI_MySQL.ОчиститьТаблицу(Таблица, СтрокаПодключенияTLS, НастройкиTLS);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьТаблицу (TLS)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьЗаписи(Таблица, , , , , СтрокаПодключения);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьТаблицу (проверка)", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат);
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Массив(Результат["data"], 0);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура MySQL_ПолучитьСтруктуруФильтраЗаписей(ПараметрыФункции)
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьСтруктуруФильтраЗаписей();
|
||||
|
||||
// END
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруФильтраЗаписей", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Структура(Результат);
|
||||
|
||||
Результат = OPI_MySQL.ПолучитьСтруктуруФильтраЗаписей(Истина);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруФильтраЗаписей (пустая)", "MySQL");
|
||||
|
||||
Для Каждого Элемент Из Результат Цикл
|
||||
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Пусто(Элемент.Значение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область GreenAPI
|
||||
|
186
src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os
vendored
186
src/ru/OInt/tests/Modules/internal/OPI_ТестыCLI.os
vendored
@@ -2347,6 +2347,23 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область MySQL
|
||||
|
||||
Процедура CLI_MYS_ОсновныеМетоды() Экспорт
|
||||
|
||||
ПараметрыТеста = Новый Структура;
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_IP" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("PG_Password", ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста);
|
||||
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("SQL2" , ПараметрыТеста);
|
||||
|
||||
CLI_MySQL_СформироватьСтрокуПодключения(ПараметрыТеста);
|
||||
CLI_MySQL_ВыполнитьЗапросSQL(ПараметрыТеста);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область GreenAPI
|
||||
|
||||
Процедура CLI_GAPI_Аккаунт() Экспорт
|
||||
@@ -20459,6 +20476,175 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область MySQL
|
||||
|
||||
Процедура CLI_MySQL_СформироватьСтрокуПодключения(ПараметрыФункции)
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("addr" , Адрес);
|
||||
Опции.Вставить("db" , База);
|
||||
Опции.Вставить("login", Логин);
|
||||
Опции.Вставить("pass" , Пароль);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции);
|
||||
Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат);
|
||||
|
||||
Результат = СтрЗаменить(Результат, Пароль, "***");
|
||||
Результат = СтрЗаменить(Результат, Адрес , "127.0.0.1");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СформироватьСтрокуПодключения", "MySQL");
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Строка(Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура CLI_MySQL_ВыполнитьЗапросSQL(ПараметрыФункции)
|
||||
|
||||
Картинка = ПараметрыФункции["Picture"];
|
||||
ИВФ = ПолучитьИмяВременногоФайла();
|
||||
OPI_ПреобразованиеТипов.ПолучитьДвоичныеДанные(Картинка);
|
||||
Картинка.Записать(ИВФ);
|
||||
|
||||
Адрес = ПараметрыФункции["PG_IP"];
|
||||
Логин = "bayselonarrend";
|
||||
Пароль = ПараметрыФункции["PG_Password"];
|
||||
База = "test_data";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("addr" , Адрес);
|
||||
Опции.Вставить("db" , База);
|
||||
Опции.Вставить("login", Логин);
|
||||
Опции.Вставить("pass" , Пароль);
|
||||
|
||||
СтрокаПодключения = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "СформироватьСтрокуПодключения", Опции, Ложь);
|
||||
СтрокаПодключения = ПолучитьСтрокуИзДвоичныхДанных(СтрокаПодключения);
|
||||
|
||||
Опции = Новый Структура();
|
||||
Опции.Вставить("dbc" , СтрокаПодключения);
|
||||
|
||||
Опции.Вставить("table", "users");
|
||||
OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьТаблицу", Опции, Ложь);
|
||||
|
||||
Опции.Вставить("table", "test_data");
|
||||
OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьТаблицу", Опции, Ложь);
|
||||
|
||||
Опции.Вставить("table", "test_table");
|
||||
OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "УдалитьТаблицу", Опции, Ложь);
|
||||
|
||||
// CREATE
|
||||
|
||||
ТекстЗапроса = "
|
||||
|CREATE TABLE test_table (
|
||||
|id SERIAL PRIMARY KEY,
|
||||
|name NAME,
|
||||
|age INT,
|
||||
|salary REAL,
|
||||
|is_active BOOL,
|
||||
|created_at DATE,
|
||||
|data BYTEA
|
||||
|);";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("sql" , СтрЗаменить(ТекстЗапроса, Символы.ПС, " "));
|
||||
Опции.Вставить("dbc" , СтрокаПодключения);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции, Ложь);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (Create)", "MySQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
|
||||
// INSERT с параметрами
|
||||
|
||||
ТекстЗапроса = "
|
||||
|INSERT INTO test_table (name, age, salary, is_active, created_at, data)
|
||||
|VALUES ($1, $2, $3, $4, $5, $6);";
|
||||
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Новый Структура("NAME" , "Vitaly"));
|
||||
МассивПараметров.Добавить(Новый Структура("INT" , 25));
|
||||
МассивПараметров.Добавить(Новый Структура("REAL" , 1000.12));
|
||||
МассивПараметров.Добавить(Новый Структура("BOOL" , Истина));
|
||||
МассивПараметров.Добавить(Новый Структура("DATE" , OPI_Инструменты.ПолучитьТекущуюДату()));
|
||||
МассивПараметров.Добавить(Новый Структура("BYTEA", ИВФ));
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("sql" , СтрЗаменить(ТекстЗапроса, Символы.ПС, " "));
|
||||
Опции.Вставить("params", МассивПараметров);
|
||||
Опции.Вставить("dbc" , СтрокаПодключения);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции, Ложь);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (Insert)", "MySQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
|
||||
// SELECT (Результат этого запроса приведен в следующем блоке)
|
||||
|
||||
ТекстЗапроса = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("sql" , СтрЗаменить(ТекстЗапроса, Символы.ПС, " "));
|
||||
Опции.Вставить("dbc" , СтрокаПодключения);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции, Ложь);
|
||||
|
||||
Blob = Результат["data"][0]["data"]["BYTES"]; // SKIP
|
||||
|
||||
Результат["data"][0]["data"]["BYTES"] = "Base64"; // SKIP
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL", "MySQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_Равенство(Base64Значение(Blob).Размер(), Картинка.Размер()); // SKIP
|
||||
|
||||
// DO + Транзакция
|
||||
|
||||
ТекстЗапроса = "DO $$
|
||||
|BEGIN
|
||||
| CREATE TABLE users (
|
||||
| id SMALLSERIAL,
|
||||
| name TEXT NOT NULL,
|
||||
| age INT NOT NULL
|
||||
| );
|
||||
| INSERT INTO users (name, age) VALUES ('Alice', 30);
|
||||
| INSERT INTO users (name, age) VALUES ('Bob', 25);
|
||||
| INSERT INTO users (name, age) VALUES ('Charlie', 35);
|
||||
| COMMIT;
|
||||
|END $$ LANGUAGE plpgsql;";
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("sql" , СтрЗаменить(ТекстЗапроса, Символы.ПС, " "));
|
||||
Опции.Вставить("dbc" , СтрокаПодключения);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции, Ложь);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (Transaction)", "MySQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
|
||||
// SQL запрос из файла
|
||||
|
||||
ФайлSQL = ПараметрыФункции["SQL2"]; // Двоичные данные, URL или путь к файлу
|
||||
|
||||
Опции = Новый Структура;
|
||||
Опции.Вставить("sql" , ФайлSQL);
|
||||
Опции.Вставить("dbc" , СтрокаПодключения);
|
||||
|
||||
Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("mysql", "ВыполнитьЗапросSQL", Опции);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (файл)", "MySQL"); // SKIP
|
||||
OPI_ПолучениеДанныхТестов.Проверка_РезультатИстина(Результат); // SKIP
|
||||
|
||||
Попытка
|
||||
УдалитьФайлы(ИВФ);
|
||||
Исключение
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(ОписаниеОшибки(), "Ошибка удаления файла картинки", "MySQL");
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область GreenAPI
|
||||
|
||||
Процедура CLI_GreenAPI_СформироватьПараметрыДоступа(ПараметрыФункции)
|
||||
|
Reference in New Issue
Block a user