私は、詳細を提供し、アプリケーションにログインし、データベースから詳細を取得する簡単なqtアプリケーションを作成しています。主に2つのフォーム(MainWindowとDialog)データベース接続を取得するために書かれています! 私はDBWindowクラスを使用して、MainWindowフォームから詳細を入力してアプリケーションにログインしました!私はMainWindowフォームで開いた接続を維持する方法を知らず、それを使ってダイアログフォームのテーブルビューにデータを取得します。Qtを使用してsevaralフォームのための共通データベース接続を作成する
public:
QSqlDatabase mydb;
bool connOpen(QString uname,QString pword,QString ip,int port,QString dbname){
mydb=QSqlDatabase::addDatabase("QOCI","MyDB");
mydb.setUserName(uname);
mydb.setPassword(pword);
mydb.setHostName(ip);
mydb.setPort(port);
mydb.setDatabaseName(dbname);
mydb.open();
return true;
}
MainWindow.cppが
void MainWindow::on_pushButton_clicked()
{
DBconnection con;
if(con.connOpen(ui->lineEdit->text(),ui->lineEdit_2->text(),ui->lineEdit_3->text(),ui->lineEdit_4->text().toInt(),ui->lineEdit_5->text())){
Dialog dialog1;
dialog1.setModal(true);
dialog1.exec();
}
}
Dialog.cpp(正常作動)(正常作動)
DBconnection.hを(次のように
mycodeであります動作していません)
void Dialog::on_pushButton_clicked()
{
QSqlQueryModel *modal = new QSqlQueryModel();
con.connOpen();
QSqlQuery* qry=new QSqlQuery(con.mydb);
qry->prepare("select NAME FROM TEST1");
qry->exec();
modal->setQuery(*qry);
ui->tableView->setModel(modal);
}
私はメインウィンドウのフォームからの接続からダイアログ形式でtablewidgetにデータを取得できるように、どのように私は私のコードを調整することができますか?
に関連したものに外観を持っている場合がありますhttps://docstore.mik.ua/orelly/linux/sql/ch13_02.htmあなたがしたいです同じオブジェクトを使用するので、CスタイルのプログラミングではなくC++のOOPを使用してください。 –