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

正文內(nèi)容

數(shù)據(jù)庫智能查詢接口的實現(xiàn)-閱讀頁

2024-12-27 08:53本頁面
  

【正文】 開發(fā)此軟件時用的是 VC 中的MFC 框架。 Microsoft SQL Server2021 數(shù)據(jù)庫 所謂數(shù)據(jù)庫,一些關(guān)于某 個特定主體或目的的信息集合。 Microsoft Access 是微軟公司推出的桌面數(shù)據(jù)庫應(yīng)用系統(tǒng),數(shù)據(jù)庫應(yīng)用系統(tǒng)是幫助人們創(chuàng)建數(shù)據(jù)庫應(yīng)用程序的軟件, Access就是一個面向?qū)ο蟮年P(guān)系性數(shù)據(jù)庫的應(yīng)用系統(tǒng)。定義表之間的關(guān)系已合并個表數(shù)據(jù)。 Access 中的各種向?qū)椭脩舴奖憧旖莸貏?chuàng)建各種數(shù)據(jù)庫對象 。 MFC 是一種十分優(yōu)秀的工具 ,使得面向?qū)ο蟮能浖瘮?shù)包裝技術(shù)演變成為一種可以進行代碼復(fù)用、簡化了程序的復(fù)雜性并使程序更加有效的軟件開發(fā)環(huán)境 ..對于使用 Windows API 進行應(yīng)用程序開發(fā)的人員來說 , MFC 使程序員大大提高了程序開發(fā)效率 .你不必創(chuàng)建 GDU 對象 ,不必編寫許多代碼行對這些對象進行初始化 ,并且小心地跟蹤其生命周期的運行情況 ,你只需建立一個 MFC 類的實例 ,使用其默認值 ,然后讓撤消程序來清除系統(tǒng)資源即可 . VC++ ADO 數(shù)據(jù)訪問技術(shù) Microsoft 新近推出的 UDA(Universal Data Access,一致數(shù)據(jù)訪問技術(shù) )為關(guān)系型或非關(guān)系型數(shù)據(jù)訪問提供了一致的訪問接口 ,為企業(yè)級Intra 應(yīng)用多層軟件結(jié)構(gòu)提供了數(shù)據(jù)接口標準。OLE DB 提供了底層軟件接口 ,可在C/C++語言中直接使用。一致數(shù)據(jù)訪問技術(shù)建立在 Microsoft 的 COM(組件對象模型 )基礎(chǔ)上 ,它包括一組 COM 組件程序 ,組件與組件之間或者組件與客戶程序之間通過 標準的 COM 接口進行通訊。本文將首先介紹 ADO 和 OLE DB 的結(jié)構(gòu)模型 ,以便讀者了解 ADO 與 OLE DB之間的關(guān)系 ,然后介紹 ADO 的對象模型和 ADO 的一些特性 ,同時我們也將通過一些例子代碼向讀者展示 ADO 的用法。傳統(tǒng)的解決方案是使用大型的數(shù)據(jù)庫系統(tǒng) ,把所有這 些數(shù)據(jù)都移到數(shù)據(jù)庫系統(tǒng)中 ,然后按照操作數(shù)據(jù)庫的辦法對這些數(shù)據(jù)進行訪問 ,這樣做雖然能夠按統(tǒng)一的方式對數(shù)據(jù)進行各種操作 ,但這種間接訪問方式帶來了很多問題 ,比如數(shù)據(jù)更新不及時、空間資源的冗余和訪問效率低等等。并且 UDA 技術(shù)在統(tǒng)一數(shù)據(jù)訪問接口的同時 ,它的多層結(jié)構(gòu)使數(shù)據(jù)使用方有了更多的選擇機會 ,而它強大的擴展能力也 給數(shù)據(jù)提供方留下了更多的擴展余地 ,這種開放型的軟件結(jié)構(gòu)使它具有極強的生命力 ,所以 ,這種技術(shù)從一推出便獲得了廣泛的歡迎 ,可以說 ,UDA技術(shù)是繼 ODBC 之后的又一數(shù)據(jù)訪問技術(shù)的飛躍。 ADO 是應(yīng)用層的編程接口 ,它通過 OLE DB 提供的 COM 接口訪問數(shù)據(jù) ,它適合于各種客戶機 /服務(wù)器應(yīng)用系統(tǒng)和基于 Web 的應(yīng)用 ,尤其在一些腳本語言中訪問數(shù)據(jù)庫操作是 ADO 的主要優(yōu)勢。 應(yīng)用程序既可以通過 ADO 訪問數(shù)據(jù)也可以直接通過 OLE DB 訪問數(shù)據(jù) ,而 ADO 則通過 OLE DB 訪問底層數(shù)據(jù)。另一部分由系統(tǒng)提供 , 包括一些高級服務(wù) ,如游標功能、分布式查詢等等。 由于 OLE DB 和 ADO 都以 COM組件的形式實 現(xiàn) ,所以 COM 組件的各種特性也使得構(gòu)建數(shù)據(jù)應(yīng)用更為靈活 ,而不僅僅局限于一般的客戶機 /服務(wù)器或 Web 應(yīng)用模型 ,它既適合于以數(shù)據(jù)為中心的應(yīng)用 ,也適合于多層結(jié)構(gòu)的分布式軟件系統(tǒng)。利用從 COM 到 DCOM 的位置透明技術(shù) ,我們可以很方便地建立分布式應(yīng)用系統(tǒng) 。所有這些功能都無需數(shù)據(jù)提供方編寫代碼實現(xiàn) ,只需在 DCOM 或 MTS 環(huán)境中進行常規(guī)的配置即可。 OLE DB 模型主要包括以下一些 COM 對象 : (1)數(shù)據(jù)源 (Data Source)對象 數(shù)據(jù)源對象對應(yīng)于一個數(shù)據(jù)提供 者 ,它負責管理用戶權(quán)限、建立與數(shù)據(jù)源的連接等初始操作。 (3)命令 (Command)對象 數(shù)據(jù)使用者利用命令對象執(zhí)行各種數(shù)據(jù)操作 ,如查詢命令、修改命令等。OLE DB 的對象模型非常簡單 ,這種簡單性也帶來了靈活性 ,從上面的幾個 COM 對象也可以看出這一點。 ADO 對象模型 ADO 對象模型定義了一 組可編程的自動化對象 ,可用于 Visual Basic、 Visual C++、 Java 以及其他各種支持自動化特性的腳本語言。ADO 的另一個特性是使用簡單 ,不僅因為它是一個面向高級用戶的數(shù)據(jù)庫接口 ,更因為它使用了一組簡化的接口用以處理各種數(shù)據(jù)源。 ADO 實際上是 OLE DB 的應(yīng)用層接口 ,這種結(jié)構(gòu)也為一致的數(shù)據(jù)訪問接口提供了很好的擴展性 ,而不再局限于特定的數(shù)據(jù)源 ,因此 ,ADO可以處理各種 OLE DB 支持的數(shù)據(jù)源。 一個典型的 ADO 應(yīng)用使用 Connection 對象建立與數(shù)據(jù)源的連接 ,然后用一個 Command 對象給出對數(shù)據(jù)庫操作的命令 ,比如查詢或者更新數(shù)據(jù)等 ,而 Recordset 用于對結(jié)果集數(shù)據(jù)進行維護或者瀏覽等操作。 在 Connection、 Command 和 Recordset 3 個對象中 ,Command 對象是個可選對象 ,它是否有效取決于 OLE DB 數(shù)據(jù)提供者是否實現(xiàn)了ICommand 接口。 從結(jié)構(gòu)上看 ,ADO 模型非常簡單 ,但使用上又非常靈活 ,下面我們先從單個對象的角度進行討論 : (1) Connection 對象 Connection 對象代表與數(shù)據(jù)源之間的一個連接 ,ADO 的 Connec tion 對象封裝了 OLE DB 的數(shù)據(jù)源對象和會話對象。利用Connection 對象 ,我們可以完成以下一些基本設(shè)置操作。 CursorLocation 屬性以便指定使用客戶端游標 ,以便在客戶程序中使用批處理修改方式。 OLE DB 提供者的屬性 Provider。 Execute 方法執(zhí)行命令。 Errors 集合屬性檢查數(shù)據(jù)源的錯誤信息。 Connection 對象是 ADO 的基本對象之一 ,它獨立于所有其他的對象。使用 Execute 方法比較簡便 ,但用 Command對象可以保存命令的信息 ,以便多次查詢。 Command 對象的用法下 : CommandText 屬性設(shè)置命令串。 Execute 方法執(zhí)行命令 ,可能的話返回 Recordset 對象。 Prepared 屬性指示底層的提供者為當前命令準備一個編譯過的版本 ,以后再執(zhí)行時 ,速度會大大加快。 ActiveConnection 屬性 ,為命令指定連接串 ,Command 對象將在內(nèi)部創(chuàng)建 C onnection 對象。 Command 對象執(zhí)行時 ,既可以通過 ActiveConnection 屬性指定相連的 Connection 對象 ,也可以獨立于 Connection 對象 ,直接指定連接串 ,即使連接串與 Connection 對象的連接串相同 ,Command 對象仍然使用其內(nèi)部的數(shù)據(jù)源連接。記錄集是 ADO 管理數(shù)據(jù)的基本對象 ,所有的 Recordset 對象都 按照行列方式的表狀結(jié)構(gòu)進行管理 ,每一行對應(yīng)一個記錄 (Record),每一列對應(yīng)一個域 (Field)。動態(tài)游標允許各種移動操作 ,包括前移、后移等等 ,并且其他用戶所做的操作也可以直接反映出來。 鍵集 (keyset)游標 類似 于動態(tài)游標 ,也能夠看到其他用戶所做的數(shù)據(jù)修改 ,但不能看到其他用戶新加的記錄 ,也不能訪問其他用戶刪除的記錄。 Open 方法打開記錄集數(shù)據(jù) ,既可以在 Open 之前對ActiveConnection屬性賦值 , 指定 Recordset對象使用連接對象 ,也可以直接在 Open 方法中指定連接串參數(shù) ,ADO 將創(chuàng)建一個內(nèi)部連接 ,即使連接串與外部的連接對象相同 ,它也使用新的連接對象。 MoveFirst、 MoveLast、 MoveNext 和 MovePrevious 方法可以對記錄集的游標進行移動操作。 提供了兩種記錄修改方式 :立即修改和批修改。 在批修改方式下 ,可以對多條記錄進行修改 ,然后調(diào)用UpdateBatch 方法把所有的修改遞交到底層數(shù)據(jù)源。 Recordset 對象是 ADO 數(shù)據(jù)操作的核心 ,它既可以作為 Connection對象或 Command 對象執(zhí)行特定方法的結(jié)果數(shù)據(jù)集 ,也可以獨立于這兩個對象而使用 ,由此可以看出 ADO 對象在使用上的靈活性。由于并不是所有的底層提供者都有同樣的性能 ,所以 ADO 允許用戶動態(tài)訪問底層提供者的能力。ADO 的其他集合對象及其元素對象 ,都用在特定的上下文環(huán)境中 ,比如 Parameter 對象一定要與某個 Command 對象相聯(lián)系后 ,才能真正起作用。 第四章 總體設(shè)計 系統(tǒng)模塊分析 整個系統(tǒng)分為六個部分??荚囆畔⒈?。 ( 3)同義詞輸入。 ( 5)生成查詢語言。 系統(tǒng)結(jié)構(gòu)圖 數(shù)據(jù)據(jù) 操 作 作 開始 結(jié)束 數(shù)據(jù)庫創(chuàng)建 同義詞輸 入入 建立詞典 建立年份科類 建立省份專業(yè) 建立考試信息 數(shù)據(jù)存取 輸入檢查 產(chǎn)生查詢結(jié)果傳輸 同義詞入庫 生成查詢語言傳輸 成員變量 CAccountAdo Ado,Adod。 輸入自然語言的關(guān)鍵詞 CString strYear[8]。 } 保存數(shù)據(jù)庫字段數(shù)據(jù) bool CAccountAdo::Add_Field(LPCSTR FieldName,LPCSTR RealData,int Data_Type) { try{ switch (Data_Type){ case 0: m_pRecordsetFieldsGetItem(_variant_t(FieldName))Value=RealData。 case 2: m_pRecordsetFieldsGetItem(_variant_t(FieldName))Value=short(atoi(RealData))。 case 3: m_pRecordsetFieldsGetItem(_variant_t(FieldName))Value=long(atol(RealData)); break。 break。 } catch( __error amp。 } return false。 try{ hr = (_uuidof(Connection))。 } else { ::MessageBox(NULL,ERROR 。 } hr=()。 return hr == S_OK。e ) { dump__error(e)。 } 打開表 bool CAccountAdo::OpenRecord(LPCSTR lpSqlstring) { HRESULT hr = S_OK。 return hr == S_OK。e) { dump__error(e)。 } 同義詞典輸入 CString strSQL,strTmp,strBuf。 UpdateData(true)。 ()。 return。 intProvince=atoi((LPCSTR)(()))。 return。 strTmp=strBuf。 if(()=0) { dis_status(輸入新語義 )。 } (select * from dictionary where trim(name)=39。 \ and table_id=%d and word_id=%d,(LPCSTR)m_edit3,intProvince,intWord)。 ()。 ()。 } if(()) { dis_status(語義已存在 )。 return。 (name,(LPCSTR)m_edit3,0)。 (table_id,(LPCSTR)strBuf,2)。 (word_id,(LPCSTR)strBuf,2)。 (%d,())。 ()。 m_edit3=。 UpdateData(false)。 ()。 char szBuf[10]。 bool bFind。 int i,len,k,j。 //CStr
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1