MFC使用ado技術連線sqlserver

2021-07-05 22:00:33 字數 1740 閱讀 9226

第一步,載入ado庫 windows 系統自帶,但需要載入進去!

將下面**放入stdafx.h中最後,然後編譯即可!

#import "c:\program files (x86)\common files\system\ado\msado15.dll" no_namespace rename("eof","rseof")

注意,期中""中的內容為msado15.dll的絕對路勁,因為電腦不同可能不太一樣。

#import語句會在工程可執行程式輸出目錄中產生兩個檔案,分別為*.tlh(型別庫標頭檔案)及*.tli(型別庫實現檔案),它們分別為每乙個介面產生智慧型指標,並為各種介面方法、列舉型別,clsid等進行宣告,建立一系列包裝方法。

生成的包裝類.tlh中宣告的智慧型指標中的三個,它們分別是_connectionptr、_recordsetptr和_commandptr。

_connectionptr

介面返回乙個記錄集或乙個空指標。通常使用它來

建立乙個資料

連線或執行一條不返回任何結果的sql語句,如乙個儲存過程。使用 _connectionptr介面返回乙個記錄集不是乙個好的使用方法。對於要返回記錄的操作通常用_recordserptr來實現。而用 _connectionptr操作時要想得到記錄條數得遍歷所有記錄,而用_recordserptr時不需要。

_commandptr

介面返回乙個記錄集。它提供了一種簡單的方法來執行返回記錄集的儲存過程和sql語句。在使用_commandptr介面時,你可以利用全域性 _connectionptr介面,也可以在_commandptr介面裡直接使用連線串。如果你只執行一次或幾次資料訪問操作,後者是比較好的選擇。但如果你要頻繁訪問資料庫,並要返回很多記錄集,那麼,你應該使用全域性_connectionptr介面建立乙個資料連線,然後

使用_commandptr 介面執行儲存過程和sql語句。

_recordsetptr

是乙個記錄集物件。與以上兩種物件相比,它對記錄集提供了

更多的控制功能

,如記錄鎖定,游標控制等。同_commandptr介面一樣,它不一定要使用乙個已經建立的資料連線,可以用乙個連線串代替連線指標賦給 _recordsetptr的connection成員變數,讓它自己建立資料連線。如果你要使用多個記錄集,最好的方法是同command物件一樣使用已經建立了資料連線的全域性_connectionptr介面,然後使用_recordsetptr執行儲存過程和sql語句。

將"eof"rename為"rseof"是由於有檔名為eof而我們需要用eof來判斷返回結果是否到最後一行,為了避免這個重複就將這裡的eof改為rseof,所以在判斷返回結果是否到最後一行時應該用rseof,當然可以改為其他不會衝突的字元。

第二步,進行資料庫鏈結

_connectionptr m_pconnection; // 連線資料庫

_recordsetptr m_precordset; // 命令

_commandptr m_pcommand; // 記錄

void oninitadoconn();

void exitconnect();

::coinitialize(null);

void adosql::oninitadoconn()

catch(_com_error e)

}//這裡是連線master資料庫,無密碼。

void adosql::exitconnect()

MFC通過ADO技術連線Access資料步驟

如果想一步一步看懂的話,請按照步驟看,如果急著用的話,後面有示例完整 另外,我這裡用了ace 12.0,連線的是2013版本access資料庫,其實還有一種方法是jet 4.0,具體的看我另外一篇。1 使用 import 語句匯入dll檔案,將以下語句放入stdafx.h檔案中,一般是這個路徑 im...

MFC通過ADO連線 SQL 2005

1 新建乙個類,型別為generic class,名稱為cdatabase 2 新增匯入檔案 import c program files common files system ado msado15.dll no namespace rename eof adoeof rename bof ad...

MFC使用ADO連線SQL Server資料庫

1.首先,要用 import語句來引用支援ado的元件型別庫 tlb 其中型別庫可以作為可執行程式 dll exe等 的一部分被定位在其自身程式中的附屬資源裡,如 被定位在msado15.dll的附屬資源中,只需要直接用 import引用它既可。可以直接在stdafx.h檔案中加入下面語句來實現 i...