qsqldatabase類學習筆記
參考#include
qt += sql
qsqldatabase類實現了資料庫連線的操作
qsqlquery類執行sql語句
qsqlrecord類封裝資料庫所有記錄
qsqldatabase類
如下**:
//! testmysqls
void mainwindow::on_testmysql_clicked()
//qdebug()<
f:\zip\testcode\debug\testcode.exe 啟動中...
[wificommon]開始進入....qsqlquery::exec: database not open
qsqlquery::exec: database not open
qsqlquery::exec: database not open
解決如下:
原因:qsqlquery 沒有與 db 資料庫聯絡起來,正確**如下:
bool mainwindow::initdatabase()
mainwindow::~mainwindow()
void mainwindow::createtable()
上面為建立表的**,結果如下:
下面為對sql進行操作的一些**及結果說明:
**如下:
//! select * from test_table2
void mainwindow::queryrestable()
圖:
另一種方法:
另外一種方法:
void mainwindow::bindvalue3()
圖:
另外一種方法:
void mainwindow::bindvalue4()
圖:
下面是對儲存過程的乙個處理: ---- 沒有驗證
// asciitoint() -- 是乙個儲存過程,可以把它的輸入輸出引數帶回來
void mainwindow::bindvalue5()
下面這個是驗證過的:建立語句
create procedure qtestproc (out param1 int, out param2 int)
begin
set param1 = 42;
set param2 = 43;
end
**語句:
insert的另外一種方法:
void mainwindow::insertvalue2()
圖:
對事務操作:因為不支援,所以沒法進行校驗,如果哪種資料庫支援,可以校驗一下
void mainwindow::transaction()
qsqldatabase::database().commit();}}
關於mysql的重連,在 void qsqldatabase::setconnectoptions ( const qstring & options = qstring() ) 中有乙個選項 mysql_opt_reconnect ,還可以參考 大體意思就是,新建乙個執行緒,每隔1s監視資料庫的情況,如果斷開 ,則進行重連,然後新執行緒和舊執行緒之間通訊。或者看原始碼介紹: QSqlDataBase 一點心得
先來看下這段 qsqldatabase db1 qsqldatabase adddatabase qsqlite myconnection1 qsqldatabase db2 qsqldatabase adddatabase qsqlite myconnection2 qdebug qsqldata...
QByteArray類學習(QT常見類學習1)
qbytearray類提供了位元組陣列,包含於 標頭檔案中,從 q3cstring 類繼承而來。qbytearray可以儲存 raw bytes 和傳統的 8 bits 的字串,都是以 0 結尾的,使用比 char 更方便qstring也可以儲存字串資訊,但通常以 16 bits 形式unicode...
類 學習內容
二,裝飾其他函式 import time def waibu a def neibu start time.time a end time.time print end start return neibu waibu def jisuan print 235246234 jisuan f open...