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

正文內(nèi)容

小型圖書館管理系統(tǒng)數(shù)據(jù)庫-文庫吧

2025-04-24 07:25 本頁面


【正文】 重要支持技術(shù)。 ODBC 基本思想是提供獨立程序來提取數(shù)據(jù)信息,并具有向應用程序輸入數(shù)據(jù)的方法。由于有許多可行的通信方法、數(shù)據(jù)協(xié)議和 DBMS能力,所以 ODBC 方案可以通過定義標準接口來允許使用不同技術(shù),這種方案導致了數(shù)據(jù)庫驅(qū)動程序的新概念-動態(tài)鏈接庫 (DDL)。應用程序可按請求啟動動態(tài)鏈接庫,通過特定通信方法訪問特定數(shù)據(jù)源,同時 ODBC提供了標準接口,允許應用程序編寫者和庫提供者在應用程序和數(shù) 據(jù)源之間交換數(shù)據(jù)。 為了保證標準性和開放性, ODBC 的結(jié)構(gòu)分為四層:應用程序 (Application)、驅(qū)動程序管理器 (Driver Manager)、驅(qū)動程序 (Driver)、數(shù)據(jù)源 (Data Source)。驅(qū)動程序管理器與驅(qū)動程序?qū)τ趹贸绦騺碚f都表現(xiàn)為一個單元,它處理 ODBC 函數(shù)調(diào)用。 所示為基于客戶機 /服務器的 ODBC 體系結(jié)構(gòu)。 * 應用程序 (Application) 應用程序本身不直接與數(shù)據(jù)庫打交道,主要負責處理并調(diào)用 ODBC 函數(shù),發(fā)送對數(shù)據(jù)庫的SQL請求及取得結(jié)果。 * 驅(qū)動程序管理器 (Driver Manager ) 驅(qū)動程序管理器是一個帶有輸入程序的動態(tài)鏈接庫 (DLL),主要目的是加載驅(qū)動程序,處理ODBC 調(diào)用的初始化調(diào)用,提供 ODBC調(diào)用的參數(shù)有效性和序列有效性。 * 驅(qū)動程序 (Driver) 驅(qū)動程序是一個完成 ODBC 函數(shù)調(diào)用并與數(shù)據(jù)之間相互影響的 DLL,當應用程序調(diào)用。 * 數(shù)據(jù)源 (Data Source) 包括用戶想訪問的數(shù)據(jù)以及與其相關(guān)的操作系統(tǒng)、 DBMS和用于訪問 DBMS的網(wǎng)絡平臺。 ODBC 接口的優(yōu)勢之一為互操作性,程序設計員可以在不指定特定數(shù)據(jù)源情況下創(chuàng)建ODBC應用程序 。從應用程序角度方面,為了使每個驅(qū)動程序和數(shù)據(jù)源都支持相同的 ODBC函數(shù)調(diào)用和 SQL語句集, ODBC接口定義了一致性級別,即 ODBC API 一致性和 ODBC SQL語法一致性。一致性級別通過建立標準功能集來幫助應用程序和驅(qū)動程序的開發(fā)者,應用程序可以很容易地確定驅(qū)動程序是否提供了所需的功能,驅(qū)動程序可被開發(fā)以支持應用程序選項,而不用考慮每個應用程序的特定請求。 客戶機/服務器結(jié)構(gòu) (C/S) 二層的 C/S結(jié)構(gòu)是指以單一的服務器和局域網(wǎng)為核心,能通過客戶端與用戶進行直接對話。主要有二大功能:一是它用 于檢查用戶從鍵盤等輸入的數(shù)據(jù) ,顯示應用輸出的數(shù)據(jù)。為使用戶能直觀地進行操作 ,一般要使用圖形用戶接口 (GUI),操作簡單、易學易用。在變更用戶接口時 ,只需改寫顯示控制和數(shù)據(jù)檢查程序 ,而不影響其他。檢查的內(nèi)容也只限于數(shù)據(jù)的形式和值的范圍 ,不包括有關(guān)業(yè)務本身的處理邏輯。另一個是確認用戶對應用和數(shù)據(jù)庫存取權(quán)限的功能以及記錄系統(tǒng)處理日志。 典型的 C/S結(jié)構(gòu)有以下特點: 。服務器負責數(shù)據(jù)管理及程序處理 ??蛻魴C負責界面描述和界面顯示 ??蛻魴C向服務器提出處理要求 。服務器響應將處理結(jié)果返回客戶機 。使網(wǎng)絡數(shù) 據(jù)流量最少 近幾年,客戶機 /服務器體系日益成熟而且應用越來越廣泛,許多圖書館管理系統(tǒng)都用這種結(jié)構(gòu)進行設計。開放式數(shù)據(jù)庫互連 (ODBC)技術(shù)成為這一體系中數(shù)據(jù)庫之間管理和應用程序開發(fā)的強大工具。 MFC ODBC 因為本系統(tǒng)主要用到 MFC ODBC 編程,所以詳細的介紹其使用方法: VisualC++的 MFC類庫定義了幾個數(shù)據(jù)庫類。在利用 ODBC 編程時,經(jīng)常要使用到CDatabase(數(shù)據(jù)庫類 ), CRecordSet(記錄集類 )和 CRecordView(可視記錄集類 )。 其中: CDatabase 類對象提供了對數(shù)據(jù)源的連接,通過它你可以對數(shù)據(jù)源進行操作。 CRecordView 類對象能以控制的形式 顯示數(shù)據(jù)庫記錄。這個視圖是直接連到一個CRecordSet對象的表視圖。 CRecordSet類對象提供了從數(shù)據(jù)源 中提取出的記錄集。 CRecordSet對象通常用于兩種形式: 動態(tài)行集( dynasets)和快照集( snapshots)。動態(tài)行集能保 持與其他用戶所做的更改保持同步??煺占瘎t是數(shù)據(jù)的一個靜態(tài)視圖。每一種形式在記錄集被打開時都提供一組記錄,所不同的是,當你在一個 動態(tài)行集里滾 動到一條記錄時,由其他用戶或是你應用程序中的其他記錄集對該記錄所做的更改會相應地顯示出來。 Visual C++提供了幾種記錄集,可以用來定制應用程序的工作方式。查看這些不同選項的最快方式要兼顧速度和特征。你會發(fā)現(xiàn),在很多情況下,如果想添加特征,就必須付出程序執(zhí)行速度降低的代價。下面告訴你一些可以自由支配的記錄集選項。更重要的是,要告訴你從這個選項可以獲得更快的速度還是更多的特征。 1)、 Snapshot(快照) 這個選項要 Visual C++在一次快照中下載整個查詢。換言之,及時快速地給數(shù) 據(jù)庫內(nèi)容拍照,并把它作為未來工作的基礎。這種方法有三個缺點。第一,你看不到別人在網(wǎng)絡上做的更新,這可能意味著你的決定是建立在老信息的基礎上。第二,一次就下載所有這些記錄,這意味著在下載期間給網(wǎng)絡增加了沉重的負擔。第三,記錄下載時用戶會結(jié)束等待,這意味著網(wǎng)絡的呼叫性能變得更低。然而這種方法也有兩個優(yōu)點。第一,記錄一旦被下載,該工作站所需的網(wǎng)絡活動幾乎就沒有了棗這為其它請求釋放了帶寬??傊?,你會看到網(wǎng)絡的吞吐量增大了。第二,因為所有被申請的記錄都在用戶的機器上,所以用戶實際上會得到應用程序更佳的總體性能。你可能 想把快照的方法限制在較小的數(shù)據(jù)庫上使用,原因在于快照適用于用戶請求信息而不適用于數(shù)據(jù)編輯會話。 2)、 Dynaset(動態(tài)集) 使用這個選項時, Visual C++創(chuàng)建指向所請求的每個記錄的實際指針。另外,只有填充屏幕時實際需要的記錄是從服務器上下載來的。這種方法的好處很明顯。幾乎馬上就能在屏幕上看到記錄。而且還會看到其它用戶對數(shù)據(jù)庫所做的更改。最后,其它用戶也會看到你做的更改,因為動態(tài)集在你更改記錄時被上載到服務器上。很明顯,這種方法要求對服務器的實時訪問,它減小了網(wǎng)絡總吞吐量并降低了應用程序的性能。這個 選項適合于創(chuàng)建用戶要花費很多時間來編輯數(shù)據(jù)的應用程序。同時,它也是大型數(shù)據(jù)庫的最佳選擇,原因在于只需下載用戶實際需要的信息。 ODBC 需導出類 可以應用 AppWizard來建立一個 ODBC 的應用程序框架,也可以直接使用 ODBC 來進行數(shù)據(jù)庫編程,這時,應包括頭文件 。 應用 ODBC 編程兩個最重要的類是 CDatabase 和 CRecordSet,但在應用程序中,不應直接使用 CRecordSet類,而必須從 CRecordSet類產(chǎn)生一個導出類,并添加相應于數(shù)據(jù)庫表中字段的成員變量。隨后 ,重載 CRecordset類的成員函數(shù) DoFieldExchange,該函數(shù)通過使用 RFX函數(shù)完成數(shù)據(jù)庫字段與記錄集域數(shù)據(jù)成員變量的數(shù)據(jù)交換, RFX函數(shù)同對話框數(shù)據(jù)交換( DDX)機制相類似,負責完成數(shù)據(jù)庫與成員變量間的數(shù)據(jù)交換。 數(shù)據(jù)庫連接 在 CRecordSet類中定義了一個成員變 量 m_pDatabase: CDatabase *m_pDatabase。 它是指向?qū)ο髷?shù)據(jù)庫類的指針。如果在 CRecordSet類對象調(diào)用 Open()函數(shù)之前,將一個已經(jīng)打開的 CDatabase類對象指針傳 給 m_pDatabase,就能共享相同 的 CDatabase類對象。如: CDatabase m_db。 CRecordSet m_set1,m_set2。 (_T(Super_ES))。 // 建 立 ODBC 連 接 =amp。m_db。 //m_set1 復 用 m_db 對 象 =amp。m_db。 // m_set2 復 用 m_db 對 象 或如下: Cdatabase db。 (“Database”)。 //建立 ODBC 連接 CrecordSet m_set(amp。db)。 //構(gòu)造記錄集對象 ,使數(shù)據(jù)庫指向 db 查詢記錄 查詢記錄使用 CRecordSet::Open()和 CRecordSet::Requery()成員函數(shù)。在使用CRecordSet類對象之前,必須使用 CRecordSet::Open()函數(shù)來獲得有效的記錄集。一旦已經(jīng)使用過 CRecordSet::Open() 函數(shù),再次查詢時就可以應用CRecordSet::Requery()函數(shù)。在調(diào) 用 CRecordSet::Open()函數(shù)時,如果已經(jīng)將一個已經(jīng)打開的 CDatabase 對象指針傳給 CRecordSet類對象的 m_pDatabase 成員變量,則使 用該數(shù)據(jù)庫對象建立 ODBC 連接;否則如果 m_pDatabase 為空指 針,就新建一個CDatabase類對象并使其與缺省的數(shù)據(jù)源 相連,然后進行 CRecordSet類對象的初始化。缺省數(shù)據(jù)源 由 GetDefaultConnect()函數(shù)獲得。你也可以提供你所需要的 SQL 語句,并以它來調(diào)用 CRecordSet::Open()函數(shù),例如:(AFX_DATABASE_USE_DEFAULT,strSQL)。如果沒有指定參數(shù),程序則使 用缺省的 SQL語句,即對在 GetDefaultSQL()函數(shù)中指定的 SQL語 句進行操作: CString CTestRecordSet::GetDefaultSQL() {return _T([BasicData],[MainSize])。} 對于 GetDefaultSQL()函數(shù)返回的表名, 對應的缺省操作是 SELECT語句,即: SELECT * FROM BasicData,MainSize 查詢過程中也可以利用 CRecordSet的 成員變量 m_strFilter和 m_strSort來執(zhí)行條件查詢和結(jié)果排序。 m_strFilter 為過濾字符串,存放著 SQL語句中 WHERE后的條件串;m_strSort 為排序字符串,存放著 SQL語句中 ORDERBY后的字符串。 如: =TYPE=39。電動機 39。 =VOLTAGE。 ()。 對應的 SQL語句為: SELECT * FROM BasicData,MainSize WHERE TYPE=39。電動機 39。 ORDER BY VOLTAGE 除了直接賦值給 m_strFilter 以外,還 可以使用參數(shù)化。利用參數(shù)化可以更直觀,更方便地 完成條件查詢?nèi)蝿?。使用參?shù)化的步驟如下: (1).聲明參變量: Cstring p1。 Float p2。 (2).在構(gòu)造函數(shù)中初始化參變量 p1=_T()。 p2=。 m_nParams=2。 (3).將參變量與對應列綁定 pFXSetFieldType(CFieldExchange::param) RFX_Text(pFX,_T(P1),p1)。 RFX_Single(pFX,_T(P2),p2)。 完成以上步驟之后就可以利用 參變量進行條
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1