csqliteplugin.cpp csqliteplugin.h QSqlError QSettings QSqlQuery QMessageBox #include"csqliteplugin.h" #include<QSqlError> #include<QSettings> #include<QSqlQuery> #include<QMessageBox> boolcSQLitePlugin::connect() { QSettingssettings; m_db=QSqlDatabase::addDatabase("QSQLITE"); m_db.setHostName(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString()); m_db.setDatabaseName(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString()); return(open()); } boolcSQLitePlugin::init() { QSettingssettings; m_db=QSqlDatabase::addDatabase("QSQLITE"); m_db.setHostName(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString()); m_db.setDatabaseName(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString()); m_bConnected=m_db.open(); if(m_bConnected) { QStringListtables=m_db.tables(); if(tables.count()) { if(QMessageBox::question(0,"Tablesexist","Databasenotempty.\nExistingtableswillbedeleted.\nContinue?",QMessageBox::Yes|QMessageBox::No,QMessageBox::No)==QMessageBox::No) return(m_bConnected); } QSqlQueryquery(m_db); for(intz=0;z<tables.count();z++) query.exec(QString("DROPTABLE%1;").arg(tables.at(z))); if(!query.exec("CREATETABLEsettings(`var`VARCHAR(100)NOTNULL,`val`VARCHAR(100)NOTNULL)")) { m_szLastError=query.lastError().text(); m_db.close(); m_bConnected=false; return(m_bConnected); } if(!query.exec("INSERTINTOsettingsvalues('version','1.0');")) { m_szLastError=query.lastError().text(); m_db.close(); m_bConnected=false; return(m_bConnected); } } else m_szLastError=m_db.lastError().text(); return(m_bConnected); } boolcSQLitePlugin::open() { m_bConnected=m_db.open(); if(m_bConnected) { QSqlQueryquery(m_db); if(!query.exec("SELECT*FROMsettings")) { m_szLastError=query.lastError().text(); m_db.close(); m_bConnected=false; return(m_bConnected); } } else m_szLastError=m_db.lastError().text(); return(m_bConnected); } QStringcSQLitePlugin::lastError() { return(m_szLastError); } boolcSQLitePlugin::config() { /* cConfigDialogdlg; QSettingssettings; dlg.setHostname(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString()); dlg.setDatabase(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString()); dlg.setUserName(settings.value(QString("plugins/%1/userName").arg(pluginName())).toString()); dlg.setPassword(settings.value(QString("plugins/%1/password").arg(pluginName())).toString()); if(dlg.exec()==QDialog::Accepted) { m_db.close(); settings.setValue(QString("plugins/%1/hostName").arg(pluginName()),dlg.hostname()); settings.setValue(QString("plugins/%1/databaseName").arg(pluginName()),dlg.database()); settings.setValue(QString("plugins/%1/userName").arg(pluginName()),dlg.userName()); settings.setValue(QString("plugins/%1/password").arg(pluginName()),dlg.password()); m_db.setHostName(settings.value(QString("plugins/%1/hostName").arg(pluginName())).toString()); m_db.setDatabaseName(settings.value(QString("plugins/%1/databaseName").arg(pluginName())).toString()); m_db.setUserName(settings.value(QString("plugins/%1/userName").arg(pluginName())).toString()); m_db.setPassword(settings.value(QString("plugins/%1/password").arg(pluginName())).toString()); return(open()); } return(m_bConnected); */ return(true); }