-
Notifications
You must be signed in to change notification settings - Fork 0
/
DialogUploadSQL.cpp
140 lines (130 loc) · 4.46 KB
/
DialogUploadSQL.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/**
* @file DialogUploadSQL.cpp
* @author Anil Kumar
* @date 17-11-2017
* @brief This DialogUploadSQL class, It's responsible for import and export data of select database.
*/
#include "DialogUploadSQL.h"
#include "ui_DialogUploadSQL.h"
/**
* @brief DialogUploadSQL::DialogUploadSQL
* @param parent
* @param isexport
* @param db_
*/
DialogUploadSQL::DialogUploadSQL(QWidget *parent, bool isexport, QSqlDatabase *db_) :
QDialog(parent),
ui(new Ui::DialogUploadSQL)
{
ui->setupUi(this);
dba = db_;
is_export = isexport;
m_fileName="";
if(is_export)
{
//ui->pushButton_browse->hide();
file_sql=new QLabel(dba->databaseName()+".sql");
file_sql->setTextInteractionFlags(Qt::TextEditorInteraction);
ui->horizontalLayout->addWidget(file_sql);
ui->pushButton_Upload->setText("Export");
}
}
/**
* @brief DialogUploadSQL::~DialogUploadSQL
*/
DialogUploadSQL::~DialogUploadSQL()
{
delete ui;
}
/**
* @brief DialogUploadSQL::on_pushButton_browse_clicked
*/
void DialogUploadSQL::on_pushButton_browse_clicked()
{
if(is_export)
{
m_fileName= QFileDialog::getExistingDirectory(this, tr("Open Directory"),
QDir::homePath(),
QFileDialog::ShowDirsOnly
| QFileDialog::DontResolveSymlinks);
}
else
m_fileName = QFileDialog::getOpenFileName(this, tr("Open File"), QDir::homePath(),tr("( *.sql)"));
ui->lineEdit->setText(m_fileName);
}
/**
* @brief DialogUploadSQL::on_pushButton_Upload_clicked
*/
void DialogUploadSQL::on_pushButton_Upload_clicked()
{
ui->label_status->clear();
ui->label_status->setText("Please wait..... ");
PRINT(__FUNCTION__)<<dba->databaseName()<<dba->userName()<<dba->password()<<m_fileName;
if(ui->lineEdit->text()!="")
{
if(is_export)
{
PRINT(__FUNCTION__)<<"Exporting to "<<ui->lineEdit->text()<<"/"<<file_sql->text();
ui->label_status->setText("Please wait..... ");
QString lCommand("mysqldump -u"+dba->userName()+" -p"+dba->password()+" "+dba->databaseName()+">" +m_fileName+"/"+file_sql->text());
system(lCommand.toStdString().c_str());
PRINT(__FUNCTION__)<<"Exported successfully";
emit refresh();
this->close();
}
else
{
QString lCommand("mysql -u"+dba->userName()+" -p"+dba->password()+" "+dba->databaseName()+" -e \"source " + m_fileName + "\"");
system(lCommand.toStdString().c_str());
PRINT(__FUNCTION__)<<"Imported successfully";
emit refresh();
this->close();
///////////////// by reading each line /////////////////////////////////////////////
/*QFile Query_string(m_fileName);
int i=0;
if (Query_string.open(QIODevice::ReadOnly))
{
QByteArray query_line;
QTextStream in(&Query_string);
while (!in.atEnd())
{
query_line.clear();
query_line.append( in.readLine());
if(query_line=="")
{
}
else if(query_line[0]=='/' && query_line[1]=='*')
{
}
else
{
QSqlQuery query;
QString str=query_line;
bool ex=query.exec(str);
if(!ex)
{
PRINT(__FUNCTION__)<<query_line<<query.lastError().text();
i++;
}
}
}
}
if(i==0)
{
ui->label_status->setText("<font color =green>Uploaded !!</font>");
emit refresh();
this->close();
}
else
ui->label_status->setText("<font color =red>Not Uploaded Successfully !!</font>");*/
////////////////////////////////////////////////////////////////////////////////////////////////
}
}
else
{
if(is_export)
ui->label_status->setText("<font color =red>folder not selected !!</font>");
else
ui->label_status->setText("<font color =red>Not sql file founded !!</font>");
}
}