例子用到的資料庫是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...