八SQLServer系統(tǒng)應用實例_第1頁
八SQLServer系統(tǒng)應用實例_第2頁
八SQLServer系統(tǒng)應用實例_第3頁
八SQLServer系統(tǒng)應用實例_第4頁
八SQLServer系統(tǒng)應用實例_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章SQLServer系統(tǒng)應用實例8.1SQLServer2000應用程序接口8.1。1SQLServer2000應用程序接口概述8.1.2ODBC應用程序接口8.1.3OLEDB通用數(shù)據訪問接口8。1。4A8。2在VB中使用ADO對象開發(fā)SQLServer應用程序8.2.1使用ADO對象訪問SQLServer數(shù)據庫8。2。2數(shù)據庫應用程序實例—-—教學管理系統(tǒng)8.3基于Web的SQLServer應用系統(tǒng)開發(fā)8.3.1Web數(shù)據庫應用概述8。3。2A8。4Web數(shù)據庫開發(fā)實例-—教學管理系統(tǒng)8。4.1系統(tǒng)簡介8.4.2程序代碼與說明本章主要內容在實際應用環(huán)境中,使用企業(yè)管理器和查詢分析器訪問數(shù)據庫中的數(shù)據往往是數(shù)據庫管理員,大部分的用戶還是通過程序員開發(fā)的各種應用程序間接訪問SQLServer數(shù)據庫。SQLServer具有優(yōu)秀的數(shù)據庫管理性能,但它并不具備圖形用戶界面的設計功能,因此不能滿足客戶端用戶數(shù)據連接和數(shù)據操作的要求。SQLServer在數(shù)據庫應用中一般作為應用系統(tǒng)的后端,而前端圖形界面的設計與操作一般使用可視化開發(fā)工具,如VisualBasic、Delphi、PowerBuilder等來完成。如果需要將數(shù)據和應用程序在網上發(fā)布,可使用ASP、ASP.NET、PHP等來實現(xiàn).本章重點1、VB前臺語言,SQLServer建立數(shù)據庫,設計《教學管理系統(tǒng)》2、ASP前臺語言,SQLServer2000后臺,設計《教學管理系統(tǒng)》本章難點ADO對象的應用授課方法講授+實驗+作業(yè)學時:8課時授課過程如下:8。1SQLServer2000?應用程序接口:數(shù)據庫應用程序通過SQLServer2000應用程序接口向SQLServer服務器發(fā)送SQL語句,實現(xiàn)數(shù)據庫的訪問.要編寫SQLServer2000數(shù)據庫應用程序,必須學習使用SQLServer應用程序接口。8.1。1SQLServer2000應用程序接口概述SQLServer2000提供了豐富的應用程序接口,使程序員可以快速地開發(fā)數(shù)據庫應用程序。下面我們介紹SQLServer常用的應用程序接口。1、嵌入式SQL嵌入式SQL語言就是將SQL語句直接嵌入到程序的源代碼中,與其他程序設計語言(例如C語言)語句混合使用。嵌入式SQL的操作過程如下:使用SQLServer的預編譯程序將嵌入的SQL語句轉換為能被程序設計語言的編譯器識別的函數(shù)調用;使用程序設計語言的編譯器對轉換后的文件進行編譯,然后連接為可執(zhí)行程序,即可執(zhí)行.2、ODBC開放數(shù)據庫連接ODBC是OpenDat(yī)abaseConnectivity的縮寫,稱為開放數(shù)據庫系統(tǒng)互連,是微軟公司在90年代初開發(fā)和定義的一套數(shù)據庫訪問標準,用于訪問關系型數(shù)據庫。使用ODBC開發(fā)的應用程序可以訪問多種數(shù)據庫管理系統(tǒng)的數(shù)據庫,例如SQLServer、Oracle和DB2等.3、OLEDB通用數(shù)據訪問接口OLEDB是微軟90年代后期開發(fā)的數(shù)據訪問通用接口,它不僅提供了對關系型數(shù)據庫的訪問,還提供了對各種各樣數(shù)據源的訪問,例如Excel電子表格、dBase的ISAM文件、電子郵件等。4、JDBCJava數(shù)據庫接口JDBC(JavaDataBaseConnectivity)是由SUN公司制定的基于Java語言的數(shù)據庫訪問接口,用于實現(xiàn)Java程序訪問SQLServer2000數(shù)據庫,該接口程序未包含在安裝盤中,需到微軟公司的網站上下載。8。1.2ODBC應用程序接口ODBC是微軟公司在90年代初期開發(fā)的一種數(shù)據庫應用程序接口,用于訪問關系型數(shù)據庫,使用ODBC開發(fā)的應用程序可以訪問多種數(shù)據庫管理系統(tǒng)的數(shù)據庫,例如SQLServer、Oracle和DB2等.ODBC由一組具有精確定義的函數(shù)組成,稱ODBCAPI函數(shù),用來對數(shù)據庫進行操作。在應用程序中,可以直接使用這些函數(shù),而數(shù)據庫的底層操作由各個數(shù)據庫的驅動程序來完成.由于ODBC對數(shù)據庫應用程序具有良好的適應性和可移植性,所以ODBC在推出后就得到了廣泛的應用。1、ODBCSQLServer2000包含本機SQLServerODBC驅動程序,可由ODBC應用程序用于訪問SQLServer中的數(shù)據。在SQLServer2000中,除isql外的所有其它SQLServer實用工具也都使用ODBCAPI和SQLServerODBC驅動程序。2、ODBC體系結構ODBC數(shù)據庫應用程序由應用程序、驅動程序管理器、驅動程序和數(shù)據源4個部分組成,如圖所示。數(shù)據庫應用程序驅動程序管理器數(shù)據庫應用程序驅動程序管理器SQLServer數(shù)據源Oracle數(shù)據源FoxPro數(shù)據源DB2數(shù)據源SQLServer驅動程序Oracle驅動程序FoxPro驅動程序DB2驅動程序應用程序執(zhí)行處理并調用ODBC函數(shù)。其主要任務如下:連接數(shù)據庫提交SQL語句給數(shù)據庫檢索結果并處理錯誤提交或者回滾SQL語句的事務與數(shù)據庫斷開連接3、驅動程序管理器ODBC驅動程序管理器是一個驅動程序庫,負責應用程序和驅動程序間的通信。對于不同的數(shù)據庫系統(tǒng),驅動程序管理器將加載相應的驅動程序到內存中,并將后面的SQL請求傳送給正確的ODBC驅動程序.ODBC應用程序不能直接存取數(shù)據庫,應用程序的操作請求需要由驅動程序管理器提交給正確的驅動程序。而驅動程序負責將對數(shù)據庫的請求操作傳送到數(shù)據庫管理系統(tǒng)(DBMS),并把結果返回給驅動程序管理器。然后驅動程序管理器再將結果返回給應用程序,由應用程序處理,并處理錯誤信息。Applet的安全機制appletapplet瀏覽器SERVER本地程序fileSERVER本機connectionconnection下載applet的與applet無關的本地方法4、數(shù)據源數(shù)據源(DataSourceName.DSN)是連接數(shù)據庫驅動程序與數(shù)據庫管理系統(tǒng)(DBMS)的橋梁,它定義了數(shù)據庫服務器名稱、訪問的數(shù)據庫、登錄名稱和密碼等選項。數(shù)據源分為3類:文件數(shù)據源、系統(tǒng)數(shù)據源和用戶數(shù)據源,最常用的是系統(tǒng)數(shù)據源。通常,應用程序是通過數(shù)據源名來訪問數(shù)據庫。概括地說,使用ODBC進行編程之前,要先安裝相應的ODBC驅動程序,再配置ODBC數(shù)據源。ODBC數(shù)據源包括以不同的格式存儲的數(shù)據,而不僅僅是SQL數(shù)據庫中的數(shù)據.應用程序使用ODBC驅動程序訪問數(shù)據源。ODBC驅動程序是一個動態(tài)鏈接庫(DLL),它接受對ODBCAPI函數(shù)的調用并采取任何必要的操作來處理對數(shù)據源的請求。5、配置ODBC數(shù)據源使用ODBC編程之前,要先安裝相應ODBC驅動程序,再配置ODBC數(shù)據源。通常,SQLServer2000ODBC驅動程序已經內嵌在WINDOWS操作系統(tǒng)中。下面,我們仍然以教學數(shù)據庫(teachdb)為例來介紹配置SQLServer的ODBC數(shù)據源,數(shù)據源名為“教學”,操作步驟:(1)在控制面板中,單擊“管理工具”,然后執(zhí)行“數(shù)據源(ODBC)"命令,打開“ODBC數(shù)據源管理器”對話框,如圖8-2所示.數(shù)據源名ODBC驅動數(shù)據源名ODBC驅動程序圖8-2ODBC數(shù)據源管理器該窗口用來設置ODBC數(shù)據源及其驅動程序等。各主要選項卡的功能如下:用戶DSN顯示了當前登錄用戶使用的數(shù)據源清單。系統(tǒng)DNS顯示了可以由系統(tǒng)中全部用戶使用的系統(tǒng)數(shù)據源清單.文件DNS顯示了允許連接到一個文件提供程序的數(shù)據源清單。驅動程序顯示了所有已經安裝的各種數(shù)據庫系統(tǒng)的ODBC驅動程序.(2)在選項卡中,單擊按鈕,打開“創(chuàng)建新數(shù)據源”對話框,在“名稱”列表框中選擇SQLServer,如圖8-3所示.SQLServerODBC驅動程序SQLServerODBC驅動程序程序圖8-3“創(chuàng)建新數(shù)據源”對話框(3)單擊按鈕,打開“建立新的數(shù)據源到SQLServer“對話框,如圖8—4所示。在“名稱”文本框中輸入新數(shù)據源的名稱,如:教學.在“說明”文本框中輸入對該數(shù)據源的說明,然后在“服務器"下拉列表框中選擇要連接到的服務器如:DBSERVER。圖8-4“建立新的數(shù)據源到SQLServer”對話框(4)單擊按鈕,系統(tǒng)提示選擇驗證模式,如圖8—5所示。圖8—5選擇驗證模式在此選擇選項,并輸入登錄ID和密碼。(5)單擊按鈕,系統(tǒng)提示用戶設置默認數(shù)據庫等選項,如圖8—6所示。在此,更改默認數(shù)據庫為教學數(shù)據庫teachdb。圖8-6設置連接的默認數(shù)據庫(6)保持其余默認設置,單擊按鈕,系統(tǒng)提示用戶設置驅動程序使用的語言,字符集區(qū)域設置和日志文件等,如圖8—7所示。圖8-7設置驅動程序使用的語言、字符集等(7)單擊按鈕,出現(xiàn)“ODBCMicrosoftSQLServer安裝”對話框,如圖8-8所示.其中顯示了新數(shù)據源的配置選項。測試數(shù)據源測試數(shù)據源圖8-8“ODBCMicrosoftSQLServer安裝"對話框(8)單擊按鈕,打開“SQLServerODBC數(shù)據源測試”對話框,其中顯示了SQLServer的驅動程序版本號,并顯示測試是否成功的消息.單擊按鈕,可返回到“ODBCMicrosoftSQLServer安裝"對話框。(9)單擊按鈕,即可創(chuàng)建一個新的數(shù)據源.Applet的主要方法構造方法構造方法init()start()完成Applet的初始化操作都是在Applet被激活前執(zhí)行的,因此不能用它們來實現(xiàn)Applet的功能8.1。3OLEDB數(shù)據訪問接口OLEDB是微軟在90年代后期采用面向對象技術開發(fā)的數(shù)據訪問通用接口,它創(chuàng)建于微軟的OLE(對象的鏈接與嵌入)技術基礎上。OLEDB的優(yōu)點是可以和任何VisualStudio產品協(xié)同工作,例如VisualC++,VisualBasic等.它的推出,得到了廣泛的支持??梢灾苯邮褂肙LEDB進行數(shù)據庫應用程序開發(fā),為了使用戶方便地使用OLEDB開發(fā)數(shù)據庫應用程序,微軟將OLEDBAPI封裝在一個簡化了的基于組件(COM)技術的對象模型ADO(ActiveXDataObjects)中,通過ADO,程序員可以快速地開發(fā)數(shù)據庫應用程序,使用ADO是SQLServer2000數(shù)據庫應用程序開發(fā)的有效途徑。1、Applet的運行控制關系一個使用paint()方法繪制字符串的Applet程序Java.applet.AppletJava.applet.Appletpublicvoidinit()publicvoiddestroy()publicvoidstart()publicvoidstop()publicvoidpaint(Graphicsg)2、OLEDB體系結構微軟定義了OLBDB的4個層次:數(shù)據提供者使用OLEDBSDK(軟件開發(fā)工具)創(chuàng)建OLEDB提供者(Provider)的人.數(shù)據消費者訪問數(shù)據庫中信息的應用程序,系統(tǒng)驅動程序或者用戶.數(shù)據服務提供者創(chuàng)建用以增強用戶或者數(shù)據庫管理員使用管理數(shù)據庫能力的獨立應用程序。例如,查詢分析器就是一個數(shù)據服務提供者。部件開發(fā)者創(chuàng)建應用程序模塊或部件,以減少創(chuàng)建數(shù)據庫應用程序所需的編碼工作。例如,VisualBasic中提供的ADO控件。關系一般來說,數(shù)據庫應用程序即OLEDB消費者是通過OLEDB用戶界面和OLEDB提供者(Provider)來訪問數(shù)據源,它們之間的關系如圖8-9所示。數(shù)據源應用程序(OLEDB消費者)OLEDB界面(例如ADO等)OLEDB提供者對于不同的OLEDB提供者,OLEDB提供不同級別的功能,但是它們都支持一個通用的用戶界面。不同的OLEDB數(shù)據源使用自己的OLEDB提供者,如圖8-10所示。ADO對象模型ADO是一個OLEDB消費者,它封裝了OLEDB復雜性,以極為簡單的接口存取數(shù)據,簡化了數(shù)據庫應用程序的編寫,易于使用,性能好,占用內存和磁盤空間少,并且支持基于客戶機/服務器的Web數(shù)據庫應用程序。使用者只需在程序中建立ADO對象,設置對象相應的屬性,調用相關方法,即可完成數(shù)據庫訪問。ADO對象模型ADO的對象模型為層次結構,如圖8-11所示。其中每個Connection,Command,Recordset和Field對象都有集合.ConnectionConnectionErrors集合ErrorCommandParameters集合ParameterRecordsetFields集合Field圖8-11ADO的對象模式ADO提供的對象及功能ADO提供的對象及基本功能如表8—1所示。除了上述對象外,ADO還提供了Fields、Parameters、Errors、Properties等集合對象。主要的ADO對象在上述眾多對象中,主要的ADO對象有3個:連接對象Conection,數(shù)據查詢對象Command和查詢所得記錄集對象Recordset。Connection對象Connection對象用于建立應用程序與數(shù)據源之間的通信連接。如果是網絡環(huán)境下的客戶端/服務器數(shù)據庫系統(tǒng),該對象可等價于客戶機到數(shù)據庫服務器的實際網絡連接。在建立連接后,可通過Command對象與Recordset對象來訪問數(shù)據庫中數(shù)據.Connection對象的主要屬性Connection對象的主要屬性如表8-3所示。Connection對象的常用方法Connection對象的常用方法如表8-4所示,其中Open用于打開Connection對象,并建立連接。Excute方法常用于簡單查詢。對復雜的數(shù)據庫操作應使用Command對象.Recordset對象Recordset對象(記錄集對象)用于存儲Connection對象和Command對象的查詢結果,應用程序中再利用程序語言來處理該Recordset對象中的記錄,Recordset對象主要屬性見表8-5.Recordset對象的常用方法Recordset對象的常用方法見表8—6,其中Open用于打開Recordset對象,并對Command對象或Connetion對象加以引用。Recordset對象有11個事件,這里也不說明了。Command對象Command對象主要用于對數(shù)據庫進行復雜查詢,它的功能強大,并可運行存儲過程和參數(shù)化查詢。Command對象如表8-7所示。Command對象Command對象最常用方法是Excute方法.Excute方法用于執(zhí)行SQL查詢命令,并返回打開的結果集對象(Recordset)。也可以用Excute方法執(zhí)行其它的數(shù)據定義命令或存儲過程。Connection,Command,Recordset雖然是3個不同的對象,但是三者之間是互相關聯(lián),分工協(xié)作的。通常,在Connection對象實現(xiàn)了應用程序與數(shù)據源之間的通信連接后,執(zhí)行Command對象的Excute方法實現(xiàn)數(shù)據庫查詢,數(shù)據庫服務器響應后,再將查詢結果存入Recordset對象中.Command對象必須依賴于Connection對象,而Recortset對象要視Connection對象與Command對象的狀態(tài)而定。8.2在VB中使用ADO對象開發(fā)SQLServer應用程序微軟在VisualBasic6.0中成功地引入了功能強大的ADO對象作為新的數(shù)據庫訪問標準,它內置了SQLServer的OLEDB驅動程序.另外,為了使數(shù)據庫應用程序能實現(xiàn)字段的綁定,VisualBasic6。0還提供了一個封裝了ADO對象的ADOData控件,使用該控件可以開發(fā)簡單的數(shù)據庫訪問程序,復雜的數(shù)據庫訪問程序的開發(fā)仍必須使用ADO對象,ADODat(yī)a控件可以起到輔助作用.8.2.1使用ADO對象訪問SQLServer數(shù)據庫在VisualBasic6。0中,使用ADO對象進行數(shù)據庫訪問有多種方式,例如:使用Connection對象和Recordset對象配合使用,實現(xiàn)簡單查詢。Connection對象、Recordset對象和Command對象配合使用實現(xiàn)復雜查詢。使用Command對象執(zhí)行SQLServer的存儲過程。ADO對象的引用在VisualBasic6。0中使用ADO對象編程之前,必須先設置對ADO類庫的引用?,F(xiàn)以創(chuàng)建一個本書教學數(shù)據庫teachdb的應用項目為例,其操作步驟:(1)啟動VisualBasic,創(chuàng)建一個新的工程,并將工程名稱設置為“學生管理”,窗體名稱設置為frmStudent.Caption屬性設置為“學生信息”。在菜單中,執(zhí)行命令,打開“引用”對話框,如圖8—12所示。引用對話框引用對話框圖8—12ADO的對象的“引用"(2)在“可用的引用"列表框中,找到“MicrostoftDataObjects2。6Library"選項,并選中前面的復選框。(3)單擊按鈕,即可在VisualBasic6.0中增加對ADO對象的引用。如果要查看ADO提供的對象的屬性、方法和集合等內容,可以在菜單中,執(zhí)行命令,打開“對象瀏覽器”對話框,如圖8-13所示。在頂部的列表中選擇ADODB,在側窗格即可顯示出ADO中的對象,而右側窗格則顯示出左側窗格中選中的對象的屬性、方法等。各對象的方法、屬性ADO各對象各對象的方法、屬性ADO各對象圖8-13“對象瀏覽器”瀏覽ADO對象2.Connection對象、Recordset對象和Command對象配合使用實現(xiàn)數(shù)據查詢操作基本步驟如下:(1)定義Connection對象、Recordset對象和Command對象。(2)設置Connection對象的連接串ConnectionString屬性,準備連接數(shù)據庫.ConnectionString屬性的常用參數(shù)見表8-8所示。表8—8ConnectionString屬性的常用參數(shù)Provider參數(shù)指定OLEDB提供者,缺省值是MSDASQL,指ODBC資源提供者Server屬性SQLServer服務器名,也可用數(shù)據源名DSN屬性使用ODBC時,當前機器的ODBC數(shù)據源InitialCat(yī)alog屬性設置連接的默認數(shù)據庫,也可用DataBase參數(shù)UserID屬性用戶名Password屬性用戶口令(3)使用Connection對象的Open方法建立到數(shù)據源的物理連接。(4)設置Command對象的ActiveConnection屬性以便同打開的Connection對象進行關聯(lián)。(5)使用Command對象的CommandText屬性定義要執(zhí)行的SQL語句文本.(6)使用Command對象的Execute方法執(zhí)行命令并在需要的時候返回給Recordset對象.(7)處理Recordset對象中的數(shù)據。(8)關閉連接【例8。1】實現(xiàn)對教學數(shù)據庫teachdb中課程表(course)的瀏覽和添加操作,并使新添加的課程信息在列表框中立即顯示。如圖8-14,圖8—15所示。操作步驟:在VB中新建一個工程,在工程中建一窗口,名為frmCourse,標題為“課程信息",加入下列控件,如圖8-14所示。圖8-14“課程信息”瀏覽界面示例圖8-15“課程信息"插入界面示例窗口中各控件名稱及屬性設置如表8-11所示。表8—11控件名稱及屬性控件名稱類型Caption屬性說明TxtC_no文本框左邊為“課程號”標簽TxtC_name文本框左邊為“課程名”標簽TxtC_score文本框左邊為“學分”標簽CmdAdd按鈕添加CmdList按鈕瀏覽Dat(yī)aGrid1數(shù)據網格(Datagrid)其中DataGrid控件,需要在VisualBasic6。0的菜單中運行命令添加部件后,才可在工具箱中找到它的圖標,如圖8—16,8—17所示。DataGrid控件DataGrid控件圖8-16添加“部件"對話框圖8-17Dat(yī)aGrid控件程序代碼:'通用定義DimcnAsNewADODB.Connection'定義Connection對象DimrsAsNewADODB。Recordset’定義Recordset對象DimcmdAsNewADODB.Command'定義Command對象’窗體Load事件代碼PrivateSubForm_Load()cn.ConnectionTimeout=30'設置連接對象屬性cn。CursorLocation=adUseClientcn.ConnectionString="DRIVER=SQLServer;SERVER=dbserver;uid=sa;pwd=sa;DATABASE=teachdb”cn。Open'打開連接EndSub'CmdAdd按鈕Click事件代碼PrivateSubCmdAdd_Click()Setcmd.ActiveConnection=cncmd.CommandText="INSERTcourseVALUES(?,?,?)”’帶參數(shù)的SQL語句cmd.CreateParameter,adChar,adParamInput,4'參數(shù)1定義cmd。CreateParameter,adChar,adParamInput,10’參數(shù)2定義cmd.CreateParameter,adInteger,adParamInput,4'參數(shù)3定義cmd.Parameters(0)=TxtC_no.Textcmd.Parameters(1)=TxtC_name。Textcmd。Parameters(2)=TxtC_score。Textcmd.Execute'運行SQL語句cmd.CommandText=”SELECT*FROMcourse"Setrs=cmd.ExecuteSetDataGrid1。Dat(yī)aSource=rsEndSub’CmdList按鈕Click事件代碼PrivateSubCmdList_Click()Setcmd。ActiveConnection=cncmd.CommandText="SELECT*FROMcourse"Setrs=cmd.ExecuteSetDat(yī)aGrid1.DataSource=rsEndSub代碼說明Setcmd.ActiveConnection=cn使打開的Connection對象與Command對象關聯(lián).cmd。CommandText=“INSERTcourseVALUES(?,?,?)”帶參數(shù)的SQL語句,每個“?”代表一個參數(shù)。cmd.CreateParameter,adChar,adParamInput,4定義參數(shù)的類型、長度和方向,此處定義的是字符型,長度為4字節(jié)的輸入參數(shù),用于表示“課程號"。cmd.Parameters(0)=TxtC_no.Text為參數(shù)賦值。3。使用Command對象執(zhí)行存儲過程存儲過程可以具有輸入和輸出參數(shù).在VisualBasic中使用Command對象執(zhí)行存儲過程時,應當指定其輸入和輸出參數(shù).【例8.2】在SQLServer2000中建立一個存儲過程名為Choice_Query,實現(xiàn)輸入課程名即可顯示教學數(shù)據庫中選修該課程的所有學生名單信息.然后在VisualBasic中,調用該存儲過程,完成相應功能.例8-2存儲過程如圖8—18所示,在VisualBasic中程序設計界面如圖8—19所示。程序代碼’通用定義DimcnAsNewADODB.Connection’定義Connection對象DimrsAsNewADODB.Recordset’定義Recordset對象DimcmdAsNewADODB.Command'定義Command對象DimParam0AsNewADODB.Parameter’param0將作為存儲過程輸入的Parameter對象’窗體Load事件代碼PrivateSubForm_Load()cn.ConnectionTimeout=30'設置連接對象屬性cn.CursorLocation=adUseClientcn.ConnectionString="DRIVER=SQLServer;SERVER=dbserver;uid=sa;pwd=sa;DATABASE=teachdb”cn.Open'打開連接Setcmd.ActiveConnection=cncmd.ActiveConnection=cn’為一個有效的Connection對象cmd.CommandType=adCmdStoredProc'表明執(zhí)行的是一個存儲過程cmd。CommandText="Choice_Query"’Choice_Query為要執(zhí)行的存儲過程名'設置輸入的Parameter對象Param0。Direction=adParamInput’表明該Parameter對象為輸入參數(shù)Param0。Type=adChar'表明該Parameter對象為字符類型Param0.Size=10'輸入參數(shù)的長度為6個字節(jié)cmd.Parameters.AppendParam0'使用Append方法將Param0加入到Parameters集合中EndSub'CmdQuery按鈕Click事件代碼PrivateSubCmdQuery_Click()Param0.Value=Text1.Text’輸入參數(shù)值Setrs=cmd.Execute’執(zhí)行存儲過程SetDataGrid1。DataSource=rsEndSub本例中通過使用Command對象和Parameter對象,實現(xiàn)帶參數(shù)的存儲過程的調用,完成復雜的數(shù)據查詢。錯誤處理4.使用Error對象進行錯誤處理任何ADO對象的操作都可能會引起一個或多個OLEDB提供者錯誤.每個ADO對象操作錯誤出現(xiàn)時,一個或多個Error對象將被放到Connection對象的Errors集合中.當另一個ADO操作產生錯誤時,Errors集合將被清空,在其中放入新的Error對象集.通過Error對象的屬性可獲得每個錯誤的詳細信息。在VisualBasic中可以使用MsgBox函數(shù)來提示出現(xiàn)的錯誤信息。8.2.2數(shù)據庫應用程序實例-教學管理系統(tǒng)本實例全部采用ADO對象來進行數(shù)據庫訪問,8.3基于Web的SQLServer開發(fā)8。3.1Web數(shù)據庫應用概述在過去的一段時間里,基于C/S(Client/Server)的網絡計算機模式為實現(xiàn)企業(yè)級的信息共享發(fā)揮了重要的作用。但C/S模式也有弱點,如軟件實現(xiàn)復雜度高、維護代價高、缺乏開放標準、難以跨平臺運行等。隨著計算機網絡技術和Internet的迅速發(fā)展,特別是Web技術的興起和普及,C/S模式正向基于Web的網絡計算機體系演變,當前基于Web的計算平臺已經成為網絡計算平臺的主流,應用也極為廣泛。例如我們在網站上所見到的用戶登錄系統(tǒng)、客戶留言板、論壇以及企業(yè)產品信息在網站前臺的展示等等,無一不和數(shù)據庫有關。有了Web和數(shù)據庫的聯(lián)接,也使用得人們對Web頁面的更新和維護變得簡單和快捷?;赪eb的計算技術采用B/C/S(Browser/Client/Server)三層結構模式,用戶界面統(tǒng)一使用瀏覽器,Web服務器作為信息系統(tǒng)的客戶機,它代表用戶訪問應用服務器——其中最重要的就是數(shù)據庫服務器.這樣,軟件開發(fā)工作主要集中于服務器端應用程序,無須開發(fā)客戶端應用程序。服務器端的所有應用程序都可通過Web瀏覽器在客戶機上運行。由于各種操作系統(tǒng)都支持Web瀏覽器的運行,所以基于Web的應用可以方便地實現(xiàn)跨平臺操作。如圖8—25所示。在基于Web的三層計算模式中,Web服務器訪問數(shù)據庫的技術是應用系統(tǒng)開發(fā)的關鍵。在Web環(huán)境下操作數(shù)據庫的方法有多種,較有代表性的技術是:CGI(CommonGatewayInterface,公共網關接口)、WebServerAPI(如NSPI、ISPI)及ASP(ActiveServerPages,活動服務器頁面)、ASP.NET、PHP等。這里主要介紹如何使用ASP技術來操作SQLServer數(shù)據庫并進行基于Web的初級數(shù)據庫開發(fā)。ASP技術簡介1.什么是ASPASP(ActiveServerPage)是微軟公司隨其IIS3.0推出的一種主要用于Web服務器訪問數(shù)據庫的技術,它提供使用VBScript或Jscript(Microsoft的JavaScript實現(xiàn))的服務器端腳本環(huán)境,可用來創(chuàng)建和運行動態(tài)、交互的Web服務器應用程序。什么是ASPASP提供了一些內建對象,使用這些內建對象可使用腳本的功能更加強大。在ASP中還可以使用ActiveX控件擴展功能,并可使用自己定義的ActiveX控件。ASP最吸引人的是它所提供的訪問數(shù)據庫的能力,使用ADO對象可以很方便地與數(shù)據庫建立連接和操作數(shù)據庫。什么是ASP使用ASP時,在HTML中嵌入服務器端腳本,所形成的文件以.asp為擴展名,這種文件稱為ActiveX腳本文件。當瀏覽器向Web服務器請求.asp文件時,服務器端腳本將不被發(fā)送到瀏覽器,而是在Web服務器上執(zhí)行.通常用VBScript腳本語言編寫腳本程序嵌入HTML中,也可以將HTML代碼嵌入到VBScript腳本語言里。2.ASP應用程序運行的環(huán)境――IIS/Web服務器的配置要調試ASP腳本程序,雙擊該文件的圖標或者在瀏覽器中打開該文件都是不行的,必須通過Web服務器端的處理才能在瀏覽器中瀏覽到相應的頁面。實際上,Web服務器在程序執(zhí)行時要掃描ASP腳本文件,執(zhí)行服務器端的腳本,并將執(zhí)行結果替換文件中的服務器端腳本部分,形成HTML發(fā)送到瀏覽器。?IIS/Web服務器的配置

ASP的執(zhí)行由IIS/Web服務器來完成。要使得Web服務器執(zhí)行指定的腳本,必須進行適當?shù)呐渲?可以將要執(zhí)行的ASP腳本配置成一個站點或者一個虛擬目錄。Windows2000Server以上版本(Windows2000Professional版需要人為添加IIS組件)自帶的IIS和Windows98的PWS都可以實現(xiàn)。8.4Web數(shù)據庫開發(fā)實例——教學管理系統(tǒng)8.4.1系統(tǒng)簡介系統(tǒng)設計目標通過本系統(tǒng)的開發(fā),可以使用學生理解Web前臺和后臺數(shù)據庫間的關系。掌握后臺數(shù)據庫的連接方法,以及對后臺數(shù)據庫中的數(shù)據進行初步的處理。通過學習本系統(tǒng)的設計,學生可以對SQLserver2000數(shù)據庫對Web的支持有一個較透徹的了解。本系統(tǒng)雖簡單,但已經涵蓋了Web數(shù)據庫的主要內容,所以大家可以在本系統(tǒng)的基礎上進行擴展和創(chuàng)新,使之成為一個真正的教學管理系統(tǒng)。2.數(shù)據庫的準備本系統(tǒng)中所使用的數(shù)據庫就是教材中作為樣例的teachdb數(shù)據庫以及它所包含的5張表:student,course,choice,teacher和teaching。3.系統(tǒng)運行環(huán)境準備配置IIS,新建一個Web站點,主目錄指向本系統(tǒng)中所有程序所在的文件夾,系統(tǒng)的默認主文檔為index.asp。系統(tǒng)結構和各程序間的關系本系統(tǒng)共有10個程序,各程序的功能及各程序間的關系如圖8—30所示。主界面:index.asp這是系統(tǒng)主程序,主要實現(xiàn)系統(tǒng)登錄和學生注冊。在index.asp界面中輸入學生的學號和姓名,而后在check.asp中進行驗證,只有輸入的學號和姓名和student表中的學號和姓名相一致,才能登錄到本系統(tǒng)中,否則要求注冊。運行界面如圖8-31所示。//【程序清單】index.asp〈%@LANGUAGE=”VBSCRIPT"CODEPAGE="936"%><html>〈head〉〈metahttp-equiv="Content-Type"content=”text/html;charset=gb2312">〈title〉班級教學管理系統(tǒng)〈/title>〈/head>〈bodybgcolor="#0099FF"text="#FFFF00">〈divalign="center"><p〉&nbsp;〈/p〉<p>〈fontcolor=”#FF0000"size=”7"face="隸書”〉歡迎您來到班級教學管理系統(tǒng)!</font〉〈imgsrc="img/line023.gif"width="100%”height="2”>〈/p>〈formname=”form1"method="post”action=”check。asp”>〈p><fontcolor=”#FFFFFF"〉請輸入您的學號:〈/font〉〈inputtype=”text”name="no”>〈/p><p><fontcolor=”#FFFFFF”>請輸入您的姓名:</font〉<inputtype="text"name=”name"></p>〈p><inputtype=”submit"name="Submit”value=”登錄">〈inputtype="reset”name="Submit2"value="重寫"〉</p></form〉<p〉如果您還沒有注冊,請先<ahref=”regester.asp"〉注冊!〈/a></p><p>〈imgsrc="img/line023.gif"width="100%"height="2”></p><p〉&nbsp;</p>〈/div〉</body>〈/html〉2.登錄驗證界面:check.asp驗證輸入信息,如果成功,出現(xiàn)各分系統(tǒng)的主界面,如果失敗則出現(xiàn)要求注冊的界面。在程序中先進行后臺數(shù)據庫的連接,對index.asp頁面上的表單信息進行接收后,到teachdb庫中的表student中進行查找,如果找到即可登錄成功,如果沒有找到則要求注冊.例如:學號輸入“101”,姓名輸入“袁敏",程序運行的結果如圖8-32所示:程序清單:check.asp//【程序清單】check.asp<%@Language="VBScript”%〉〈%setcn=server.creat(yī)eobject(”adodb.connection")cn.provider="sqloledb"yyy="server=home—091C3D2142;database=teachdb;uid=sa;pwd=sa;"cn。openyyysetrs=server.CreateObject("adodb.recordset")‘注:以上代碼是連接數(shù)據庫teachdb,并生成記錄集實例。t1=request.form("no")t2=request.form("name")‘注:這兩句是接收來自前頁的表單中輸入的學號和姓名。sql="select*fromstudentwheres_no=’"&t1&"’ands_name='”&t2&"'”setrs=cn.execute(sql)%〉<%ifrs。eof=truethenresponse.write"您還沒有注冊,請先注冊,再登錄!"else%〉<HTML><HEAD><METANAME=”GENERATOR"Content="MicrosoftVisualStudio6.0"><metahttp—equiv="Content-Type"content="text/html;charset=gb2312"></HEAD>〈BODYbgcolor="#0099FF”><tablewidth=”800”height="425"border="0"align="center"cellspacing=”0"><tr〉〈tdwidth="800"height=”351"valign="top"〉〈palign=”center"〉<fontcolor="#FFFF00"〉歡迎您:〈/font><fontcolor="#FF0000"〉<%=request.form("name")%></font><fontcolor="#FFFF00"〉登錄班級學習管理系統(tǒng)!今天是〈/font〉〈%=dat(yī)e()%〉<fontcolor=”#FFFF00">祝您心情愉快!</font></p>〈palign="center”><imgsrc=”img/line023.gif"width="100%”height=”3”〉</p><palign=”center"〉&nbsp;</p><palign="center"〉您可以進入以下系統(tǒng):〈/p〉<palign="center”〉<strong>〈fontcolor="#FF0000"size=”5”face="隸書">〈/font>〈/strong>〈fontcolor="#FF0000"size=”5”face="隸書”><strong><ahref="xscx。asp"〉學生查詢系統(tǒng)</a>〈/strong〉</font><fontsize=”5"><strong><fontcolor=”#FF0000”face=”隸書">〈ahref="xkcx。asp"〉選課查詢系統(tǒng)〈/a〉〈/font></strong></font〉</p>〈palign=”center">〈fontsize="5”><strong><fontcolor="#FF0000"face=”隸書"〉〈ahref="jscx.asp"〉教師查詢系統(tǒng)</a></font>〈/strong><strong><fontcolor="#FF0000"face=”隸書">〈ahref="cjcx.asp"〉成績查詢系統(tǒng)</a〉〈/font>〈/strong></font>〈/p><palign=”center">&nbsp;</p><palign=”center”>&nbsp;</p><palign="center">請選擇</p></td></tr></table><p>&nbsp;</p>〈/BODY></HTML〉〈%endif%>3.學生查詢系統(tǒng):xscx。asp和xscxcheck.asp單擊“學生查詢系統(tǒng)”,可以進入該系統(tǒng),在系統(tǒng)中,可以對該班級的學生情況進行查詢,查詢條件可以是student表中的所有字段,例如要查所有計算機系的學生情況,如圖8-33所示。單擊【確定】后,有關數(shù)據傳送給xscxcheck.asp,得到的結果如圖8—34所示。程序清單://xscx.asp<%@LANGUAGE=”VBSCRIPT"CODEPAGE=”936"%〉<html>〈head><metahttp-equiv=”Content-Type"content="text/html;charset=gb2312">〈title>無標題文檔</title></head>〈bodybgcolor="#00CCFF"><divalign="center"〉<p〉&nbsp;〈/p〉<p〉〈fontcolor="#FF0000"size=”6"face=”隸書”>〈strong>歡迎光臨學生查詢系統(tǒng)〈/strong></font></p〉<p〉<imgsrc="img/line023.gif"width="520”height="3"></p>〈p〉請輸入您的查詢條件(下列條件之一)〈/p><formname="form1"method="post"action=”xscxcheck.asp"><p>學生姓名:〈inputtype="text”name="name"〉</p><p〉學生學號:<inputtype="text"name="no”>〈/p〉〈p>學生性別:<inputtype="text"name="sex"></p〉〈p>出生日期:〈inputtype=”text"name=”birthday"></p><p>所在系部:〈inputtype="text”name="department”></p〉<p〉<inputtype="submit"name="Submit"value="確定”〉<inputtype="submit"name=”Submit2”value="重寫"></p>〈p>&nbsp;</p></form>〈p>〈imgsrc="img/line023.gif”width=”520"height="3"〉</p></div〉〈/body></html〉HYPERLINK”xscxcheck。asp.txt"xscxcheck.asp//xscxcheck。asp〈%@LANGUAGE="VBSCRIPT"CODEPAGE=”936"%><%setcn=server.createobject("adodb.connection”)cn.provider="sqloledb"yyy="server=aa007;database=teachdb;uid=sa;pwd=sa;"cn。openyyysetrs=server.CreateObject(”adodb.recordset”)t1=request.form("name”)t2=request.form(”no")t3=request.form(”sex”)t4=request。form("birthday")t5=request.form("department”)sql=”select*fromstudentwheres_name='"&t1&”’ors_no='"&t2&"'ors_sex='”&t3&"'ors_birthday=’”&t4&”'ors_department=’"&t5&"'"setrs=cn。execute(sql)%〉<html〉<head><metahttp-equiv=”Content—Type"content="text/html;charset=gb2312"〉<title>無標題文檔〈/title></head><bodybgcolor="#00FFFF”><p><strong>您要找的學生情況如下:</strong></p><p〉&nbsp;</p><%response.write"<center><tableborder=1>"fori=0tors.fields.count—1response.write"〈td〉”&rs.fields(i).name&"</td〉"nextresponse。write"</tr>"whilenotrs.eofresponse.write”〈tr>"fori=0tors。fields.count—1response.write"〈td〉”&rs.fields(i).value&”</td>"nextresponse。write"〈/tr>”rs.movenextwendresponse.write"</table>〈/center>”rs.close%>〈p>&nbsp;</p></body>〈/html〉4。選課查詢系統(tǒng):進入到選課查詢系統(tǒng)中,輸入某個學生的學號,可以查詢該學生所選修的課程;輸入課程號碼,可以查看有哪些同學選修該門課程.程序運行結果如圖8-35和圖8-36所示。xkcx.asp//xkcx.asp〈%@LANGUAGE="VBSCRIPT"CODEPAGE="936”%><html>〈head>〈metahttp—equiv="Content-Type”content="text/html;charset=gb2312”><title>無標題文檔〈/title〉</head〉<bodybgcolor="#00CCFF"〉〈divalign="center”><p>&nbsp;</p〉<p>〈fontcolor="#FF0000”size="6"face="隸書”〉<strong〉歡迎光臨選課查詢系統(tǒng)</strong〉</font></p>〈p><imgsrc="img/line023。gif"width=”520"height="3"></p>〈p>請輸入您的查詢條件(下列條件之一)〈/p>〈formname=”form1”method=”post"action="xkcxcheck.asp”><p>&nbsp;</p〉<p>學生學號:〈inputtype="text"name="no"></p〉<p>課程名稱:〈inputtype="text”name=”cno">〈/p>〈p〉&nbsp;〈/p〉<p><inputtype="submit"name="Submit"value="確定”><inputtype="submit”name=”Submit2"value=”重寫">〈/p><p〉&nbsp;〈/p></form〉<p><imgsrc=”img/line023.gif”width=”520"height="3"></p>〈/div〉</body></html>HYPERLINK"xkcxcheck.asp.txt"xkcxcheck.asp//xkcxcheck.asp〈%@LANGUAGE=”VBSCRIPT"CODEPAGE="936”%><%setcn=server。creat(yī)eobject(”adodb.connection”)cn.provider=”sqloledb"yyy=”server=aa007;dat(yī)abase=teachdb;uid=sa;pwd=sa;"cn。openyyysetrs=server。CreateObject("adodb。recordset")t1=request.form("no”)t2=request.form("cno”)sql="select*fromchoicewheres_no='”&t1&"'orc_no='”&t2&”'”setrs=cn.execute(sql)%>〈html><head〉<metahttp—equiv="Content—Type”content="text/html;charset=gb2312"><title>無標題文檔〈/title>〈/head〉〈bodybgcolor=”#00FFFF">〈palign="center"><strong>您查找的選課資料如下:</strong></p〉<divalign=”center"〉<%response.write"<center><tableborder=1>”fori=0tors。fields.count—1response.write”〈td〉"&rs.fields(i).name&"〈/td>"nextresponse.write"</tr>"whilenotrs。eofresponse。write"<tr>"fori=0tors。fields.count—1response.write"<td〉”&rs。fields(i).value&"</td>"nextresponse。write"〈/tr>"rs.movenextwendresponse。write"</table〉</center>"rs.close%></div>〈p>&nbsp;</p></body>〈/html>5.教師查詢系統(tǒng):進入到教師查詢系統(tǒng)中,輸入某個教師的有關資料,就可以查出該教師的基本情況.查詢條件可以teacher表中所有字段.程序運行和結果如圖8—37和圖8—38所示。//jscx。asp<%@LANGUAGE=”VBSCRIPT"CODEPAGE="936”%><html><head>〈metahttp-equiv="Content-Type"content="text/html;charset=gb2312”>〈title〉無標題文檔</title〉</head><bodybgcolor="#00CCFF”><divalign="center”><p><fontcolor="#FF0000”size="6"face="隸書">〈strong>歡迎光臨教師查詢系統(tǒng)〈/strong></font></p>〈p><imgsrc="img/line023。gif”width="520"height="3”〉</p>〈p>請輸入您的查詢條件(下列條件之一)〈/p>〈f="form1”method=”post"action="jscxcheck.asp”>〈p>教師姓名:〈inputtype=”text"name="name">〈/p><p〉教師編號:<inputtype="text"name="no"></p><p>教師性別:<inputtype="text"name="sex”>〈/p>〈p〉教師職稱:<inputtype="text"name=”duty”></p〉<p><inputtype="submit"name=”Submit"value=”確定">〈inputtype=”reset"name="Submit2"value=”重寫"></p〉〈p〉〈imgsrc="img/line023.gif"width=”520"height="3"></p>〈/form></div></body〉〈/html>//jscxcheck.asp〈%@LANGUAGE=”VBSCRIPT"CODEPAGE=”936”%〉<%setcn=serve”sqloledb"yyy=”server=aa007;dat(yī)abase=teachdb;uid=sa;pwd=sa;”cn.openyyysetrs=server.Creat(yī)eObject(”adodb。recordset")t1=request.form("name")t2=request.form("no")t3=request。form("sex”)t4=request。form("duty")sql="select*fromteacherwheret_name='"&t1&”'ort_no='”&t2&”'ort_sex='"&t3&”'ort_duty='"&t4&”’”setrs=cn。execute(sql)%><html>〈head><metahtt

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論