嵌入式数据库应用程序设计(四)——程序设计
本篇涉及的函数,主要用于数据库表中记录的修改
1、数据库表为TABLE_Basic
EditRecord.h
#ifndef EDITRECORDDLG_H
#define EDITRECORDDLG_H
#include <QtGui>
class EditRecordDlg : public QDialog
{
Q_OBJECT
public:
EditRecordDlg(QWidget *parent = 0);
public slots:
void okClicked();
void cancleClicked();
private:
QLabel *idLabel;
QLabel *nameLabel;
QLabel *sexLabel;
QLabel *birthLabel;
QLabel *salaryLabel;
//QLabel *producerLabel;
//QLabel *priceLabel;
QLineEdit *idEdit;
QLineEdit *nameEdit;
QLineEdit *sexEdit;
QLineEdit *birthEdit;
QLineEdit *salaryEdit;
//QLineEdit *producerEdit;
//QLineEdit *priceEdit;
QPushButton *okButton;
QPushButton *cancleButton;
};
#endif
EditRecord.cpp
#include "EditRecord.h"
extern bool ok_flag;
//extern char edit_id[10];
//extern char edit_name[20];
//extern char edit_producer[20];
//extern int edit_price;
extern char Person_ID[10];
extern char Name[10];
extern char Sex[20];
extern char Birth[15];
extern int Salary;
EditRecordDlg::EditRecordDlg(QWidget *parent)
: QDialog(parent) {
setWindowTitle(tr("Edit a record"));
//EditRecordDlg界面的设置
idLabel = new QLabel(tr("ID:"));
idEdit = new QLineEdit;
idEdit->setText(Person_ID);
idEdit->setEnabled(true);
nameLabel = new QLabel(tr("name:"));
nameEdit = new QLineEdit;
nameEdit->setText(Name);
nameEdit->setEnabled(true);
sexLabel = new QLabel(tr("sex:"));
sexEdit = new QLineEdit;
sexEdit->setText(Sex);
sexEdit->setEnabled(true);
birthLabel = new QLabel(tr("birth:"));
birthEdit = new QLineEdit;
birthEdit->setText(Birth);
birthEdit->setEnabled(true);
//producerLabel = new QLabel(tr("producer:"));
//producerEdit = new QLineEdit;
//producerEdit->setText(edit_producer);
//producerEdit->setEnabled(true);
salaryLabel = new QLabel(tr("salay:"));
salaryEdit = new QLineEdit;
char s[10]; memset(s, 0, 10);
sprintf(s, "%d", Salary);
salaryEdit->setText(s);
salaryEdit->setEnabled(true);
//priceLabel = new QLabel(tr("price:"));
//priceEdit = new QLineEdit;
//char s[10]; memset(s, 0, 10);
//sprintf(s, "%d", edit_price);
//priceEdit->setText(s);
//priceEdit->setEnabled(true);
//确认按钮
okButton = new QPushButton(tr("OK"));
//取消按钮
cancleButton = new QPushButton(tr("Cancle"));
connect(okButton, SIGNAL(clicked()), this, SLOT(okClicked()));
connect(cancleButton, SIGNAL(clicked()), this, SLOT(cancleClicked()));
//为各个部件设置位置
QGridLayout *left = new QGridLayout;
left->addWidget(idLabel, 0, 0);
left->addWidget(idEdit, 0, 1);
left->addWidget(nameLabel, 1, 0);
left->addWidget(nameEdit, 1, 1);
left->addWidget(sexLabel, 2, 0);
left->addWidget(sexEdit, 2, 1);
left->addWidget(birthLabel, 3, 0);
left->addWidget(birthEdit, 3, 1);
left->addWidget(salaryLabel, 4, 0);
left->addWidget(salaryEdit, 4, 1);
QVBoxLayout *right = new QVBoxLayout;
right->addWidget(okButton);
right->addWidget(cancleButton);
QHBoxLayout *mainlayout = new QHBoxLayout(this);
mainlayout->addLayout(left);
mainlayout->addLayout(right);
}
//为各个数据库表中的属性(列)赋值
void EditRecordDlg::okClicked()
{
ok_flag = 1;
memset(Person_ID, 0, sizeof(Person_ID));
memset(Name, 0, sizeof(Name));
memset(Sex, 0, sizeof(Sex));
memset(Birth, 0, sizeof(Birth));
Salary = 0;
sprintf(Person_ID, "%s", ((idEdit->text()).toLatin1()).data());
sprintf(Name, "%s", ((nameEdit->text()).toLatin1()).data());
sprintf(Sex, "%s", ((sexEdit->text()).toLatin1()).data());
sprintf(Birth, "%s", ((birthEdit->text()).toLatin1()).data());
Salary = (salaryEdit->text()).toInt();
close();
}
void EditRecordDlg::cancleClicked()
{
close();
}
1、数据库表为TABLE_Speciality
EditRecord_Speciality.h
#ifndef EDITRECORDDLG_SPECIALITY_H
#define EDITRECORDDLG_SPECIALITY_H
#include <QtGui>
class EditRecordDlg_speciality : public QDialog
{
Q_OBJECT
public:
EditRecordDlg_speciality(QWidget *parent = 0);
public slots:
void okClicked();
void cancleClicked();
private:
QLabel *idLabel;
QLabel *specialityLabel;
QLabel *technicalLabel;
QLabel *englishLabel;
QLabel *yearLabel;
QLineEdit *idEdit;
QLineEdit *specialityEdit;
QLineEdit *technicalEdit;
QLineEdit *englishEdit;
QLineEdit *yearEdit;
QPushButton *okButton;
QPushButton *cancleButton;
};
#endif
EditRecord_Speciality.cpp
#include "EditRecord_Speciality.h"
extern bool ok_flag;
extern char Person_ID[10];
extern char Speciality[10];
extern char TechnicalTitle[10];
extern char EnglishLevel[10];
extern int SpecialityYear;
EditRecordDlg_speciality::EditRecordDlg_speciality(QWidget *parent)
: QDialog(parent) {
setWindowTitle(tr("Edit a record"));
idLabel = new QLabel(tr("Person_ID:"));
idEdit = new QLineEdit;
idEdit->setText(Person_ID);
idEdit->setEnabled(true);
specialityLabel = new QLabel(tr("Speciality:"));
specialityEdit = new QLineEdit;
specialityEdit->setText(Speciality);
specialityEdit->setEnabled(true);
technicalLabel = new QLabel(tr("Technical:"));
technicalEdit = new QLineEdit;
technicalEdit->setText(TechnicalTitle);
technicalEdit->setEnabled(true);
englishLabel = new QLabel(tr("English Level:"));
englishEdit = new QLineEdit;
englishEdit->setText(EnglishLevel);
englishEdit->setEnabled(true);
yearLabel = new QLabel(tr("Speciality Year:"));
yearEdit = new QLineEdit;
char s[10]; memset(s, 0, 10);
sprintf(s, "%d", SpecialityYear);
yearEdit->setText(s);
yearEdit->setEnabled(true);
//确认按钮
okButton = new QPushButton(tr("OK"));
//取消按钮
cancleButton = new QPushButton(tr("Cancle"));
connect(okButton, SIGNAL(clicked()), this, SLOT(okClicked()));
connect(cancleButton, SIGNAL(clicked()), this, SLOT(cancleClicked()));
//为各个部件设置位置
QGridLayout *left = new QGridLayout;
left->addWidget(idLabel, 0, 0);
left->addWidget(idEdit, 0, 1);
left->addWidget(specialityLabel, 1, 0);
left->addWidget(specialityEdit, 1, 1);
left->addWidget(technicalLabel, 2, 0);
left->addWidget(technicalEdit, 2, 1);
left->addWidget(englishLabel, 3, 0);
left->addWidget(englishEdit, 3, 1);
left->addWidget(yearLabel, 4, 0);
left->addWidget(yearEdit, 4, 1);
QVBoxLayout *right = new QVBoxLayout;
right->addWidget(okButton);
right->addWidget(cancleButton);
QHBoxLayout *mainlayout = new QHBoxLayout(this);
mainlayout->addLayout(left);
mainlayout->addLayout(right);
}
void EditRecordDlg_speciality::okClicked()
{
ok_flag = 1;
memset(Person_ID, 0, sizeof(Person_ID));
memset(Speciality, 0, sizeof(Speciality));
memset(TechnicalTitle, 0, sizeof(TechnicalTitle));
memset(EnglishLevel, 0, sizeof(EnglishLevel));
SpecialityYear = 0;
sprintf(Person_ID, "%s", ((idEdit->text()).toLatin1()).data());
sprintf(Speciality, "%s", ((specialityEdit->text()).toLatin1()).data());
sprintf(TechnicalTitle, "%s", ((technicalEdit->text()).toLatin1()).data());
sprintf(EnglishLevel, "%s", ((englishEdit->text()).toLatin1()).data());
SpecialityYear = (yearEdit->text()).toInt();
close();
}
void EditRecordDlg_speciality::cancleClicked()
{
close();
}