前回はデーターベースにアクセスができないことを取り上げたが、今回は、ユーザー名及びパスワードを直接入力した値で使用することで、データーベースとのアクセスが加納となった。また、ユーザー管理用のテーブルを用意し、データーの有無で認証する方法なら目標となる形に近い形になることが可能にした。しかしながら、MySQLサーバー側で認証するわけではないので、達成感が少し萎えている。
まず、ユーザー登録つまり、insert文の実行とselect文の実行を試みた。後者は、ユーザー認証の際に使用した方法を用い入れば、容易に作業が進み、前者は、後者の応用で可能にした。
ユーザー管理の一覧表には、ユーザーIDとともに編集と削除ボタンを配置する形にすることにしたが、なかなかうまくいかず、以下の方法で可能にした。
do{
//Result->relative(i);
if(Result->getString(2)!=""){
QTableWidgetItem *item_1=new QTableWidgetItem(Result->getString(1).c_str());
QTableWidgetItem *item_2=new QTableWidgetItem(Result->getString(2).c_str());
ui->tableWidget->setItem(i,0,item_1);
ui->tableWidget->setItem(i,1,item_2);
pwidget=new QWidget();
PushButton_4=new QPushButton("編集");
PushButton_5=new QPushButton("削除");
HLayout=new QHBoxLayout(pwidget);
HLayout->addWidget(PushButton_4);
HLayout->addWidget(PushButton_5);
HLayout->setAlignment(Qt::AlignCenter);
HLayout->setContentsMargins(0,0,0,0);
pwidget->setLayout(HLayout);
ui->tableWidget->setCellWidget(i,2,pwidget);
ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);
ui->tableWidget->setSelectionMode(QTableWidget::ContiguousSelection);
ui->tableWidget->setSelectionBehavior(QTableWidget::SelectRows);
i=i+1;
connect(PushButton_4,SIGNAL(clicked()),this,SLOT(on_PushButton_4_clicked()));
}
}while(Result->next());
do~whileを用いればselect文で検索されたすべてのデータを表示することができた。ちなみにwhile文だと2番目以降のデータのみが表示される。
今後の課題は、設置したボタンにイベントを追加することです。例えば、クリックしたら編集画面が表示され、選択行のデータが表示されるといったものです。
編集画面の表示はうまくいくのですが、選択行のデータ表示までは至りませんでした。
まず、ユーザー登録つまり、insert文の実行とselect文の実行を試みた。後者は、ユーザー認証の際に使用した方法を用い入れば、容易に作業が進み、前者は、後者の応用で可能にした。
ユーザー管理の一覧表には、ユーザーIDとともに編集と削除ボタンを配置する形にすることにしたが、なかなかうまくいかず、以下の方法で可能にした。
do{
//Result->relative(i);
if(Result->getString(2)!=""){
QTableWidgetItem *item_1=new QTableWidgetItem(Result->getString(1).c_str());
QTableWidgetItem *item_2=new QTableWidgetItem(Result->getString(2).c_str());
ui->tableWidget->setItem(i,0,item_1);
ui->tableWidget->setItem(i,1,item_2);
pwidget=new QWidget();
PushButton_4=new QPushButton("編集");
PushButton_5=new QPushButton("削除");
HLayout=new QHBoxLayout(pwidget);
HLayout->addWidget(PushButton_4);
HLayout->addWidget(PushButton_5);
HLayout->setAlignment(Qt::AlignCenter);
HLayout->setContentsMargins(0,0,0,0);
pwidget->setLayout(HLayout);
ui->tableWidget->setCellWidget(i,2,pwidget);
ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);
ui->tableWidget->setSelectionMode(QTableWidget::ContiguousSelection);
ui->tableWidget->setSelectionBehavior(QTableWidget::SelectRows);
i=i+1;
connect(PushButton_4,SIGNAL(clicked()),this,SLOT(on_PushButton_4_clicked()));
}
}while(Result->next());
do~whileを用いればselect文で検索されたすべてのデータを表示することができた。ちなみにwhile文だと2番目以降のデータのみが表示される。
今後の課題は、設置したボタンにイベントを追加することです。例えば、クリックしたら編集画面が表示され、選択行のデータが表示されるといったものです。
編集画面の表示はうまくいくのですが、選択行のデータ表示までは至りませんでした。
図1:ユーザー認証のウィジェットとです。
図2:メインメニューになります。
図3:設定ボタンをクリックすると検索画面が表示されます。
図4:検索結果になります。テーブル内にあるデータすべてを表示しています。
図5:絞り検索すると上記になります。
図6:新規登録ボタンをクリックすると入力画面が表示される。
図7:編集ボタンをクリックすると編集画面が表示される。
コメント
コメントを投稿