




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第9章 數(shù)據(jù)庫應用程序開發(fā),9.1游標的管理,9.3管理系統(tǒng)開發(fā)實例,9.2客戶端訪問SQL Server的方式,主要內容,游標的概念 游標的基本操作 應用程序訪問數(shù)據(jù)庫的過程 ODBC數(shù)據(jù)源的配置 OLE DB接口的體系結構 利用ADO控件連接數(shù)據(jù)庫的方法 基于SQL Server 2005應用開發(fā)的基本流程,9.1游標的管理,9.1.1 游標的簡介及用途 1.游標的概念 游標(Cursor)是一種處理數(shù)據(jù)的方法,為了查看或者處理結果集中的數(shù)據(jù),游標提供了在結果集中向前或者向后瀏覽數(shù)據(jù)的能力。我們可以把游標看成一個在記錄集中的指針,通過這個指針既可以指向當前位置,又可以指向結果集中的任意位置,并且允許用戶對指定位置的數(shù)據(jù)進行處理,可以把結果集中的數(shù)據(jù)放在數(shù)組、應用程序或其他位置。,2.使用游標的優(yōu)點 允許程序對由查詢語句SELECT返回的記錄集中的每一行數(shù)據(jù)執(zhí)行相同或不同的操作,而不是對整個行集合執(zhí)行同一個操作; 提供對基于游標位置的行進行刪除和更新的能力; 游標實際上作為面向集合的數(shù)據(jù)庫管理系統(tǒng)和面向行的程序設計之間的橋梁,使這兩種處理方式通過游標聯(lián)系起來。提供腳本、存儲過程和觸發(fā)器中使用的用于訪問結果集中數(shù)據(jù)的T-SQL語句。,1游標的聲明: 格式:DECLARE cursor_nameinsensitiveSCROLLCURSOR local global static|keyset|dynamic FOR select_statement forREAD ONLY|UPDATEOF column_name_list,9.1.2游標的基本操作,2游標的創(chuàng)建過程 1)打開Microsoft SQL Server Manager 管理器。單擊常用工具欄中的按鈕,新建一個數(shù)據(jù)庫查詢文檔,如圖9.1所示。,圖 9. 1 新建查詢,2)在數(shù)據(jù)庫引擎查詢文檔中輸入如下代碼: Use xs Declare hy1 cursor for Select * from 學生 where 性別=男 只讀游標的創(chuàng)建: Use xs Declare hy2 cursor for Select * from 學生where 入學成績500 For read only 更新游標的創(chuàng)建: Use xs Declare hy3 cursor for Select * from 學生 where 班級=計算機 For update 正確輸入后,按鍵盤上的“F5”鍵執(zhí)行SQL語句,顯示如下提 示信息: Command(s) completed successfully。 創(chuàng)建游標完畢。,3游標的打開 格式:OPEN GLOBAL cursor_name|cursor_variable_name 說明: Cursor_name:要打開的游標名。 cursor_variable_name:游標變量名,該變量名是引用了的一個游標。 GLOBAL: 用來說明打開的是全局游標,省略時打開局部游標。 4游標數(shù)據(jù)的讀取 創(chuàng)建游標并打開游標以后,利用T-SQL可以讀取游標中的數(shù)據(jù),語法格式如下: Fetch next | prior | first | last absolute n | relative n From 游標名 into 變量名,5關閉游標: 利用游標處理完數(shù)據(jù)之后,必須關閉游標,格式如下: Close 游標名稱 6釋放游標 游標關閉以后并沒有釋放游標所占用的系統(tǒng)資源,因此關閉游標以后,必須釋放游標才能釋放游標所占的系統(tǒng)資源,格式如下: Deallocate 游標名稱,9.2 客戶端訪問SQL SERVER的方式,數(shù)據(jù)庫應用程序是通過SQL Server 2005應用程序接口向SQL Server服務器發(fā)送SQL語句,實現(xiàn)數(shù)據(jù)庫的訪問。因此,要想訪問數(shù)據(jù)庫,必須學習使用SQL Server應用程序接口。 SQL SERVER 2005采用了分層的通信體系結構,把應用程序與底層的網絡協(xié)議分隔開,用戶可以通過數(shù)據(jù)庫對象或API應用程序接口訪問數(shù)據(jù)庫。 應用程序采用數(shù)據(jù)庫應用程序接口(API)開發(fā)。 數(shù)據(jù)庫接口:是應用程序給SQL SERVER發(fā)送請求和處理 SQL SERVER返回結果的接口。,應用程序接口:數(shù)據(jù)庫API定義一個應用程序如何連接到數(shù) 據(jù)庫,包括兩類數(shù)據(jù)庫API: ODBC和OLE DB。 ODBC:是一個標準的訪問數(shù)據(jù)庫的編程接口,支持使用 ODBC數(shù)據(jù)對象接口寫的應用程序或者組件。 OLE DB:是一個基于組件對象模型(COM)的數(shù)據(jù)庫訪 問接口,它支持使用OLE DB數(shù)據(jù)對象接口寫的 應用程序。 數(shù)據(jù)庫對象接口ADO(Active X Data Objects): 是一個在簡化數(shù)據(jù)模型中封裝的OLE DB API,使用ADO進行開發(fā)要比使用OLE DB開發(fā)的速度快,OLE DB是使用ADO的基礎,ADO可以在VB,VC,ASP中使用。,9.2.1 ODBC接口 ODBC定義: ODBC是Open DatabaseConnectivity的英文簡 寫。它是一種用來在相關或不相關的DBMS中存取數(shù) 據(jù)的,用C語言實現(xiàn)的標準應用程序數(shù)據(jù)接口。通過 ODBC API,應用程序可以存取保存在多種不同DBMS 中的數(shù)據(jù),而不論每個DBMS使用了何種數(shù)據(jù)存儲格式 和編程接口。 在使用ODBC連接SQL Server2005數(shù)據(jù)庫之前,必須在ODBC中配置SQL Server數(shù)據(jù)源。數(shù)據(jù)源存儲了如何與指定數(shù)據(jù)庫連接的信息,有三種類型:文件DSN、系統(tǒng)DSN、用戶DSN。,在Windows2003的【控制面板】中的管理工具中選擇【數(shù)據(jù)源(ODBC)】,如圖9.7所示:,圖 9.7創(chuàng)建數(shù)據(jù)源窗口,用戶DSN:只能被當前登陸的用戶管理和使用,只有創(chuàng)建者才能使用,只能在本地機器上運行。 系統(tǒng)DSN:對于同一計算機或服務器上的所有用戶都可以使用。所有Windows下的應用程序都可以使用系統(tǒng)數(shù)據(jù)源。 文件DSN:是以文件形式儲存的數(shù)據(jù)源配置,是ODBC3.0以上版本增加的一種數(shù)據(jù)源。 配置數(shù)據(jù)源的過程如下: 1點擊“用戶DSN”或者“系統(tǒng)DSN”后,點擊【添加】按 鈕,系統(tǒng)彈出如圖9.8所示:,圖 9.8 配置數(shù)據(jù)源,2在驅動程序中選擇“SQL Server”驅動程序, 點擊完成按鈕,彈出圖9.9。,圖 9.9 配置數(shù)據(jù)源,3在名稱中輸入新數(shù)據(jù)源的名稱,用來被應用程序使用。在描述中輸入該數(shù)據(jù)源的說明文字。在服務器中選擇需要連接的數(shù)據(jù)庫服務器的名稱。然后單擊【下一步】按鈕出現(xiàn)圖9.10:圖 9.10 配置數(shù)據(jù)源,圖 9.10 配置數(shù)據(jù)源,4單擊客戶端配置可以配置客戶端連接服務器使用的通訊協(xié)議和端口。在登錄ID和密碼中輸入登錄數(shù)據(jù)庫的用戶名和密碼。單擊【下一步】進入圖9.11所示畫面:,圖 9.11 配置數(shù)據(jù)源,5更改默認數(shù)據(jù)庫為當前數(shù)據(jù)庫連接要訪問的數(shù)據(jù)庫單擊【下一步】彈出圖9.12: 6單擊測試數(shù)據(jù)源按鈕,可以看到新數(shù)據(jù)源與數(shù)據(jù)庫連接是否正確。,圖 912 測試數(shù)據(jù)源,9.2.2 OLE DB接口 微軟定義了OLE DB用戶的4個主要層次: 數(shù)據(jù)提供者:使用OLE DB SDK(軟件開發(fā)工具)創(chuàng)建OLE DB提供者的人。提供者用戶與數(shù)據(jù)庫和事件交互作用,發(fā)信號通知特殊事件的發(fā)生。 數(shù)據(jù)消費者:訪問數(shù)據(jù)庫中信息的應用程序、系統(tǒng)驅動程序或者用戶。 數(shù)據(jù)服務提供者:創(chuàng)建用以增強用戶或者數(shù)據(jù)庫管理員使用管理數(shù)據(jù)庫能力的獨立應用程序的開發(fā)者 部件開發(fā)者:創(chuàng)建應用程序部件或模塊,以減少創(chuàng)建數(shù)據(jù)庫應用程序所需的編碼工作。如VB6.0提供的ADO組件。 一般來說,數(shù)據(jù)庫應用程序即OLE DB消費者是通過OLE DB用戶界面和OLE DB 提供者(Provider)來訪問數(shù)據(jù)源,他們之間的關系如圖9.13所示。,圖 9.13 OLE DB消費者和 使用者之間的關系,對于不同的OLE DB提供者,OLE DB 提供不同級別的功能,但是他們都支持一個通用的用戶界面。不同的OLE DB數(shù)據(jù)源使用自己的數(shù)據(jù)源,他們之間的關系如圖9.14所示。,圖 914 應用程序通過ADO 調用OLE DB的模型,9.2.3 ADO組件 Active數(shù)據(jù)對象(ActiveDataObjects):ADO實際是一種提供訪問各種數(shù)據(jù)類型的連接機制。ADO設計為一種極簡單的格式,通過ODBC的方法同數(shù)據(jù)庫接口??梢允褂萌魏我环NODBC數(shù)據(jù)源,即不止適合于SQLServer、Oracle、Access等數(shù)據(jù)庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數(shù)據(jù)文件。ADO是基于OLE DB之上的技術,因此ADO 通過其內部的屬性和方法提供統(tǒng)一的數(shù)據(jù)訪問接口方法。 ADO可以編寫OLE DB提供者對數(shù)據(jù)庫中數(shù)據(jù)訪問和操作的應用程序。其特點是易于使用、性能好、占用內存小。 在ADO對象模型中,主要包括Connection、recordset、Command三個對象。其功能如下:,Connection:是ADO對象連接數(shù)據(jù)庫的第一步,通過 Connection與sql server 2005數(shù)據(jù)庫建立連接。 Command:通過Connection與 數(shù)據(jù)庫建立連接后, Command對象承擔數(shù)據(jù)庫查詢的任務,查詢請求通過 sql語句來描述。首先指定Command 對象的 CommandString屬性為sql語句字符串,然后執(zhí)行數(shù)據(jù)庫 查詢動作,查詢以后,將結果存儲在recordset對象中。 Recordset:在執(zhí)行數(shù)據(jù)庫查詢后,結果保存在recordset 對象中,然后利用程序設計語言來處理recordset對象中 的記錄。 在使用recordset對象的open 方法時,可通過Cursortype 設置打開Recordset時應該使用的游標類型,其類型如下: 僅向前游標(adOpenForward) 為默認游標類型,記錄集為只讀,只能在記錄中向前移動。,靜態(tài)游標(AdOpenStatic) 記錄集為只讀,允許記錄集向前,向后移動,但其他用戶所做的添加、更改不可見。 鍵集游標(AdOpenKeyset) 記錄集為讀寫,允許記錄集各種類型的移動,但無法看到其他用戶對數(shù)據(jù)的更改。 動態(tài)游標(AdOpenDynamic) 記錄集為讀寫,可用于查看對數(shù)據(jù)表所做的添加、更改和刪除。 1.使用ADO的簡單流程: 連接數(shù)據(jù)庫。 指定訪問數(shù)據(jù)庫的查詢命令。 執(zhí)行命令。 如果這個命令使數(shù)據(jù)按表中的形式返回,則將這些行存儲在易于檢查、操作或者更改的緩存中。,可以使用緩存行的更改內容更改數(shù)據(jù)表。 提供常規(guī)方法檢測錯誤。 關閉數(shù)據(jù)庫連接。 2利用ADO對象訪問數(shù)據(jù)庫的過程 VB6.0提供了ActiveX數(shù)據(jù)對象,在程序中使用ADO對象之前,首先在聲明工程中引用對象庫Microsoft AxtiveX Data Object Library,否則會出現(xiàn)類型為定義的編譯錯誤。因為ADO對象 connection,recordset 包含在對象庫中,添加步驟如下: 1)啟動Visual Basic集成開發(fā)環(huán)境,然后選擇工程菜單下的【引用】命令,打開引用對話框。 圖 9.15 引用數(shù)據(jù)對象 2)在列表中,單擊Microsoft AxtiveX Data Object 2.6 Library項目左側的復選框如圖9.15所示。單擊【確定】。,圖 9.15 引用數(shù)據(jù)對象,3) 利用connection對象和數(shù)據(jù)庫建立連接,其方法如下: 首先聲明connection對象,既可以先定義一個connection 類型的對象變量,然后建立該對象的實例,如: Dim cn AS NEW ADODB.Connection Set cn=NEW ADODB.Connection 又可以在聲明的同時創(chuàng)建該對象的實例如: DIM cn AS NEW AODDB.Connection 4) 然后應用connectiosn對象的open方法與數(shù)據(jù)庫建立連接,語法如下: Cn.open ConnectionString,userid,password 參數(shù)說明: connectionString:是一個OLE DB連接字符串。 Userid:建立數(shù)據(jù)庫連接的用戶名。 Password:建立連接的用戶名對應的密碼。,3通過Connection對象的open方法與SQL SERVER2005連接有如下兩種: 1)通過ODBC數(shù)據(jù)源建立連接。 2)通過OLE DB 連接字符串連接。 4通過Connection對象的execute方法對數(shù)據(jù)庫 操作 在建立數(shù)據(jù)庫連接以后,可以通過Connection對象的execute方法執(zhí)行在數(shù)據(jù)庫中的記錄的查詢、修改等操作,操作的返回值是一個記錄集。具體方法如下: Set rs=cn.execute(sql_str) 其中參數(shù)sql_str是一個字符串,給出要執(zhí)行的數(shù)據(jù)庫的sql語句或者存儲過程等。,5通過Connection對象的close方法關閉數(shù)據(jù)庫連接 在一次數(shù)據(jù)庫操作結束之后,應該使用Connection對象的close方法關閉數(shù)據(jù)庫的連接,并將這個對象變量從內存中釋放。具體方法如下: Cn.close Cn=nothing,9.3 管理系統(tǒng)開發(fā)實例 通過前面介紹的數(shù)據(jù)庫基礎知識以及使用方法,下面我們來學習如何用VISUAL BASIC實現(xiàn)基于SQL Server 2005數(shù)據(jù)庫開發(fā)。本節(jié)以一個完整的實例來進行講解。 9.3.1 需求分析 隨著學校的規(guī)模擴大,學生數(shù)量不斷增加,因此學生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年智能安防監(jiān)控系統(tǒng)中人工智能目標追蹤與行為分析技術應用可行性研究報告
- 2025年無人機物流配送行業(yè)無人機技術創(chuàng)新與產業(yè)鏈布局研究報告
- 酒店用品倉儲企業(yè)制定與實施新質生產力項目商業(yè)計劃書
- 中式快餐連鎖品牌行業(yè)跨境出海項目商業(yè)計劃書
- 2025年農業(yè)類實習報告4-4
- 職業(yè)學校學生實習三方協(xié)議模板
- EMS(ISO14001)管理評審報告-2025年
- 英語教師成長發(fā)展計劃
- 人教版六年級英語教學計劃的案例分享
- 克拉瑪依教育項目商業(yè)計劃書
- 成人腦室外引流護理-中華護理學會團體 標準
- 《管道用消氣過濾器》
- 2024年福建高考真題化學試題(解析版)
- 林俊杰專輯歌詞更新至-學不會
- 2024至2030年中國售電公司投資熱點研究報告
- 2024-2030年中國胸外科行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 天津二手房買賣合同范本大全(2024版)
- 六年級數(shù)學下冊期末試卷及答案【可打印】
- 數(shù)字圖像處理-第12章 圖像編碼
- JGJ100-2015 車庫建筑設計規(guī)范
- 娛樂場所安全管理條例
評論
0/150
提交評論