我是乙個剛剛進入vc++
的乙個小菜鳥 ,最近由於有乙個課題需要 使用vc++
和資料庫的連線的程式設計課題,所以我初次學習了這方面的內容。我折騰了
2天的樣子,才寫出了乙個很簡易的
test
,這裡我主要想分享下我在學習的過程中遇到的問題和一點點小小的體會吧,希望有懂的人看到了這篇部落格願意幫我解答下這些問題,感之不盡。
由於入門的書是《vc++
開發入門和程式設計實踐》,上面關於這個部分的內容有亮點,乙個是
odbc
和ado
。我就拿了
odbc
做了第一次嘗試,我用的是
access2010
和vs2010
,結果在建立
mfc的時候選擇資料來源的時候出現了問題,開始的時候是說需要必須連線資料來源,可是剛剛我點了很多次我需要建立的資料來源啊?然後我就從
mfc建立的同時新建資料來源,結果悲劇又發生了,還是連線不上,於是我轉戰
ado。
連線資料來源的相關程式設計。根據我圖書館中藉的書《
vistual c++
我前期各種教程的乙個最大的苦惱就是一些ado
函式不知道在**新增,在這裡我就說明下把,如果是乙個基於對話方塊模式的
mfc的
exe檔案,就直接在那個你需要進行資料庫呼叫的那個按鈕對應的函式新增。
第一步,需要囊括ado
的檔案:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("eof","adoeof") 放在stdafx.h中關於各種include的描述之後。這句話中#import的意思是引入,後面使用了rename為了避免型別庫檔案中的eof和系統檔案的eof重名。
第二步,各種初始化和定義:
coinitialize(null); //初始化com環境
_connectionptr pcon( __uuidof(connection));
_recordsetptr pre(__uuidof(recordset));
connection物件是與資料來源相連線,而recordset物件記錄集。
第三步,連線:
pcon->connectionstring = "provider=msdasql.1;persist security info=false;user id=admin;data source=agenda";
trycatch(_com_error *e)
後來我實在沒有辦法就直接下了個vc6.0++來獲取這個連線字串,很輕鬆的就獲取到了。但是畢竟這種方法灰常麻煩,所以我很蛋疼。
接下來每個步驟瞬間就很簡單了,至於這裡為啥要用try和catch,是因為我怕連線的時候出現各種神奇的問題,於是我想捕捉下錯誤。
第四歩,用sql語句操作:
trycatch(_com_error *e)
execute這個方法的意義我個人以為是將連線和使用結合的作用。第乙個引數是sql語句,第二個是個可選的引數 ,用來返回記錄數目 ,第三個這是如何為其賦值。
第五步,對資料庫操作:
while(!pre->adoeof)
第六步,釋放占有的記憶體:
pre->close();
pcon->close();
pre.release();
pcon.release();
couninitialize();
注意,最後兩個release之前必須是用.而不是->,然後vs2010中不知道為啥會將.強制改為->,這不我也是從vc6.0++上更改的。
ok,這兩天的爆頭苦惱的資料庫連線就搞定了,接下來課題依舊還要繼續寫,希望這篇文章會給有幫助的初學者些許幫助吧,還請如果的高手指導我如何在vs2010中獲取對應的連線字串。謝謝!!
MFC連線資料庫
我是乙個剛剛進入vc 的乙個小菜鳥 最近由於有乙個課題需要 使用vc 和資料庫的連線的程式設計課題,所以我初次學習了這方面的內容。我折騰了 2天的樣子,才寫出了乙個很簡易的 test 這裡我主要想分享下我在學習的過程中遇到的問題和一點點小小的體會吧,希望有懂的人看到了這篇部落格願意幫我解答下這些問題...
MFC中用Ado連線資料庫
vc 中使用mfc通過ado連線資料庫方法小結 不包括異常的捕捉 這裡主要講mfc與sql2000資料庫的連線。coinitialize null 表示com庫的初始化 couninitialize 釋放com庫。3.獲取連線字串。最簡單的方法就是新建乙個.txt檔案,將其字尾名改為.udl,雙擊它...
MFC通過ADO連線資料庫
msdn中提供mfc的連線資料庫的方法大約有三種方法 一是cdatabase類 odbc 一是dao,另一是 ole db,msdn上推薦的方法是odbc或者ole db方式。ole db是一組 元件物件模型 com 介面,是新的資料庫低層介面,它封裝了odbc的功能,並以統一的方式訪問儲存在不同資...