vc之ODBC串連資料庫圖文全解

來源:互聯網
上載者:User

我們在編程時要儲存各種即時接收的資料,並為以後的資料再現回放,就應該建立資料檔案,而這種資料檔案可以用普通檔案讀寫方式,但當資料類型較多且要求隨時回放資料時,要求編程時設定較大的動態數組,這會佔用較多的系統資源,甚至導致程式崩潰;而利用資料庫則可以較好地解決這個問題,我們將資料放到資料來源檔案中,通過編程介面對其進行訪問。ODBC(開放的資料庫連接:Open Database Connectivity)為各種類型的資料庫管理系統提供了統一的編程介面,我們在下面的幾篇文章中,首先通過執行個體說明ODBC技術的應用方法,然後說明如何將串口資料即時儲存在資料來源檔案中,這一方面介紹VC中ODBC技術的應用(前面的例子不涉及串口技術,以方便只想瞭解ODBC技術的讀者,又為利用ODBC技術儲存串口編程資料提供範例,雖然前面幾個常式與串口通訊不相關,但如果對使用資料庫不熟悉,也請從前面有耐心地看下去。

1.首先在控制台中,開啟ODBC資料來源,點擊使用者DSN選項,在出現的介面中點擊添加,如所示:

然後,點擊完成按鈕,出現,填入資料來源名(可隨意取名,本處設為biao)

點擊確定即可。
2.在ACCESS中建立資料庫,本例中為data(只包含 number,name,score三列),可從我提供的這個例子下COPY

3.建立應用程式項目

(1)打 開File 菜 單 的New 選 項, 選 取Projects,
選 擇MFC AppWizard (exe),填 入 工 程 名,本例為DATA1
(2)把資料庫檔案 data拷入建立的工程目錄。
(3)應用程式的類型指定為SDI,在Step2 對話方塊中選擇Header Files Only選項,在Step6是將視圖基類指定為CScrollView。
(4)用ClassWizard 建立記錄集類。從Add Class菜單中選擇New,並按填充對話方塊:(說明:一個CRecordset對象代表從資料來源中查詢的一個記錄集。)

(5).點擊OK,進入Data Source,選擇biao資料來源,並選擇Dynast選項,如所示:

在選擇了資料來源之後,ClassWizard提示我們選擇一個表。如所示:

(6)在ClassWizard中,針對新產生的CDataSet類,單擊Member Variables標籤。此時ClassWizard 應按照資料庫列的名稱產生了如下的資料成員:

(7)在CData1View類中添加資料成員

(8) 在Cdata1Doc中添加如下成員:

(9)編輯DATA1View.cpp中的OnDraw() 和OnInitialUpdate()函數:
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) 編譯結果應如下所示:

標籤: VC++, ODBC

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.