Добрый день.
Есть вот такой код: по нажатию на кнопку код падает.
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
dbPostgres = &QSqlDatabase::addDatabase("QPSQL");
dbPostgres->setHostName("localhost");
dbPostgres->setDatabaseName("information_system");
dbPostgres->setUserName("postgres");
dbPostgres->setPassword("p@ssw0rd");
bool ok = dbPostgres->open();
ui->setupUi(this);
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(addNewUser()));
setListOfTables();
setListOfUsers();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::setListOfTables()
{
QSqlQuery *queryGetTables = new QSqlQuery(*dbPostgres);
queryGetTables->exec("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'");
while(queryGetTables->next()){
ui->textBrowser->append(queryGetTables->value(0).toString());
}
}
void MainWindow::setListOfUsers()
{
QSqlQuery *queryGetUsers = new QSqlQuery(*dbPostgres);
queryGetUsers->exec("SELECT usename FROM pg_catalog.pg_user");
auto k=0;
while(queryGetUsers->next()){
ui->comboBox->insertItem(k,queryGetUsers->value(0).toString());
k++;
}
}
void MainWindow::addNewUser()
{
QSqlQuery *addNewUsers = new QSqlQuery(*dbPostgres);
QString currentEditedUser = ui->lineEdit->text();
if (currentEditedUser == ""){
QMessageBox::information(this,"Information","Can't create user without name",QMessageBox::Ok);
return;
}
databaseUsers->append(currentEditedUser);
addNewUsers->exec("CREATEUSER " + currentEditedUser);
}
Функции выборки пользователей и таблиц отрабатывают, а вот по нажатию на кнопу происходит падение.