欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:QT--SQLite

柚子快報邀請碼778899分享:QT--SQLite

http://yzkb.51969.com/

配置類相關的表,所以我使用sqlite,且QT自帶該組件;

1.安裝 sqlite-tools-win-x64-3460000、SQLiteExpert5.4.31.575 使用SQLiteExpert建好數(shù)據(jù)庫.db文件,和對應的表后把db文件放在指定目錄 ./db/program.db;

2.選擇sql組件

3.新增數(shù)據(jù)庫處理類,在使用數(shù)據(jù)庫的地方調(diào)用類成員函數(shù)即可

DataModel::DataModel()

{

db = QSqlDatabase::addDatabase("QSQLITE", "");

db.setDatabaseName("./db/program.db");

connectDataBase();

}

DataModel::~DataModel()

{

disconnectDataBase();

}

// 打開數(shù)據(jù)庫文件

bool DataModel::connectDataBase() {

bool ret = db.open();

if (!ret) {

outPutMsg(QtDebugMsg, "DataModel::connectDataBase error = " + db.lastError().text());

}

return ret;

}

// 關閉數(shù)據(jù)庫文件

void DataModel::disconnectDataBase() {

db.close();

}

QStringList DataModel::queryProgramList() {

QStringList programList;

// 根據(jù)名字查詢

QString sql = QString("select sectionBarName,programNo from program where 1=1;");

outPutMsg(QtDebugMsg, "DataModel::queryProgramList sql = " + sql);

// 創(chuàng)建一個可以對db執(zhí)行語句的對象

QSqlQuery query(db);

// 執(zhí)行sql語句

bool ret = query.exec(sql);

if (!ret)

{

outPutMsg(QtDebugMsg, "DataModel::queryProgramNo error = " + query.lastError().text());

return programList;

}

// 行坐標向下移

while (query.next())

{

//獲取數(shù)據(jù)庫query所指的那行的數(shù)據(jù)

QString program;

program += (query.value(0).toString() + ";"); // sectionBarName

program += QString::number(query.value(1).toInt()); // programNo

// outPutMsg(QtDebugMsg, "DataModel::queryProgramInfoBySectionCode programInfo = " + program);

programList.append(program);

}

return programList;

}

// 根據(jù)型材代號查詢程序號碼

QString DataModel::queryProgramNo(QString sectionBarNo) {

// 根據(jù)名字查詢

QString sql = QString("select programNo from program where sectionBarName=\'%1\';").arg(sectionBarNo);

//QString sql = QString("select programNo from program where 1=1");

outPutMsg(QtDebugMsg, "DataModel::queryProgramNo sql = " + sql);

// 創(chuàng)建一個可以對db執(zhí)行語句的對象

QSqlQuery query(db);

// 執(zhí)行sql語句

bool ret = query.exec(sql);

if (!ret)

{

outPutMsg(QtDebugMsg, "DataModel::queryProgramNo error = " + query.lastError().text());

return "";

}

QString programNo = "";

// 行坐標向下移

while (query.next())

{

//獲取數(shù)據(jù)庫query所指的那行的數(shù)據(jù)

programNo = QString::number(query.value(0).toInt());

outPutMsg(QtDebugMsg, "DataModel::queryProgramNo programNo = " + programNo);

}

return programNo;

}

// 根據(jù)程序號碼查詢

QString DataModel::queryProgramByNo(QString programNo) {

// 根據(jù)名字查詢

QString sql = QString("select sectionBarName from program where programNo=\'%1\';").arg(programNo);

//QString sql = QString("select programNo from program where 1=1");

outPutMsg(QtDebugMsg, "DataModel::queryProgramByNo sql = " + sql);

// 創(chuàng)建一個可以對db執(zhí)行語句的對象

QSqlQuery query(db);

// 執(zhí)行sql語句

bool ret = query.exec(sql);

if (!ret)

{

outPutMsg(QtDebugMsg, "DataModel::queryProgramByNo error = " + query.lastError().text());

return "";

}

QString sectionBarNo = "";

// 行坐標向下移

while (query.next())

{

//獲取數(shù)據(jù)庫query所指的那行的數(shù)據(jù)

sectionBarNo = QString::number(query.value(0).toInt());

outPutMsg(QtDebugMsg, "DataModel::queryProgramByNo sectionBarNo = " + sectionBarNo);

}

return sectionBarNo;

}

// 根據(jù)型材代號查詢程序號碼

QStringList DataModel::queryProgramInfoBySectionCode(QString sectionBarNo) {

QStringList programInfoList;

// 根據(jù)名字查詢

// 使用索引sectionBarName

QString sql = QString("select stepNo, cutNo,x, y, f, Rx, Ry from programInfo where programNo = (select programNo from program where sectionBarName=\'%1\');").arg(sectionBarNo);

//QString sql = QString("select programNo from program where 1=1");

outPutMsg(QtDebugMsg, "DataModel::queryProgramInfoBySectionCode sql = " + sql);

// 創(chuàng)建一個可以對db執(zhí)行語句的對象

QSqlQuery query(db);

// 執(zhí)行sql語句

bool ret = query.exec(sql);

if (!ret)

{

outPutMsg(QtDebugMsg, "DataModel::queryProgramInfoBySectionCode error = " + query.lastError().text());

return programInfoList;

}

// 行坐標向下移

while (query.next())

{

//獲取數(shù)據(jù)庫query所指的那行的數(shù)據(jù)

QString programInfo;

programInfo += (QString::number(query.value(0).toInt())+";"); // stepNo

programInfo += (QString::number(query.value(1).toInt())+";"); // cutNo

programInfo += (QString::number(query.value(2).toDouble(), 'f', 2) + ";"); // x

programInfo += (QString::number(query.value(3).toDouble(), 'f', 2) + ";"); // y

programInfo += (QString::number(query.value(4).toDouble(), 'f', 2) + ";"); // f 速度

programInfo += (QString::number(query.value(5).toDouble(), 'f', 2) + ";"); // Rx

programInfo += (QString::number(query.value(6).toDouble(), 'f', 2)); // Ry

outPutMsg(QtDebugMsg, "DataModel::queryProgramInfoBySectionCode programInfo = " + programInfo);

programInfoList.append(programInfo);

}

return programInfoList;

}

// 更新程序信息

bool DataModel::updateProInfosByProNo(QString proNo, QStringList proInfoList) {

// 開啟事務

if (!db.transaction()) {

outPutMsg(QtDebugMsg, "DataModel::updateProInfosByProNo db.error = " + db.lastError().text());

return false;

}

QStringList programInfoList;

// 根據(jù)名字查詢

// 使用索引sectionBarName

QString sqlDel = QString("delete from programInfo where programNo=\'%1\';").arg(proNo);

outPutMsg(QtDebugMsg, "DataModel::updateProInfosByProNo sqlDel = " + sqlDel);

// 創(chuàng)建一個可以對db執(zhí)行語句的對象

QSqlQuery query(db);

// 執(zhí)行sql語句

bool ret = query.exec(sqlDel);

if (!ret)

{

outPutMsg(QtDebugMsg, "DataModel::updateProInfosByProNo error = " + query.lastError().text());

return false;

}

try {

for (int i = 0; i < proInfoList.size(); i++) {

QStringList programInfo = proInfoList.at(i).split(";");

QString sqlOne = "insert into programInfo values ( " + proNo + ",";

for (int j = 0; j < programInfo.size(); j++) {

if (j > 0) {

sqlOne += ",";

}

sqlOne += programInfo.at(j) ;

}

sqlOne += ");";

outPutMsg(QtDebugMsg, "DataModel::updateProInfosByProNo sqlOne = " + sqlOne);

if (!query.exec(sqlOne))

{

outPutMsg(QtDebugMsg, "DataModel::updateProInfosByProNo error = " + query.lastError().text());

return false;

}

}

}

catch (...) {

outPutMsg(QtDebugMsg, "DataModel::updateProInfosByProNo error = " + query.lastError().text());

return false;

}

// 開啟事務

if (!db.commit()) {

outPutMsg(QtDebugMsg, "DataModel::updateProInfosByProNo db.error = " + db.lastError().text());

return false;

}

return true;

}

// 保存程序信息

void ClearCorner::on_edit_saveBtn_clicked() {

QStringList proInfoList;

for (int i = 0; i < modelProgram.rowCount(); i++) {

QString strTmp;

for (int j = 0; j < modelProgram.columnCount(); j++) {

QStandardItem* item = modelProgram.item(i, j);

if (j > 0) {

strTmp += ";";

}

strTmp += item->text();

}

outPutMsg(QtDebugMsg, "ClearCorner::on_edit_saveBtn_clicked strTmp = " + strTmp);

proInfoList.append(strTmp);

}

DataModel dataModel;

bool ret = dataModel.updateProInfosByProNo(ui.edit_lineEdit_programNo->text(), proInfoList);

if (ret) {

QMessageBox::information(nullptr, "提示", "更新程序成功!");

}

else {

QMessageBox::warning(nullptr, "提示", "更新程序失??!");

}

}

柚子快報邀請碼778899分享:QT--SQLite

http://yzkb.51969.com/

參考文章

評論可見,查看隱藏內(nèi)容
大家都在看:

本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19315794.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄