VC用ODBC連接Access數(shù)據(jù)庫圖文全解
現(xiàn)在我們就開始介紹VC如何通過ODBC數(shù)據(jù)源來連接Access數(shù)據(jù)庫的過程:包括從數(shù)據(jù)源的創(chuàng)建到VC代碼的實現(xiàn)。
1.首先在控制面板中,打開ODBC數(shù)據(jù)源,點擊用戶DSN選項,在出現(xiàn)的界面中點擊添加,如下圖所示:
然后,點擊完成按鈕,出現(xiàn)下圖,填入數(shù)據(jù)源名(可隨意取名,本處設(shè)為biao)。
點擊確定即可。
2.在ACCESS中創(chuàng)建數(shù)據(jù)庫,本例中為data(只包含 number,name,score三列),可從我提供的這個例子下COPY。
3.建立應(yīng)用程序項目
(1)打 開File 菜 單 的New 選 項, 選 取Projects,選擇MFC AppWizard (exe),填 入 工 程 名,本例為DATA1。
(2)把數(shù)據(jù)庫文件 data拷入新建的工程目錄。
(3)應(yīng)用程序的類型指定為SDI,在Step2 對話框中選擇Header Files Only選項,在Step6是將視圖基類指定為CScrollView。
(4)用ClassWizard 創(chuàng)建記錄集類。從Add Class菜單中選擇New,并按下圖填充對話框:(說明:一個CRecordset對象代表從數(shù)據(jù)源中查詢的一個記錄集。)
(5)點擊OK,進入Data Source,選擇biao數(shù)據(jù)源,并選擇Dynast選項,如下圖所示:
在選擇了數(shù)據(jù)源之后,ClassWizard提示我們選擇一個表。如下圖所示:
(6)在ClassWizard中,針對新產(chǎn)生的CDataSet類,單擊Member Variables標(biāo)簽。此時ClassWizard 應(yīng)按照數(shù)據(jù)庫列的名稱產(chǎn)生了如下的數(shù)據(jù)成員:
(7)在CData1View類中添加數(shù)據(jù)成員。
(8) 在Cdata1Doc中添加如下成員:
(9)編輯DATA1View.cpp中的OnDraw() 和OnInitialUpdate()函數(shù):
- void CDATA1View::OnDraw(CDC* pDC)
- {
- CDATA1Doc* pDoc = GetDocument();
- ASSERT_VALID(pDoc);
- // TODO: add draw code for native data here
- TEXTMETRIC tm;
- pDC->GetTextMetrics(&tm);
- int nLineHeight=tm.tmHeight+tm.tmExternalLeading;
- CPoint pText(0,0);
- int y = 0;
- CString str;
- if (m_pSet->IsBOF()) { // detects empty recordset
- return;
- }
- m_pSet->MoveFirst(); // fails if recordset is empty
- while (!m_pSet->IsEOF()) {
- pDC->TextOut(pText.x, pText.y, m_pSet->m_number);
- pDC->TextOut(pText.x+1000, pText.y, m_pSet->m_name);
- pDC->TextOut(pText.x+4000, pText.y, m_pSet->m_score);
- m_pSet->MoveNext();
- pText.y -= nLineHeight;
- }
- }
- void CDATA1View::OnInitialUpdate()
- {
- CScrollView::OnInitialUpdate();
- CSize sizeTotal(8000, 10500);
- SetScrollSizes(MM_HIENGLISH, sizeTotal);
- m_pSet = &GetDocument()->m_dataSet;
- if (m_pSet->IsOpen()) {
- m_pSet->Close();
- }
- m_pSet->Open();
- }
(10)data1View.cpp 中加入#include "dataSet.h"。
(11)編譯結(jié)果應(yīng)如下所示:
關(guān)于VC連接數(shù)據(jù)庫的問題我們還會在以后的文章中繼續(xù)介紹,本文就介紹到這里,謝謝大家的支持。
【編輯推薦】