製品のリスト(IE Make、Model、Year Search)に動的な装備またはカテゴリオプションリストを実装する方法を学ぶために、作成しようとしている簡単なアプリを作成しました。これを行う簡単な方法を見つけたと思ったのですが、思ったより難しいことがわかりました。装備オプションに必要なコンボ ボックスを動的に作成しましたが、装備グループの ID を取得して、それを「where 句」の一部として新しいクエリで使用する方法がわかりません。mssql dbへのクエリ内で変数をintとして使用するためのqtでの最良の方法は何ですか?
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtCore>
#include <QtGui>
#include <QtSql>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("ROBERT-PC");
db.setDatabaseName("mydsn32");
if(!db.open())
{
qDebug() << "Could Not Open";
}
else
{
QVBoxLayout *vbox = new QVBoxLayout();
qDebug() << "Open, and now closing";
QSqlQuery qry;
if(qry.exec("SELECT * FROM [BOBs].[dbo].[FitmentTagGroup]"))
{
qDebug() << "Query Was Opened";
while(qry.next())
{
QString combBoxName = qry.value(1).toString() + "CombBox";
int combBoxID = qry.value(0).toInt();
QLabel *combBoxNameLbl = new QLabel();
combBoxNameLbl->setText(combBoxName);
QComboBox *combBox = new QComboBox();
QSqlQuery qry2;
if(qry2.exec("SELECT * FROM [BOBs].[dbo].[FitmentTag] WHERE FitmentTagGroupID='1'"))
{
while(qry2.next())
{
qDebug() << qry2.value(2).toString();
}
}
else
{
qDebug() << "Query Could Not Open\n\t" << qry2.lastError();
}
vbox->addWidget(combBoxNameLbl);
vbox->addWidget(combBox);
}
}
else
{
qDebug() << "Query Could Not Open\n\t" << qry.lastError();
}
model = new QSqlQueryModel();
db.close();
QFrame *mainFrame = new QFrame();
mainFrame->setLayout(vbox);
setCentralWidget(mainFrame);
}
}