// 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();
{
// 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
}
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;
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())
{
}
}
while (!done);
+ }
+ else
+ {
+ fullName = "Administrator";
+ login = "admin";
+ loggedInUID = 1;
+ }
QString s = QString("User: %1 (%2)").arg(fullName).arg(login);
scmWidget->username->setText(s);
// 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 (?, ?, ?)");
}
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())
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())
std::vector<VendorType> 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())
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
// ((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();
// 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);