QtLingo 1
QtLingo is an Application to make Qt Computer Translations easier
MySqlDbtModel Class Reference

SQL Database Table Model. More...

#include <MySqlDbtModel.h>

Inheritance diagram for MySqlDbtModel:

Public Member Functions

 MySqlDbtModel (MyLanguageModel *thisLanguageModel=nullptr, MyConstants *thisConstant=nullptr, QObject *parent=0)
 MySqlDbtModel. More...
 
 ~MySqlDbtModel ()
 ~MySqlDbtModel More...
 
bool createDataBaseConnection ()
 create DataBase Connection More...
 
bool isDbTable (const QString &thisTable)
 isDbTable More...
 
void setSqlDriver (const QString &thisDriver)
 setSqlDriver More...
 
QString getSqlDriver ()
 getSqlDriver More...
 
void setSqlTableName (const QString &thisTableName)
 setSqlTableName More...
 
QString getSqlTableName ()
 getSqlTableName More...
 
void setSqlHostName (const QString &thisHostName)
 setSqlHostName More...
 
QString getSqlHostName ()
 getSqlHostName More...
 
void setSqlUserName (const QString &thisUserName)
 setSqlUserName More...
 
QString getSqlUserName ()
 getSqlUserName More...
 
void setSqlPassword (const QString &thisPassword)
 setSqlPassword More...
 
QString getSqlPassword ()
 getSqlPassword More...
 
void setSqlDatabaseName (const QString &thisPassword)
 setSqlDatabaseName More...
 
QString getSqlDatabaseName ()
 getSqlDatabaseName More...
 
QString getConnectionName ()
 get Connection Name More...
 
void setConnectionName (const QString &thisConnectionName)
 set Connection Name More...
 
QString getRecordID ()
 get RecordID More...
 
void setRecordID (const QString &thisRecordID)
 set RecordID More...
 
bool runQuery (const QString &thisQuery)
 runQuery More...
 
bool moveDb (const QString &thisSourceFile, const QString &thisSourcePath, const QString &thisDestinationFolder)
 Move Db. More...
 
QString runProcces (const QString &thisExePath, const QString &thisArgument, bool isWait, int thisWaitTimeSec)
 run Procces More...
 
int getRunReturnCode ()
 get Run Return Code More...
 
void setDebugMessage (bool thisState)
 set Debug Message More...
 
bool getDebugMessage ()
 get Debug Message More...
 
void setMessage (const QString &thisMessage)
 setMessage More...
 

Public Attributes

MyLanguageModelmyLanguageModel
 myLanguageModel More...
 
MyConstantsmyConstants
 myConstants More...
 

Detailed Description

SQL Database Table Model.

Author
Jeffrey Scott Flesher

Definition at line 20 of file MySqlDbtModel.h.

Constructor & Destructor Documentation

◆ MySqlDbtModel()

MySqlDbtModel::MySqlDbtModel ( MyLanguageModel thisLanguageModel = nullptr,
MyConstants thisConstant = nullptr,
QObject *  parent = 0 
)

MySqlDbtModel.

Constructor. MySqlDbtModel.

Definition at line 7 of file MySqlDbtModel.cpp.

7 : QObject(parent), myLanguageModel(thisLanguageModel), myConstants(thisConstant)
8{
9}
MyConstants * myConstants
myConstants
Definition: MySqlDbtModel.h:28
MyLanguageModel * myLanguageModel
myLanguageModel
Definition: MySqlDbtModel.h:27

◆ ~MySqlDbtModel()

MySqlDbtModel::~MySqlDbtModel ( )

~MySqlDbtModel

Deconstructor. ~MySqlDbtModel.

Definition at line 14 of file MySqlDbtModel.cpp.

15{
16 #ifdef USE_SQL_FLAG
17 if (myDb.isOpen()) { myDb.close(); }
18 #endif
19}

Member Function Documentation

◆ createDataBaseConnection()

bool MySqlDbtModel::createDataBaseConnection ( )

create DataBase Connection

create DataBase Connection. createDataBaseConnection

Definition at line 251 of file MySqlDbtModel.cpp.

252{
253 setMessage("createDataBaseConnection");
254#ifdef USE_SQL_FLAG
255 // Make sure Drive is set
256 if (mySqlDriver == "NOTSET") { setSqlDriver(myConstants->MY_SQL_DEFAULT); }
257 QString theDb = getSqlDatabaseName();
258 // Database Driver
259 if (mySqlDriver == ":memory:")
260 {
261 myDb = QSqlDatabase::addDatabase("QSQLITE");
262 myDb.setDatabaseName(":memory:");
263 }
264 else
265 {
266 if (mySqlDriver == "QSQLITE" || mySqlDriver == "QSQLITE2")
267 {
268 // SQLite version 3 and SQLite version 2 Note: obsolete since Qt 5.14
269 if (theDb.contains(".db"))
270 {
272 {
273 qCritical() << "createDataBaseConnection new DB: " << theDb;
274 }
275 }
276 else
277 {
278 theDb = QString("%1%2%3.db").arg(myLanguageModel->mySetting->getAppDataLocation(), QDir::separator(), getSqlDatabaseName());
279 }
280 //
281 myDb = QSqlDatabase::addDatabase(mySqlDriver);
282 myDb.setDatabaseName(theDb);
283 // myDb.setHostName(getSqlHostName());
284 // myDb.setUserName(getSqlUserName());
285 // myDb.setPassword(getSqlPassword());
286 //
287 }
288 else if (mySqlDriver == "QDB2")
289 {
290 // IBM DB2 (version 7.1 and above)
291 myDb = QSqlDatabase::addDatabase(mySqlDriver, myConnectionName);
292 myDb.setHostName(getSqlHostName());
293 myDb.setDatabaseName(getSqlDatabaseName());
294 myDb.setUserName(getSqlUserName());
295 myDb.setPassword(getSqlPassword());
296 }
297 else if (mySqlDriver == "QIBASE")
298 {
299 // Borland InterBase
300 myDb = QSqlDatabase::addDatabase(mySqlDriver, myConnectionName);
301 myDb.setHostName(getSqlHostName());
302 myDb.setDatabaseName(getSqlDatabaseName());
303 myDb.setUserName(getSqlUserName());
304 myDb.setPassword(getSqlPassword());
305 }
306 else if (mySqlDriver == "QMYSQL" || mySqlDriver == "MARIADB")
307 {
308 // MySQL or MariaDB (version 5.0 and above)
309 myDb = QSqlDatabase::addDatabase(mySqlDriver, myConnectionName);
310 myDb.setHostName(getSqlHostName());
311 myDb.setDatabaseName(getSqlDatabaseName());
312 myDb.setUserName(getSqlUserName());
313 myDb.setPassword(getSqlPassword());
314 }
315 else if (mySqlDriver == "QOCI")
316 {
317 // Oracle Call Interface Driver
318 myDb = QSqlDatabase::addDatabase(mySqlDriver, myConnectionName);
319 myDb.setHostName(getSqlHostName());
320 myDb.setDatabaseName(getSqlDatabaseName());
321 myDb.setUserName(getSqlUserName());
322 myDb.setPassword(getSqlPassword());
323 }
324 else if (mySqlDriver == "QPSQL")
325 {
326 // PostgreSQL (versions 7.3 and above)
327 myDb = QSqlDatabase::addDatabase(mySqlDriver, myConnectionName);
328 myDb.setHostName(getSqlHostName());
329 myDb.setDatabaseName(getSqlDatabaseName());
330 myDb.setUserName(getSqlUserName());
331 myDb.setPassword(getSqlPassword());
332 }
333 else if (mySqlDriver == "QTDS")
334 {
335 // Sybase Adaptive Server - Note: obsolete since Qt 4.7
336 myDb = QSqlDatabase::addDatabase(mySqlDriver, myConnectionName);
337 myDb.setHostName(getSqlHostName());
338 myDb.setDatabaseName(getSqlDatabaseName());
339 myDb.setUserName(getSqlUserName());
340 myDb.setPassword(getSqlPassword());
341 }
342 } // end ! if (:memory:)
343 if (!myDb.open())
344 {
345 if(!QSqlDatabase::isDriverAvailable(mySqlDriver))
346 {
347 myLanguageModel->mySetting->showMessageBox(tr("Database SQL Driver is missing").toLocal8Bit(), tr("Install SQL").toLocal8Bit(), myLanguageModel->mySetting->Critical);
348 return false;
349 }
350 else
351 {
352 myLanguageModel->mySetting->showMessageBox(QString("%1: %2").arg(tr("Cannot open database"), myDb.lastError().text()).toLocal8Bit(), tr("Unable to establish a database connection").toLocal8Bit(), myLanguageModel->mySetting->Critical);
353 return false;
354 }
355 }
356 // Set Settings
359#endif
360 return true;
361} // end createDataBaseConnection
const QString MY_SQL_DB_NAME
MY_SQL_DB_NAME
Definition: MyConstants.h:21
const QString MY_SQL_DEFAULT
SQL_DEFAULT
Definition: MyConstants.h:18
const QString MY_SQL_DB_TYPE
MY_SQL_DB_TYPE
Definition: MyConstants.h:22
MyOrgSettings * mySetting
mySetting
bool isFileExists(const QString &thisFile)
File Functions.
@ Critical
Critical
Definition: MyOrgSettings.h:75
QString getAppDataLocation()
get AppData Location
QVariant showMessageBox(const QString &thisTitle, const QString &thisMessage, MyMessageTypes thisMessageType) const
show Message Box information, question, warning, critica
void writeSettings(const QString &thisSetting, const QString &thisValue)
write Settings
void setMessage(const QString &thisMessage)
setMessage
QString getSqlDatabaseName()
getSqlDatabaseName
QString getSqlPassword()
getSqlPassword
void setSqlDriver(const QString &thisDriver)
setSqlDriver
QString getSqlHostName()
getSqlHostName
QString getSqlUserName()
getSqlUserName

◆ getConnectionName()

QString MySqlDbtModel::getConnectionName ( )

get Connection Name

get Connection Name. getConnectionName

Definition at line 183 of file MySqlDbtModel.cpp.

184{
185 setMessage("getConnectionName");
186 return myConnectionName;
187}

◆ getDebugMessage()

bool MySqlDbtModel::getDebugMessage ( )

get Debug Message

get Debug Message. getDebugMessage

Definition at line 465 of file MySqlDbtModel.cpp.

466{
467 return isDebugMessage;
468}

◆ getRecordID()

QString MySqlDbtModel::getRecordID ( )

get RecordID

get Record ID. getRecordID

Definition at line 167 of file MySqlDbtModel.cpp.

168{
169 return myInsertID;
170}

◆ getRunReturnCode()

int MySqlDbtModel::getRunReturnCode ( )

get Run Return Code

get Run eturn Code. getRunReturnCode

Definition at line 449 of file MySqlDbtModel.cpp.

450{
451 return myRunReturnCode;
452}

◆ getSqlDatabaseName()

QString MySqlDbtModel::getSqlDatabaseName ( )

getSqlDatabaseName

get Sql Database Name. getSqlDatabaseName

Definition at line 131 of file MySqlDbtModel.cpp.

132{
133 setMessage("getSqlDatabaseName");
134 return myDatabaseName;
135}

◆ getSqlDriver()

QString MySqlDbtModel::getSqlDriver ( )

getSqlDriver

get Sql Driver. getSqlDriver

Definition at line 59 of file MySqlDbtModel.cpp.

60{
61 setMessage("getSqlDriver");
62 return mySqlDriver;
63}

◆ getSqlHostName()

QString MySqlDbtModel::getSqlHostName ( )

getSqlHostName

get Sql Host Name. getSqlHostName

Definition at line 95 of file MySqlDbtModel.cpp.

96{
97 setMessage("getSqlHostName");
98 return myHostName;
99}

◆ getSqlPassword()

QString MySqlDbtModel::getSqlPassword ( )

getSqlPassword

get Sql Password. getSqlPassword

Definition at line 149 of file MySqlDbtModel.cpp.

150{
151 setMessage("getSqlPassword");
152 return myPassword;
153}

◆ getSqlTableName()

QString MySqlDbtModel::getSqlTableName ( )

getSqlTableName

get Sql Table Name. getSqlTableName

Definition at line 77 of file MySqlDbtModel.cpp.

78{
79 setMessage("getSqlTableName");
80 return myTableName;
81}

◆ getSqlUserName()

QString MySqlDbtModel::getSqlUserName ( )

getSqlUserName

get Sql User Name. getSqlUserName

Definition at line 113 of file MySqlDbtModel.cpp.

114{
115 setMessage("getSqlUserName");
116 return myUserName;
117}

◆ isDbTable()

bool MySqlDbtModel::isDbTable ( const QString &  thisTable)

isDbTable

is Db Table. isDbTable

Definition at line 24 of file MySqlDbtModel.cpp.

25{
26 setMessage("isDatabase");
27 #ifdef USE_SQL_FLAG
28 QStringList theTables = myDb.tables();
29 if (theTables.contains(thisTable, Qt::CaseInsensitive)) { return true; }
30 else { return false; }
31 #else
32 return true;
33 #endif
34}

◆ moveDb()

bool MySqlDbtModel::moveDb ( const QString &  thisSourceFile,
const QString &  thisSourcePath,
const QString &  thisDestinationFolder 
)

Move Db.

move Db.

moveDb

Definition at line 390 of file MySqlDbtModel.cpp.

391{
392 setMessage("moveDb");
393#ifdef USE_SQL_FLAG
394 QFile file(QString("%1%2%3").arg(thisSourcePath, QDir::separator(), thisSourceFile));
395 //
396 QString theNewDatabaseName = QString("%1%2%3").arg(thisDestinationFolder, QDir::separator(), thisSourceFile);
397 //
398 if (myLanguageModel->mySetting->isFileExists(theNewDatabaseName))
399 {
400 if (!myLanguageModel->mySetting->questionYesNo("Overwrite Database", "Are you sure you want to overwrite existing Database?"))
401 {
402 return true;
403 }
404 }
405 //
406 if (myDb.isOpen()) { myDb.close(); }
407 if (file.rename(theNewDatabaseName))
408 {
409 myDatabaseName = theNewDatabaseName;
411 }
412 else { return true; }
413#else
414 return true;
415#endif
416}
bool questionYesNo(const char *thisTitle, const char *thisQuestion) const
question Yes No
bool createDataBaseConnection()
create DataBase Connection

◆ runProcces()

QString MySqlDbtModel::runProcces ( const QString &  thisExePath,
const QString &  thisArgument,
bool  isWait,
int  thisWaitTimeSec 
)

run Procces

run Procces given exe path, argument, and if you want to wait and how long, in both cases this is a blocking call and will wait till finished and return value. runProcces

Definition at line 422 of file MySqlDbtModel.cpp.

423{
424 QProcess *thisProcess = new QProcess(this);
425 if (isWait)
426 {
427 thisProcess->start(thisExePath, QStringList() << thisArgument);
428 // default wait time 30 sec
429 if(!thisProcess->waitForStarted()) { qWarning() << tr("runProcces cannot start process"); }
430 // wait time
431 int waitTime = thisWaitTimeSec * 1000; // 60000 = 60 sec divide by 1000
432 // now wait
433 if (!thisProcess->waitForFinished(waitTime)) { qWarning() << tr("runProcces timeout .."); }
434 }
435 else
436 {
437 thisProcess->start(thisExePath, QStringList() << thisArgument);
438 thisProcess->waitForFinished();
439 }
440 //
441 thisProcess->setProcessChannelMode(QProcess::MergedChannels);
442 myRunReturnCode = thisProcess->exitCode();
443 return QString(thisProcess->readAllStandardOutput().simplified());
444}

◆ runQuery()

bool MySqlDbtModel::runQuery ( const QString &  thisQuery)

runQuery

Set myInsertID, returns true or false. runQuery.

Definition at line 366 of file MySqlDbtModel.cpp.

367{
368 setMessage("runQuery=" + thisQuery);
369 #ifdef USE_SQL_FLAG
370 QSqlQuery theQuery;
371 if (theQuery.exec(thisQuery))
372 {
373 setRecordID(theQuery.lastInsertId().toString());
374 return true;
375 }
376 else
377 {
378 qCritical() << "Error running Query: " << thisQuery << theQuery.lastError().text() << ", SqLite error code:" << theQuery.lastError();
379 setRecordID("-1");
380 return false;
381 }
382 #else
383 return true;
384 #endif
385}
void setRecordID(const QString &thisRecordID)
set RecordID

◆ setConnectionName()

void MySqlDbtModel::setConnectionName ( const QString &  thisConnectionName)

set Connection Name

set Connection Name. setConnectionName

Definition at line 158 of file MySqlDbtModel.cpp.

159{
160 setMessage("setConnectionName");
161 myConnectionName = thisConnectionName;
162}

◆ setDebugMessage()

void MySqlDbtModel::setDebugMessage ( bool  thisState)

set Debug Message

set Debug Message. setDebugMessage

Definition at line 457 of file MySqlDbtModel.cpp.

458{
459 isDebugMessage = thisState;
460}

◆ setMessage()

void MySqlDbtModel::setMessage ( const QString &  thisMessage)

setMessage

set Message. setMessage

Definition at line 473 of file MySqlDbtModel.cpp.

474{
475 if (isDebugMessage)
476 {
477 qDebug() << thisMessage;
478 //std::cout << thisMessage.toStdString() << std::endl;
479 }
480}

◆ setRecordID()

void MySqlDbtModel::setRecordID ( const QString &  thisRecordID)

set RecordID

set Record ID. setRecordID

Definition at line 175 of file MySqlDbtModel.cpp.

176{
177 myInsertID = thisRecordID;
178}

◆ setSqlDatabaseName()

void MySqlDbtModel::setSqlDatabaseName ( const QString &  thisPassword)

setSqlDatabaseName

set Sql Database Name. setSqlDatabaseName

Definition at line 122 of file MySqlDbtModel.cpp.

123{
124 setMessage("setSqlDatabaseName");
125 myDatabaseName = thisPassword;
126}

◆ setSqlDriver()

void MySqlDbtModel::setSqlDriver ( const QString &  thisDriver)

setSqlDriver

set Sql Driver setSqlDriver(":memory:");. setSqlDriver

Definition at line 192 of file MySqlDbtModel.cpp.

193{
194 setMessage("setSqlDriver");
195#ifdef USE_SQL_FLAG
196 QString theDriver = thisDriver;
197 if (theDriver.length() == 0) { theDriver = myConstants->MY_SQL_DEFAULT; }
198 // Check for Database memory setting
199 // ui->checkBoxSettingsMemory->isChecked() || combobox
200 // Database Driver
201 if (theDriver == ":memory:")
202 {
203 // SQLite version 3 SQLite version 2 Note: obsolete since Qt 5.14
204 mySqlDriver = theDriver;
205 }
206 else if (theDriver == "QSQLITE" || theDriver == "QSQLITE2")
207 {
208 // SQLite version 3 SQLite version 2 Note: obsolete since Qt 5.14
209 mySqlDriver = theDriver;
210 }
211 else if (theDriver == "QMYSQL" || theDriver == "MARIADB")
212 {
213 // MySQL or MariaDB (version 5.0 and above)
214 mySqlDriver = theDriver;
215 }
216 else if (theDriver == "QPSQL")
217 {
218 // PostgreSQL (versions 7.3 and above)
219 mySqlDriver = theDriver;
220 }
221 else if (theDriver == "QDB2")
222 {
223 // IBM DB2 (version 7.1 and above)
224 mySqlDriver = theDriver;
225 }
226 else if (theDriver == "QIBASE")
227 {
228 // Borland InterBase
229 mySqlDriver = theDriver;
230 }
231 else if (theDriver == "QOCI")
232 {
233 // Oracle Call Interface Driver
234 mySqlDriver = theDriver;
235 }
236 else if (theDriver == "QTDS")
237 {
238 // Sybase Adaptive Server - Note: obsolete since Qt 4.7
239 mySqlDriver = theDriver;
240 }
241 else
242 {
243 mySqlDriver = theDriver;
244 }
245#endif
246} // end setSqlDriver

◆ setSqlHostName()

void MySqlDbtModel::setSqlHostName ( const QString &  thisHostName)

setSqlHostName

set Sql Host Name. setSqlHostName

Definition at line 86 of file MySqlDbtModel.cpp.

87{
88 setMessage("setSqlHostName");
89 myHostName = thisHostName;
90}

◆ setSqlPassword()

void MySqlDbtModel::setSqlPassword ( const QString &  thisPassword)

setSqlPassword

set Sql Password. setSqlPassword

Definition at line 140 of file MySqlDbtModel.cpp.

141{
142 setMessage("setSqlPassword");
143 myPassword = thisPassword;
144}

◆ setSqlTableName()

void MySqlDbtModel::setSqlTableName ( const QString &  thisTableName)

setSqlTableName

set Sql Table Name. setSqlTableName

Definition at line 68 of file MySqlDbtModel.cpp.

69{
70 setMessage("setSqlTableName");
71 myTableName = thisTableName;
72}

◆ setSqlUserName()

void MySqlDbtModel::setSqlUserName ( const QString &  thisUserName)

setSqlUserName

set Sql User Name. setSqlUserName

Definition at line 104 of file MySqlDbtModel.cpp.

105{
106 setMessage("setSqlUserName");
107 myUserName = thisUserName;
108}

Member Data Documentation

◆ myConstants

MyConstants* MySqlDbtModel::myConstants

myConstants

All Constants in one class

Definition at line 28 of file MySqlDbtModel.h.

◆ myLanguageModel

MyLanguageModel* MySqlDbtModel::myLanguageModel

myLanguageModel

Localization Model.

Definition at line 27 of file MySqlDbtModel.h.


The documentation for this class was generated from the following files: