QSqlDatabase類學習筆記

2021-07-30 18:51:11 字數 2579 閱讀 5197

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...