9#include "TSQLStatement.h"
18 TString parameter_name,
22 connectionDB = db_connect;
24 i_parameter_id = parameter_id;
25 str_parameter_name = parameter_name;
26 i_parameter_type = parameter_type;
27 b_is_array = is_array;
41 if (connDb ==
nullptr)
46 TString sql = TString::Format(
"insert into parameter_(parameter_name, parameter_type, is_array) "
47 "values ($1, $2, $3)");
48 TSQLStatement* stmt = db_server->Statement(sql);
50 stmt->NextIteration();
51 stmt->SetString(0, parameter_name);
52 stmt->SetInt(1, parameter_type);
53 stmt->SetInt(2, is_array);
56 if (!stmt->Process()) {
57 cout <<
"ERROR: inserting new parameter to the Database has been failed" << endl;
67 TSQLStatement* stmt_last =
68 db_server->Statement(
"SELECT currval(pg_get_serial_sequence('parameter_','parameter_id'))");
71 if (stmt_last->Process()) {
73 stmt_last->StoreResult();
76 if (!stmt_last->NextResultRow()) {
77 cout <<
"ERROR: no last ID in DB!" << endl;
81 parameter_id = stmt_last->GetInt(0);
85 cout <<
"ERROR: getting last ID has been failed!" << endl;
91 tmp_parameter_id = parameter_id;
92 TString tmp_parameter_name;
93 tmp_parameter_name = parameter_name;
94 int tmp_parameter_type;
95 tmp_parameter_type = parameter_type;
97 tmp_is_array = is_array;
99 return new UniParameter(connDb, tmp_parameter_id, tmp_parameter_name, tmp_parameter_type, tmp_is_array);
106 if (connDb ==
nullptr)
111 TString sql = TString::Format(
"select parameter_id, parameter_name, parameter_type, is_array "
113 "where parameter_id = %d",
115 TSQLStatement* stmt = db_server->Statement(sql);
118 if (!stmt->Process()) {
119 cout <<
"ERROR: getting parameter from the database has been failed" << endl;
130 if (!stmt->NextResultRow()) {
131 cout <<
"ERROR: parameter was not found in the database" << endl;
138 int tmp_parameter_id;
139 tmp_parameter_id = stmt->GetInt(0);
140 TString tmp_parameter_name;
141 tmp_parameter_name = stmt->GetString(1);
142 int tmp_parameter_type;
143 tmp_parameter_type = stmt->GetInt(2);
145 tmp_is_array = stmt->GetInt(3);
149 return new UniParameter(connDb, tmp_parameter_id, tmp_parameter_name, tmp_parameter_type, tmp_is_array);
156 if (connDb ==
nullptr)
161 TString sql = TString::Format(
"select parameter_id, parameter_name, parameter_type, is_array "
163 "where lower(parameter_name) = lower('%s')",
164 parameter_name.Data());
165 TSQLStatement* stmt = db_server->Statement(sql);
168 if (!stmt->Process()) {
169 cout <<
"ERROR: getting parameter from the database has been failed" << endl;
180 if (!stmt->NextResultRow()) {
181 cout <<
"ERROR: parameter was not found in the database" << endl;
188 int tmp_parameter_id;
189 tmp_parameter_id = stmt->GetInt(0);
190 TString tmp_parameter_name;
191 tmp_parameter_name = stmt->GetString(1);
192 int tmp_parameter_type;
193 tmp_parameter_type = stmt->GetInt(2);
195 tmp_is_array = stmt->GetInt(3);
199 return new UniParameter(connDb, tmp_parameter_id, tmp_parameter_name, tmp_parameter_type, tmp_is_array);
206 if (connDb ==
nullptr)
211 TString sql = TString::Format(
"select 1 "
213 "where parameter_id = %d",
215 TSQLStatement* stmt = db_server->Statement(sql);
218 if (!stmt->Process()) {
219 cout <<
"ERROR: getting parameter from the database has been failed" << endl;
230 if (!stmt->NextResultRow()) {
246 if (connDb ==
nullptr)
251 TString sql = TString::Format(
"select 1 "
253 "where lower(parameter_name) = lower('%s')",
254 parameter_name.Data());
255 TSQLStatement* stmt = db_server->Statement(sql);
258 if (!stmt->Process()) {
259 cout <<
"ERROR: getting parameter from the database has been failed" << endl;
270 if (!stmt->NextResultRow()) {
286 if (connDb ==
nullptr)
291 TString sql = TString::Format(
"delete from parameter_ "
292 "where parameter_id = $1");
293 TSQLStatement* stmt = db_server->Statement(sql);
295 stmt->NextIteration();
296 stmt->SetInt(0, parameter_id);
299 if (!stmt->Process()) {
300 cout <<
"ERROR: deleting parameter from the dataBase has been failed" << endl;
316 if (connDb ==
nullptr)
321 TString sql = TString::Format(
"delete from parameter_ "
322 "where lower(parameter_name) = lower($1)");
323 TSQLStatement* stmt = db_server->Statement(sql);
325 stmt->NextIteration();
326 stmt->SetString(0, parameter_name);
329 if (!stmt->Process()) {
330 cout <<
"ERROR: deleting parameter from the DataBase has been failed" << endl;
346 if (connDb ==
nullptr)
351 TString sql = TString::Format(
"select parameter_id, parameter_name, parameter_type, is_array "
353 TSQLStatement* stmt = db_server->Statement(sql);
356 if (!stmt->Process()) {
357 cout <<
"ERROR: getting all 'parameters' from the dataBase has been failed" << endl;
368 cout <<
"Table 'parameter_':" << endl;
369 while (stmt->NextResultRow()) {
370 cout <<
"parameter_id: ";
371 cout << (stmt->GetInt(0));
372 cout <<
", parameter_name: ";
373 cout << (stmt->GetString(1));
374 cout <<
", parameter_type: ";
375 cout << (stmt->GetInt(2));
376 cout <<
", is_array: ";
377 cout << (stmt->GetInt(3));
391 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
397 TString sql = TString::Format(
"update parameter_ "
398 "set parameter_name = $1 "
399 "where parameter_id = $2");
400 TSQLStatement* stmt = db_server->Statement(sql);
402 stmt->NextIteration();
403 stmt->SetString(0, parameter_name);
404 stmt->SetInt(1, i_parameter_id);
407 if (!stmt->Process()) {
408 cout <<
"ERROR: updating information about parameter has been failed" << endl;
414 str_parameter_name = parameter_name;
423 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
429 TString sql = TString::Format(
"update parameter_ "
430 "set parameter_type = $1 "
431 "where parameter_id = $2");
432 TSQLStatement* stmt = db_server->Statement(sql);
434 stmt->NextIteration();
435 stmt->SetInt(0, parameter_type);
436 stmt->SetInt(1, i_parameter_id);
439 if (!stmt->Process()) {
440 cout <<
"ERROR: updating information about parameter has been failed" << endl;
446 i_parameter_type = parameter_type;
455 cout <<
"CRITICAL ERROR: Connection object is null" << endl;
461 TString sql = TString::Format(
"update parameter_ "
463 "where parameter_id = $2");
464 TSQLStatement* stmt = db_server->Statement(sql);
466 stmt->NextIteration();
467 stmt->SetInt(0, is_array);
468 stmt->SetInt(1, i_parameter_id);
471 if (!stmt->Process()) {
472 cout <<
"ERROR: updating information about parameter has been failed" << endl;
478 b_is_array = is_array;
487 cout <<
"Table 'parameter_'";
488 cout <<
". parameter_id: " << i_parameter_id <<
". parameter_name: " << str_parameter_name
489 <<
". parameter_type: " << i_parameter_type <<
". is_array: " << b_is_array << endl;
496 TString parameter_name,
501 TString sql = TString::Format(
"select parameter_id, parameter_name, parameter_type "
503 "where lower(parameter_name) = lower('%s')",
504 parameter_name.Data());
505 TSQLStatement* stmt = db_server->Statement(sql);
508 if (!stmt->Process()) {
509 cout <<
"ERROR: getting a record with the parameter from 'parameter_' table has been failed" << endl;
517 if (!stmt->NextResultRow()) {
518 cout <<
"ERROR: the parameter with name '" << parameter_name <<
"' was not found" << endl;
523 parameter_id = stmt->GetInt(0);
524 int parameter_type = stmt->GetInt(2);
528 if (parameter_type != enum_parameter_type) {
529 cout <<
"ERROR: '" << parameter_name <<
"' parameter has not the same type (type = " << parameter_type
530 <<
", but " << enum_parameter_type <<
" used)" << endl;
static UniConnection * Open()
TSQLServer * GetSQLServer()
static int DeleteParameter(int parameter_id)
delete parameter from the database
static bool CheckAndGetParameterID(TSQLServer *db_server, TString parameter_name, enumValueType enum_parameter_type, int ¶meter_id)
static UniParameter * GetParameter(int parameter_id)
get parameter from the database
int SetParameterName(TString parameter_name)
set parameter name of the current parameter
void Print()
print information about current parameter
int SetIsArray(bool is_array)
set is array of the current parameter
static int PrintAll()
print all parameters
int SetParameterType(int parameter_type)
set parameter type of the current parameter
static UniParameter * CreateParameter(TString parameter_name, int parameter_type, bool is_array)
add new parameter to the database
static int CheckParameterExists(int parameter_id)
check parameter exists in the database: 1- true, 0 - false, <0 - database operation error