freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

vc操作數(shù)據(jù)庫簡介-wenkub

2022-09-15 16:48:40 本頁面
 

【正文】 后,我們可以不必關心底層的運作,因為 MFC 自動將它完成了。因此,讀者不要希望使用 ODBC 會使一個簡單的數(shù)據(jù)庫馬上變成一個標準的關系數(shù)據(jù)庫引擎。 應用程序正是通過 ODBC 驅(qū)動來保證應用程序獨立于不同的 DBMS 系統(tǒng)。 ? ODBC database drivers:由一個或是多個 DLL構(gòu)成,其中含有 ODBC API,這些DLL由其擁有者: DBMS調(diào)用。 ODBC是種接口,它是通過相應的各個數(shù)據(jù)庫的 ODBC驅(qū)動來訪問各種數(shù)據(jù)庫中的數(shù)據(jù)。 在 NT 或是 98/95下面的控制面板里面都一個 ODBC數(shù)據(jù)源 (32位 )(如圖 151) 151 控制面板 ODBC 數(shù)據(jù)源控制臺就是 Windows 系統(tǒng)管理數(shù)據(jù)源的控制臺,所有的數(shù)據(jù)庫驅(qū)動,以及數(shù)據(jù)源登記都要在此發(fā)布,并向系統(tǒng)發(fā)出請求。讀者在下面的學習中可以體會到這一點。 VC對數(shù)據(jù)庫的支持 VC 從 ,而且提供了多種方法,而我將重點介紹 ODBC的引用?,F(xiàn)在的數(shù)據(jù)庫技術可以說是計算機技術的一個重要支柱,沒有數(shù)據(jù)庫的支持,現(xiàn)在的 Inter也無法運行起來。數(shù)據(jù)庫軟件現(xiàn)在一般指那些數(shù)據(jù)庫管理軟件,就如 SQL ,現(xiàn)在的數(shù)據(jù)庫軟件有很多,都支持關系模型。 現(xiàn)行的數(shù)據(jù)庫模型主要有四種:層次模型,網(wǎng)狀模型,關系模型,面向?qū)ο竽P?。在看此章書之前,希望讀者能夠看一本關于數(shù)據(jù)庫系統(tǒng)的教程,并且能夠?qū)W習一下 MICROSOFT 的數(shù)據(jù)庫軟件 SQL 。自 60年代以來,它就一直活躍在數(shù)據(jù)處理的領域,至今經(jīng)有了很大的發(fā)展,已經(jīng)成為計算機技術的一個重要分支。回顧一下前人的數(shù)據(jù)管理,如最簡單的帳目管理,需要記在本子上,效率低,安全性能差。當然不必深入研究,只要知道其中的一些概念就可以?,F(xiàn)在最流行的數(shù)據(jù)庫軟件都是關系模型,最有希望的模型就是面向?qū)ο竽P停?但是目前此技術還不很成熟。如: Oracle, SysBase等。而且對于數(shù)據(jù)庫前端的開發(fā)也是一個熱門項目。在 VC 中支持的 ODBC驅(qū)動有: SQL Server, Microsoft Access, Microsoft FoxPro, Microsoft Excel, dBASE, Paradox,Microsoft Oracle ODBC, Text files Microsoft對數(shù)據(jù)庫的支持 Microsoft對于數(shù)據(jù)庫的支持是多方面的,例如大家都知道的 SQL SERVER產(chǎn)品。 ODBC介紹和引用 ODBC的英文全稱是 Open Database Connectivity interface,翻譯過來就是開放數(shù)據(jù)源接口。通過使用 ODBC API 和 MFC ODBC 類 , 你可以訪問任何數(shù)據(jù)資源,無論這個數(shù)據(jù)源是本地的,還是遠處的。使用 ODBC,你能夠使自己的應用程序獨立于數(shù)據(jù)庫的硬件環(huán)境, ODBC 提供的 API函數(shù)獨立于數(shù)據(jù)庫管理系統(tǒng)( DBMS- the source database management system) ODBC 是 Microsoft的 Windows系統(tǒng)下的數(shù)據(jù)庫服務的一部分。 ? ODBC Cursor Library: 這也是一個動態(tài)連接庫文件 (),它是駐留在 ODBC驅(qū)動管理器和翻閱數(shù)據(jù)的句柄之間。否則應用程序需要直接和 DBMS 系統(tǒng)打交道,這將是很痛苦的事情,當你的程序還要運行于不同的DBMS 下的時候,你還要考慮兼容性。它只是一個橋梁,將訪問數(shù)據(jù)庫的鴻溝給掩蓋了,使得開發(fā)人員不必需要懂得太多的 DBMS的特征。一般 Windows 系統(tǒng)給出,驅(qū)動和數(shù)據(jù)源由相應的數(shù)據(jù)庫給出。然后按下按鈕添加,彈出一個如圖 154所示的對話框,在其中選擇驅(qū)動程序為 SQL Server,然后單擊完成按鈕。關 于 SQL 的配置和安裝請讀者參看相應的技術資料,但是在Windows98/95 下安裝 SQL 是較為簡單的,不必花費很多的精力。這些連接都封裝到了 CDatabase類中,一旦一個 CDatabase建立了一個對數(shù)據(jù)源的連接,你就可以完成對數(shù)據(jù)的讀取,修改,更新,以及處理。 要想正確使用 CDatabase 類,必須要在控制面板的 ODBC32 數(shù)據(jù)源控制臺里面正確登記。使用 ClassWizard或是 AppWizard都會自動的創(chuàng)建到指定的數(shù)據(jù)源的連接,你需要重載 CRecordset類中的 GetDefaultSQL函數(shù)來返回使用的表的名字。 ? 在記錄集中移動記錄指針 ? 增加、刪除和更新數(shù)據(jù)源 一旦不需要某個記錄集的相應的 CRecordset對象的時候,就要將它釋放掉 ,交回其占用的系統(tǒng)資源。 現(xiàn)在來詳細討論一下數(shù)據(jù)庫編程中的文檔視圖的應用: 1. 最小化的文檔支持: 在 AppWizard中有兩個選項來支持數(shù)據(jù)庫的訪問,每種選擇都會產(chǎn)生一個 CrecordView類的派生類和一個文檔類。同時我們又可以使用文檔的序列化的功能,例如用戶的特定信息。 Header files only Cview 類派生 同上 Database view without file support Crecordset 類派生 不支持序列化,但是用文檔放數(shù)據(jù) Database view with file support Crecordset 類派生 完全的序列化的支持 3. 什么時候可以不要文檔 作者的觀點是最好要文檔,但是有些時候沒有必要。 但是對于一些應用程序來說文檔是沒有必要的,應用程序操作的是數(shù)據(jù)源中的一條記錄,用戶只是與一條記錄打交道,這樣的話,文檔是多余的。當然這樣的話,在編程調(diào)試的時候?qū)⑤^為麻煩一些。 SQL和 ODBC API 作者在這里并不是下結(jié)論說 SQL語句好還是 ODBC API好,因為這完全取決編程人員的喜好以及任務的需要,但是 SQL語句還是應該知道的。一般的情況下,是可以定制RecordSet 的對象的 SQL 的語句的,已經(jīng)得到的特定記錄集,或者,也可以使用 Cdatabase的 ExcuteSQL函數(shù)直接執(zhí)行 SQL語句。一個 CrecordView對象就是用一個視圖中的控件來顯示數(shù)據(jù)庫中的記錄。同樣的 CRecordView 類支持缺省的游標 (游指向當前記錄的指針 )功能,能夠跳到記錄集頭,跳到記錄集末,或是記錄尾,或是向前移動一個,向后移動一個;同樣的,還留有一個接口用來更新數(shù)據(jù)源的數(shù)據(jù)。如果只是需要一個簡單的顯示,那用 AppWizard來生成一個數(shù)據(jù)庫視圖是最好的。讓用戶方便的在記錄集中移動游標。作者推薦使用 ID號來傳遞對話框模板信息。然后和 CRecordView 子類關聯(lián)的對話框模板上的控件的變量將會和相應的記錄集的數(shù)據(jù)關聯(lián)起來。這個函數(shù)非常有用,可以在這個函數(shù)里面寫上自己的缺省的更新語句。可以在函數(shù)體中更新語句,自己處理在記錄集中移動游標的功能。IsOnLastRecord函數(shù)在調(diào)用了函數(shù) OnRecordLast后,或是 CRecordset::MoveLast函數(shù)被調(diào)用后,返回值將是不可靠的值。必須重載這個函數(shù),以便能夠構(gòu)造 CRecordset 的派生類或是得到一個其派生類的一個指針。 這樣的使用的目的是為了在函數(shù)調(diào)用失敗后給出一個出錯信息。 對于 OnMove函數(shù)缺省的設置為:當用戶在視圖中修改數(shù)據(jù)后, OnMove將用戶的修改反映到數(shù)據(jù)源中去,進行數(shù)據(jù)源的修改。視圖將一直顯示最后一個記錄的數(shù)據(jù)。 下面舉例實現(xiàn)一個小小的數(shù) 據(jù)庫顯示程序: ? 在 File菜單中選擇 New命令,用 AppWizard來生成一個單文檔的 EXE工程,名字叫 DBView, ? 然后選中視圖文檔支持,然后在 AppWizard的第二步中選擇數(shù)據(jù)支持的時候選擇“ Database view without file support”,就如圖 158所示一樣。 1510 SQL登陸對話框 ? 選擇數(shù)據(jù)庫中的 (如圖 1511 所示)。程序的運行的界面就如圖 1514所示,讀者可以按一下工具欄上的按鈕,看一看程序顯示的是不是數(shù)據(jù)庫中的數(shù)據(jù)。 這樣讀者就已經(jīng)做成了一個自己的一個數(shù)據(jù)庫前端應用程序。 1514 顯示數(shù)據(jù)庫數(shù)據(jù)的前臺程序 RFX Record Field Exchange (RFX)就是支持剛才那個應用程序的一個交換機制,請讀者試著習慣使用英文縮寫來代替一些東西,這在計算機技術交流過程中是很有效的。 RFX 和對話框的數(shù)據(jù)交換 (DDX)類似。如果使用 AppWizared或是 ClassWizard來生成一個記錄集, RFX 機制就自動加入應用程序框架中去了。 有些時候用戶需要自己加入一些 RFX代碼,如: ? 使用帶參數(shù)的查詢。 RFX_Text(pFX, _T([au_fname]), m_au_fname)。 RFX_Text(pFX, _T([state]), m_state)。 RFX 機制將程序員從繁瑣的下層編程中解脫出來,自動完成大部分的數(shù)據(jù)交換工作。 CString m_au_fname。 CString m_state。 // Default connection string virtual CString GetDefaultSQL()。 dc) const。 CDatabase類 這個類的頭文件是 。例如: Microsoft SQL Server, Microsoft Access, Borland174。 為了可以使用 CDatabase 對象,需要調(diào)用構(gòu)造函數(shù),并調(diào)用 OpenEx或是 Open 函數(shù) ,這將會打開一個連接。通常不需用戶要直接操作這個變量。 3. CDatabase::Open virtual BOOL Open( LPCTSTR lpszDSN, BOOL bExclusive = FALSE, BOOL bReadOnly = FALSE, LPCTSTR lpszConnect = “ODBC。調(diào)用成功的話,會返回非零值,否則返回零值,并且會彈出一個出錯信息對話框,按下 Cancel 鍵來取消連接。 ? bReadOnly:為真時, 數(shù)據(jù)源將以只讀的方式讀出,否則就是可以修改數(shù)據(jù)源的。 調(diào)用這個函數(shù)就是為了初始化一個 CDatabase 對象。 這個函數(shù)的參數(shù)說明如下: ? lpszConnectString:用來描述一個 ODBC連接,是一個字符串。PWD=abc123。推薦使用 OpenEx 函數(shù)來打開一個數(shù)據(jù)源。 6. CDatabase::ExecuteSQL void ExecuteSQL( LPCSTR lpszSQL )。 7. CDatabase::CanTransact BOOL CanTransact( ) const。 用來設置連接時間,參數(shù) dwSeconds是連接時間,單位為秒,要是超時,就算失敗。 10. CDatabase::Rollback BOOL Rollback( )??赡茉谕瓿赡硞€處理動作的時候,突然出現(xiàn)中斷,如斷電,那么數(shù)據(jù)是否算修改了呢?所以數(shù)據(jù)庫中定義了一種事件,稱為事務,就是一個處理動作。 將返回當前所連接的數(shù)據(jù)源的名字 ,這個名字并不一定是在 ODBC 控制臺登記的名字,這取決于不同的 ODBC驅(qū)動。 用來判斷數(shù)據(jù)源是否可以修改,要是可以修改,就返回非零值,要是數(shù)據(jù)源是只讀的,返回零值。 提交一個數(shù)據(jù)庫事務,要是這個事務被數(shù)據(jù)庫確認后,函數(shù)將返回非零值,要是數(shù)據(jù)庫沒有確認這個事務,將返回零值。 CRecordset類 這個類的頭文件為 。一個 snapshot是一個靜態(tài)的記錄集。 ? 修改記錄,設定鎖定狀態(tài)。 為了使用戶能夠使用記錄集,在打開一個數(shù)據(jù)源的時候,需要構(gòu)造一個 Crecordset類。為了使自己的修改生效,要調(diào)用成員函數(shù) Requery 來使修改生效。但是在調(diào)用 Open函數(shù)之前,這個句柄是無效的。 5. CRecordset::m_strFilter 在你構(gòu)造了一個 CRecordset類后,在調(diào)用 Open函數(shù)之前,使用這個變量來填寫一個Cstring的變量。 下面是 CRecordset的成員函數(shù): 1. CRecordset::CRecordset CRecordset( CDatabase* pDatabase = NULL); 參數(shù)為 CDatabase 類型的指針。在打開一個數(shù)據(jù)源成功后,返回非零值,否則返回零值。CRecordset::readOnly。 CRecordset::useBookmarks。 CRecordset::userAllocMultiRowBuffers 。 用來判斷打開的數(shù)據(jù)源是否可以加入一個新的記錄,如是可以,就返回非零值,否則返回零值。 用來判斷數(shù)據(jù)源 是否支持重新執(zhí)行查詢語句,要是支持,就返回非零值,否則返回零值。 判斷數(shù)據(jù)源是否支持事務,要是支持,返回非零值,否則返回零值。 10. CRecordset::GetODBCFieldCount short GetODBCFieldCount( ) const; 用來得到記錄集中的 Field的個數(shù),返回值就是 Field的個數(shù)。 rStatus ) const。 用來得到一張表的名字,返回值就是指向表名的指針。 16. CRecordset::IsBOF BOOL IsBOF( ) const。 18 CRecordset::IsDeleted BOOL IsDeleted( ) const。 這個函數(shù)是用來加入
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1