X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmainwin.cpp;fp=src%2Fmainwin.cpp;h=c360a4eaa7a89ad6186716904f5022180a71a781;hb=3d155f8bff56495df9ae70aa75f3a43ce5d83478;hp=fe7931f6e6b7964cda186a3e8d17a187fa23c243;hpb=6df1a447a1fa1b9e51fd177a806f910813657b09;p=schematic diff --git a/src/mainwin.cpp b/src/mainwin.cpp index fe7931f..c360a4e 100644 --- a/src/mainwin.cpp +++ b/src/mainwin.cpp @@ -106,22 +106,31 @@ MainWindow::MainWindow(): aboutWin(new AboutWindow(this)), // Finally, set up database connection - db = QSqlDatabase::addDatabase("QMYSQL"); +// db = QSqlDatabase::addDatabase("QMYSQL"); + db = QSqlDatabase::addDatabase("QODBC"); bool ok = false; // Prime the SQL Settings dialog (in case we need it) SQLSettingsDialog sqlSettings; - sqlSettings.edit1->setText(dbHostName); - sqlSettings.edit2->setText(dbName); - sqlSettings.edit3->setText(dbUserName); - sqlSettings.edit4->setText(dbPassword); - + sqlSettings.edit1->setText(dbDriver); + sqlSettings.edit2->setText(dbHostName); + sqlSettings.edit3->setText(dbName); + sqlSettings.edit4->setText(dbUserName); + sqlSettings.edit5->setText(dbPassword); + +#if 0 +db = QSqlDatabase::addDatabase("QODBC"); +db.setDatabaseName("Driver={MySQL ODBC 5.1 Driver};DATABASE=agp-dbserver01;"); +db.setUserName("xcdr"); +db.setPassword("xcdr"); +#endif do { // Set up the DB connection with saved settings + QString odbc = QString("DRIVER={%1};DATABASE=%2;").arg(dbDriver).arg(dbName); db.setHostName(dbHostName); - db.setDatabaseName(dbName); + db.setDatabaseName(odbc); db.setUserName(dbUserName); db.setPassword(dbPassword); ok = db.open(); @@ -136,10 +145,11 @@ MainWindow::MainWindow(): aboutWin(new AboutWindow(this)), { // User thinks this will work (hit OK button), so prime the variables // for the next attempt - dbHostName = sqlSettings.edit1->text(); - dbName = sqlSettings.edit2->text(); - dbUserName = sqlSettings.edit3->text(); - dbPassword = sqlSettings.edit4->text(); + dbDriver = sqlSettings.edit1->text(); + dbHostName = sqlSettings.edit2->text(); + dbName = sqlSettings.edit3->text(); + dbUserName = sqlSettings.edit4->text(); + dbPassword = sqlSettings.edit5->text(); } else return; // User cancelled the dialog, so quit @@ -147,6 +157,14 @@ MainWindow::MainWindow(): aboutWin(new AboutWindow(this)), } while (!ok); + // Check to see how many users are in the system; if less than 2, we don't do a login + QSqlQuery query; + query.prepare("SELECT COUNT(*) FROM User"); + query.exec(); + query.next(); + + if (query.value(0).toInt() > 1) + { // Do Login dialog LoginDialog loginDlg; bool done = false; @@ -160,11 +178,20 @@ MainWindow::MainWindow(): aboutWin(new AboutWindow(this)), done = true; else { +#if 0 // Search DB for this username/login pair QSqlQuery query("SELECT UID, name, login FROM User WHERE Login=? AND Password=?"); query.addBindValue(loginDlg.edit1->text()); query.addBindValue(loginDlg.edit2->text()); query.exec(); +#else + // Search DB for this username/login pair + QSqlQuery query; + query.prepare("SELECT UID, name, login FROM User WHERE Login=? AND Password=?"); + query.addBindValue(loginDlg.edit1->text()); + query.addBindValue(loginDlg.edit2->text()); + query.exec(); +#endif while (query.next()) { @@ -177,6 +204,13 @@ MainWindow::MainWindow(): aboutWin(new AboutWindow(this)), } } while (!done); + } + else + { + fullName = "Administrator"; + login = "admin"; + loggedInUID = 1; + } QString s = QString("User: %1 (%2)").arg(fullName).arg(login); scmWidget->username->setText(s); @@ -230,7 +264,8 @@ void MainWindow::HandleNewVendorDialog(void) // Presumably, the user has given us good data, so we try to populate the // database with this new vendor data. - QSqlQuery query1("INSERT INTO VALUES (?, ?, ?)"); + QSqlQuery query; + query.prepare("INSERT INTO VALUES (?, ?, ?)"); } @@ -238,7 +273,8 @@ void MainWindow::HandleNewVendorDialog(void) void MainWindow::FillVendorLevelCombo(QComboBox * combo) { - QSqlQuery query("SELECT VLID, Description FROM VendorLevel"); + QSqlQuery query; + query.prepare("SELECT VLID, Description FROM VendorLevel"); query.exec(); while (query.next()) @@ -253,7 +289,8 @@ void MainWindow::FillVendorLevelCombo(QComboBox * combo) void MainWindow::FillContactTypeCombo(QComboBox * combo) { - QSqlQuery query("SELECT CTID, Description FROM ContactType"); + QSqlQuery query; + query.prepare("SELECT CTID, Description FROM ContactType"); query.exec(); while (query.next()) @@ -271,7 +308,8 @@ void MainWindow::FillVendorClassList(QListWidget * list) std::vector groupList; // Pull in definitions from DB for Vendor Classes/Groups - QSqlQuery query1("SELECT vgid, description FROM VendorGroup ORDER BY seqNo"); + QSqlQuery query1; + query1.prepare("SELECT vgid, description FROM VendorGroup ORDER BY seqNo"); query1.exec(); while (query1.next()) @@ -282,18 +320,19 @@ void MainWindow::FillVendorClassList(QListWidget * list) groupList.push_back(v); } - QSqlQuery query2("SELECT vtid, vgid, description FROM VendorType ORDER BY seqNo"); - query2.exec(); +// QSqlQuery query2; + query1.prepare("SELECT vtid, vgid, description FROM VendorType ORDER BY seqNo"); + query1.exec(); int previousID = -1, groupListIndex = 0; QListWidgetItem * item; - while (query2.next()) + while (query1.next()) { // VendorType v; - int vtid = query2.value(0).toInt(); - int vgid = query2.value(1).toInt(); - QString description = query2.value(2).toString(); + int vtid = query1.value(0).toInt(); + int vgid = query1.value(1).toInt(); + QString description = query1.value(2).toString(); // Check to see if we need to insert new header yet. // If we're not still in same group, push the next group header into the list @@ -327,6 +366,7 @@ void MainWindow::ReadSettings(void) // ((TTEdit *)qApp)->charWnd->resize(size); // ((TTEdit *)qApp)->charWnd->move(pos); + dbDriver = settings.value("dbDriver", "myodbc-5.1").toString(); dbHostName = settings.value("dbHostName", "localhost").toString(); dbName = settings.value("dbName", "schematic").toString(); dbUserName = settings.value("dbUserName", "scm_user").toString(); @@ -342,6 +382,7 @@ void MainWindow::WriteSettings(void) // settings.setValue("charWndPos", ((TTEdit *)qApp)->charWnd->pos()); // settings.setValue("charWndSize", ((TTEdit *)qApp)->charWnd->size()); + settings.setValue("dbDriver", dbDriver); settings.setValue("dbHostName", dbHostName); settings.setValue("dbName", dbName); settings.setValue("dbUserName", dbUserName);