السلام عليكم و رحمة الله
لدي هذه ال SLOT:
void ConfSetup::setNextPage()
{
int currentIndex = ui->stackedWidget->currentIndex();
switch(currentIndex)
{
case 1:
{
ui->stackedWidget->setCurrentIndex(currentIndex + 1);
}
break;
case 2:
{
db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("mysql");
db.setHostName(ui->serverEdit->text());
db.setPort(ui->portEdit->text().toInt());
db.setUserName(ui->userEdit->text());
db.setPassword(ui->passwordEdit->text());
if(!db.open())
{
QMessageBox::critical(0, trUtf8("خطأ في الدخول"), trUtf8("إسم المستخدم أو كلمة السر خاطئة"));
}
else
{
ui->stackedWidget->setCurrentIndex(currentIndex + 1);
}
}
break;
case 3:
{
QSqlQuery query;
query.prepare("SELECT user FROM user WHERE user=:user");
query.bindValue(":user", ui->userDbEdit->text());
query.exec();
if(query.numRowsAffected() > 0)
QMessageBox::critical(0, trUtf8("خطأ في تسجيل إسم مستخدم"), trUtf8("إسم المستخدم موجود من قبل"));
else
{
// qDebug("%s" , query.executedQuery().toStdString().c_str());
qDebug() << db.databaseName();//.isOpen();
qDebug() << query.lastError();
qDebug("%s" , query.lastQuery().toStdString().c_str());
ui->stackedWidget->setCurrentIndex(currentIndex + 1);
}
}
break;
case 4:
{
QSqlQuery query;
query.prepare("SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME=:database");
query.bindValue(":database", ui->dbNameEdit->text());
query.exec();
if(query.numRowsAffected() == 1)
QMessageBox::critical(0, trUtf8("خطأ في إنشاء قاعدة بيانات"), trUtf8("توجد قاعدة بيانات بنفس هذا الإسم"));
else
ui->stackedWidget->setCurrentIndex(currentIndex + 1);
}
break;
case 5:
{
QSqlQuery query;
query.prepare("INSERT INTO Users(User, Password)" \
"VALUES(:user, :password)");
query.bindValue(":user", ui->userEdit->text());
query.bindValue(":password", ui->passwordEdit->text());
query.exec();
if(query.numRowsAffected() != 1)
QMessageBox::critical(0, trUtf8("خطأ في إنشاء قاعدة بيانات"), trUtf8("توجد قاعدة بيانات بنفس هذا الإسم"));
else
ui->stackedWidget->setCurrentIndex(currentIndex + 1);
}
break;
}
// ui->comboBox->addItem(ui->userDbEdit->text());
// ui->lineEdit->setText(addSlashes(ui->slashesEdit->text()));
}المشكلة أنه في case 3 دائما الإستعلام يرجع قيمة 1- مما يعني أن الإتسعلام لم ينجح، تأكدت من أن الإتصال مغتوح و أن قاعدة البيانات المختارة صحيحة، رغم ذلك يرجع قيمة سالبة، هل من تنفسير لذلك؟


