access資料庫呼叫

2022-07-21 01:54:16 字數 1943 閱讀 5981

1、工程環境配置(vs+qt)

點選專案,右鍵,選擇專案設定,選擇sql

2、獲取自己資料庫的驅動版本有哪些,如下**所示:

qstringlist drivers =qsqldatabase::drivers();

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

qdebug()

<

執行結果如下:  

//access資料庫對應的是qodbc,mysql的驅動是qmysql,oracle資料的驅動是qoci,sqlite資料的驅動是qsqlite

"qsqlite""

qmysql""

qmysql3""

qodbc""

qodbc3""

qpsql""

qpsql7"//

或者檢視幫助文件,輸入sql database drivers檢視

3、**如下

qsqldatabase maindb = qsqldatabase::adddatabase("

qodbc

", "

maindb

"); //

使用驅動型別和連線名稱connectionname將資料庫新增到資料庫連線列表中。在建構函式定義此物件,不然多次adddatabase會出錯。 連線名稱不能與電腦中已經連線的連線名相同,否則將會導致之前的連線被刪除

qstring dsn = qstring("

driver=;fil=;dbq=%1

").arg(filepath);//

filepath是資料庫的絕對路徑(包括資料庫的檔名)

maindb.setdatabasename(dsn);//

設定資料庫路徑 注意:如果設定好了資料庫源名,可以直接使用資料庫的源名就好

qstring sqlstr;//

資料庫操作(sql)語句

if (!maindb.open())

else

qvector x,x1;

while(query.next())  //

按行讀取

注意:1.資料庫**

畫出乙個作用域,當這個域完成之後,資料庫的所有操作動作都被**了

qsqldatabase db = qsqldatabase::adddatabase("

qodbc

");  qstring dsn = qstring("

driver=;fil=;dbq=%1

").arg(db_path);

db.setdatabasename(dsn);//

設定資料庫路徑

db.open();

//資料庫操作

}qsqldatabase::removedatabase(

"qt_sql_default_connection

");//

這句話之前保證當前連線的資料庫沒有任何資料操作,由上面的作用域實現。 如果在定義資料庫的時候已經定義了連線名稱,就可以將引數改為連線名。

2、打包報錯,driver not load

1)將c:\qt\qt5.3.1\5.3

\msvc2012路徑下的資料夾plugins複製到exe檔案目錄下,開啟plugins,只保留sqldrivers資料夾,需要確認裡面是否有你需要的驅動, 如:程式中使用了qsqlite資料庫,則需要有qsqlite.dll(發布版)qsqlited.dll(除錯版),

2)在main.cpp檔案中新增下面第二行和第三行:

plugins");

a.addlibrarypath(strlibpath);

參考借鑑:  --萬分感謝

連線ACCESS資料庫

1 匯入命名空間空間 system.data.oledb 2 建立指向資料庫的連線 建立連線要用到system.data.oledb命名空間中的類 oledbconnection。通過以下語句可以完成對本地資料庫的連線工作 string strconnect provider microsoft.j...

access資料庫連線

string strconnection provider microsoft.jet.oledb.4.0 strconnection data source e accesstest data.mdb 裡用的是?路徑 oledbconnection objconnection new oledbc...

access資料庫加密

問題 關於jet db的連線字串,以及加密後的字串ado連線mdb檔案的字串如何寫?加密以後如何寫?回答 access資料庫加密分3種 以下以access xp為例 1 工具 安全 加密 解密資料庫,開啟時無需任何更改 2 工具 安全 設定資料庫密碼,開啟密碼為 1 開啟時需要使用 provider...