利用ODBC連線資料庫

2021-06-11 17:26:17 字數 1714 閱讀 4694

例子用到的資料庫是mysql

新增資料來源

建立mfc 基佬於對話方塊的工程odbc

在工程裡新增標頭檔案

#include "afxdb.h"
建立cdatabase類的物件

cdatabase   db;
接下來就是連線資料庫了,在oninitdialog函式裡新增

//判斷資料庫是否開啟

if(!db.isopen())

else

}

接著在對話方塊中新增乙個list control控制項,用來顯示資料庫表中的內容,為控制項關聯乙個變數m_list

//設定listcontrol控制項的狀態

m_list.setextendedstyle(lvs_ex_gridlines|lvs_ex_fullrowselect);

m_list.insertcolumn(0,"",lvcfmt_center,0);

m_list.insertcolumn(1,"編號",lvcfmt_center,195);

m_list.insertcolumn(2,"姓名",lvcfmt_center,195);

m_list.deletecolumn(0);

我用來測試的資料庫表中只有兩個字段,因為mfc不允許修改list control控制項第一列的狀態,所以可以通過上面的方式去讓介面上的第一列居中(實際是我建立的第二列)

接下來,例項化crecordset類,crecordset類代表乙個記錄集,是mfc的odbc類中最重要、功能最強大的類。

crecordset   db_recordset(&db);
接下來就來執行一條select語句,並把結果顯示在list control中

cstring      str="select * from dept";

//執行"select * from dept"語句

db_recordset.open(crecordset::forwardonly,str);

在msdn裡對

crecordset::open函式的第二個引數有這樣一句描述

所以在crecordset::open函式只能執行select語句,其它的語句可用cdatabase::executesql函式
接下來就是獲取查詢到的結果了
//獲取查詢結果,並將結果顯示在listcontrol控制項裡

for(int i=0;!db_recordset.iseof()&&!db_recordset.isbof();i++)

db_recordset.close();

不要忘記呼叫close函式關閉crecordset物件

最後就是關閉cdatabase物件了
db.close();
完整**執行結果如下,新增了增、刪、查、改四個功能

連線資料庫的方法 ODBC

技術部落格,對抗遺忘 1.odbc open database connectivity 1.1 簡介 提供了一組對資料庫訪問的標準api 應用程式程式設計介面 這些api利用sql來完成其大部分任務。odbc本身也提供了對sql語言的支援,使用者可以直接將sql語句送給odbc。odbc現在看來是...

利用C API連線資料庫

1.mysql init 初始化mysql結構體 2.mysql real connect mysql mysql,const char host,const char user,const char passwd,const char db,unsigned int port,const char...

連線資料庫

2 documents 目錄就是我們可以用來寫入並儲存檔案得地方,一般可通過 nsarray paths nssearchpathfordirectoriesindomains nsdocumentdirectory,nsuserdomainmask,yes nsstring documentsdi...