資源簡介
QSqlDatabase的進一步封裝
實現了多線程支持以及更加簡單的操作

代碼片段和文件信息
//?Qt?lib?import
#include?
#include?
#include?
//?JasonQt?lib?import
#include?“JasonQt/JasonQt_Database.h“
int?main(int?argc?char?*argv[])
{
????QCoreApplication?a(argc?argv);
????/*
?????*?注:關于附加參數
?????*?這是可以不寫的,如果要寫的話,可以參考這個:
?????*
?????*?單次打開數據庫最大時間:也就是最大open的時間,對于某些數據庫,長時間open但不使用,不僅會造成資源浪費還會意外斷開。在設置了60?*?1000后,且60秒內未進行查詢,就自動斷開。
?????*?多線程支持:簡單的說就是高級點的數據庫,比如?MySql?寫?JasonQt_Database::QueryMultiMode?;低級的,比如?Sqlite?,寫?JasonQt_Database::QuerySingleMode?就可以了。
?????*?最小等待時間:對于某些數據庫,比如Sqlite,密集查詢時可能出錯,此時可以適當的提升兩次查詢之間的最小等待時間,比如10ms
?????*/
????//?Sqlite的連接方式????????????????????類型????????連接名????????Sqlite文件路徑??????單次打開數據庫最大時間????????????????多線程支持???????????最小等待時間
????JasonQt_Database::Control?control({?“QSQLITE“?“TestDB“?“/Users/Jason/test.db“?}?{?60?*?1000????????JasonQt_Database::QuerySingleMode?10});
????//?MySql的連接方式??????????????????????類型??????連接名????????IP????????數據庫????用戶名????????密碼
//??JasonQt_Database::Control?control({?“QMYSQL“?“TestDB“?“localhost“?“JasonDB“?“root“?“YourPassword“?});
????//?SqlServer的連接方式??????????????????類型??????連接名?????????????????????????????????????數據庫??????????????數據庫名???用戶名?????????密碼
//??JasonQt_Database::Control?control({?“QODBC“?“TestDB“?“Driver={SQL?SERVER};server=iZ23kn6vmgkZ\\TEST;database=test;uid=sa;pwd=YourPassword;“?});
????auto?insert?=?[&]()
????{
????????auto?query(control.query());?//?這里的query在解引用(?->?或者?*?)后返回的是?QSqlQuery?,直接用就可以了,不需要單獨打開數據庫或者其他的初始化
????????query->prepare(“insert?into?Test1?values(?)“);?//?模擬插入操作
????????query->addBindValue(rand()?%?1280);
????????if(!query->exec())
????????{
????????????qDebug()?<“Error“?<????????}
????????query->clear();
????????query->prepare(“insert?into?Test2?values(NULL????)“);
????????query->addBindValue(rand()?%?1280);
????????QString?buf;
????????for(int?now?=?0;?now?50;?now++)
????????{
????????????buf.append(‘a‘?+?(rand()?%?26));
????????}
????????query->addBindValue(buf);
????????if(!query->exec())
????????{
????????????qDebug()?<“Error“?<????????}
????};
????auto?delete_?=?[&]()
????{
????????auto?query(control.query());
????????query->prepare(“delete?from?Test1?where?data?=??“);
????????query->addBindValue(rand()?%?1280);
????????if(!query->exec())
????????{
????????????qDebug()?<“Error“?<????????}
????????query->clear();
????????query->prepare(“delete?from?Test2?where?data1?=??“);
????????query->addBindValue(rand()?%?1280);
????????if(!query->exec())
????????{
????????????qDebug()?<“Error“?<????????}
????};
????auto?update?=?[&]()
????{
????????auto?query(control.query());
????????query->prepare(“update?Test1?set?data?=???where?data?=??“);
????????query->addBindValue(rand()?%?1280);
????????query->addBindValue(rand()?%?1280);
????????if(!query->exec())
????????{
????????????qDebug()?<“Error“?<????????}
????????query->clear();
????????query->prepare(“update?Test2?set?data1?=???data2?=???where?dat
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-04-05?21:25??JasonQt_Databa
?????文件????????6148??2015-04-05?21:25??JasonQt_Databa
?????目錄???????????0??2015-04-05?21:25??JasonQt_Databa
?????文件????????7789??2015-04-05?21:18??JasonQt_Databa
?????文件????????3709??2015-04-05?20:59??JasonQt_Databa
?????文件?????????434??2015-04-05?20:57??JasonQt_Databa
?????文件????????5421??2015-04-05?21:24??JasonQt_Databa
?????文件????????1006??2015-03-17?10:50??JasonQt_Databa
評論
共有 條評論