




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、12. 1常用的數(shù)據(jù)庫連接方法12. 2在Visual BASIC中的數(shù)摒庫開發(fā)12.3在Delphi戒C+Bu訂der中的數(shù)摒庫開發(fā)12. 4 ASP與SQL Server的協(xié)同運用12. 5案例中的程序練習題目錄12. 1常用的數(shù)據(jù)庫連接方法帝 12行ODBC帝 12.1.2 OLE DBQ 12.1.3 ADO12. 1. 1 ODBC開放式數(shù)據(jù)庫互連ODBC ( Opened DataBase Connectivity)是一種用于訪問數(shù)據(jù)庫的統(tǒng)一界面標準,由 Microsoft公司于1991年底發(fā)布。它應用數(shù)據(jù)通信方法、數(shù)據(jù) 傳輸協(xié)議、DBMS等多種技術定義了一個標準的接口協(xié)議, 允許
2、應用程序以SQL作為數(shù)據(jù)存取標準,來存取不同的 DBMS管理的數(shù)據(jù)。ODBC為數(shù)據(jù)庫應用程序訪問異構型數(shù) 據(jù)庫提供了統(tǒng)一的數(shù)據(jù)存取接口API,應用程序不必重新編譯、 連接,就可以與不同的DBMS相連。目前支持ODBC的有SQL Server. Oracle等10多種流行 的DBMSo ODBC是基于SQL語言的,是一種在SQL和應用 界面之間的標準接口,它解決了嵌入式SQL接口非規(guī)范核心 問題,免除了應用軟件隨數(shù)據(jù)庫的改變而改變的麻煩。ODBC是一個分層體系結構,由四部分構成:ODBC數(shù)據(jù) 庫應用程序(application)、驅(qū)動程序管理器(driver manager)、DBMS驅(qū)動程序(
3、DBMS driver)、數(shù)據(jù)源 (data source)。1.應用程序應用程序的主要功能是:調(diào)用ODBC函數(shù),遞交SQL語句給 DBMS,檢索出結果,并進行處理。應用程序要完成ODBC 外部接口的所有工作。應用程序的操作包括:連接數(shù)據(jù)庫(向數(shù)據(jù)源發(fā)送SQL語 句);為SQL語句執(zhí)行結果分配存儲空間,定義所讀取的數(shù) 據(jù)格式;讀取結果,處理錯誤;向用戶提交處理結果;請求 事務的提交和撤銷操作;斷開與數(shù)據(jù)源的連接。應用層提供圖形用戶界面(GUI)和事務邏輯,它是使用諸 女口Java、Visual BASIC及C+這樣的語言編寫的程序。應用 程序利用ODBC接口中的ODBC功能對數(shù)據(jù)庫進行操作。2
4、驅(qū)動程序管理器驅(qū)動程序管理器是一個動態(tài)連接庫(DLL),用于連接各 種DBS的DBMS驅(qū)動程序(如SQL Server> Oracle、Sybase 等驅(qū)動程序),管理應用程序和DBMS驅(qū)動程序之間的交互 作用。驅(qū)動程序管理器的主要功能如下:為應用程序加載DBMS驅(qū)動程序。檢查ODBC調(diào)用參數(shù)的合法性和記錄ODBC函數(shù)的調(diào)用。為不同驅(qū)動程序的ODBC函數(shù)提供單一的入口。調(diào)用正確的DBMS驅(qū)動程序。提供驅(qū)動程序信息。當一個應用程序與多個數(shù)據(jù)庫連接時,驅(qū)動程序管理器 能夠保證應用程序正確地調(diào)用這些DBS的DBMS,實現(xiàn)數(shù)據(jù) 訪問,并把來自數(shù)據(jù)源的數(shù)據(jù)傳送給應用程序。3. DBMS驅(qū)動程序應用
5、程序不能直接存取數(shù)據(jù)庫,其各種操作請求要通過 ODBC的驅(qū)動程序管理器提交給DBMS驅(qū)動程序,通過驅(qū)動 程序?qū)崿F(xiàn)對數(shù)據(jù)源的各種操作,數(shù)據(jù)庫的操作結果也通過驅(qū) 動程序返回給應用程序。應用程序通過調(diào)用驅(qū)動程序所支持 的函數(shù)來操縱數(shù)據(jù)庫。驅(qū)動程序也是一個動態(tài)連接庫(DLL) o當應用程序調(diào)用函數(shù)進行連接時,驅(qū)動程序管理器加載 驅(qū)動程序。根據(jù)應用程序的要求,驅(qū)動程序主要完成以下任 務:建立應用程序與數(shù)據(jù)源的連接。向數(shù)據(jù)源提交用戶請求執(zhí)行的SQL語句。根據(jù)應用程序的要求,將發(fā)送給數(shù)據(jù)源的數(shù)據(jù)或是從數(shù)據(jù)源 返回的數(shù)據(jù)進行數(shù)據(jù)格式和類型的轉換。把處理結果返回給應用程序。將執(zhí)行過程中DBS返回的錯誤轉換成OD
6、BC定義的標準錯誤 代碼,并返回給應用程序。根據(jù)需要定義和使用光標。4ODBC的數(shù)據(jù)源管理數(shù)據(jù)源(Data Source Name,簡稱DSN)是驅(qū)動程序 與DBS連接的橋梁,數(shù)據(jù)源不是DBS,而是用于表達一個 ODBC驅(qū)動程序和DBMS特殊連接的命名。數(shù)據(jù)源分為以下 三類:用戶數(shù)據(jù)源:用戶創(chuàng)建的數(shù)據(jù)源,稱為“用戶數(shù)據(jù)源” o此 時只有創(chuàng)建者才能使用并且只能在所定義的計算機上運行。 任何用戶都不能使用其他用戶創(chuàng)建的用戶數(shù)據(jù)源。系統(tǒng)數(shù)據(jù)源:所有用戶和在Windowrs NT下以服務方式運行 的應用程序均可使用系統(tǒng)數(shù)據(jù)源。文件數(shù)據(jù)源:文件數(shù)據(jù)源是0DBC3.0以上版本增加的一種 數(shù)據(jù)源,可用于企業(yè)
7、用戶。ODBC驅(qū)動程序也安裝在用戶的計算機上。創(chuàng)建數(shù)據(jù)源最簡單的方法是使用ODBC驅(qū)動程序管理器。 在連接中,用數(shù)據(jù)源名來代表用戶名、服務器名、所連接的 數(shù)據(jù)庫名等,可以將數(shù)據(jù)源名看成是與一個具體數(shù)據(jù)庫建立 的連接。12. 1. 2 OLE DBODBC在數(shù)據(jù)庫編程方面是一個很大的進步,因為它定 義了簡單的運行時接口,可以用來使用許多種類的數(shù)據(jù)庫。 然而,ODBC也有一些缺陷,如ODBC是一個基于過程的接 口,即整個ODBC接口的定義是由一些函數(shù)所構成的,不方 便編程人員的學習和使用,并且它還不易擴展和集成。因此,Microsoft公司提供了一種對各類應用程序均適用的、采用ODBC接口、通過結
8、構化查詢語言SQL對數(shù)據(jù)庫進行訪問操作的總體方案,即0LE DBo它是一組“組件對象模型” (COM)接口,是一種數(shù)據(jù) 訪問的技術標準,封裝了ODBC的功能,目的是提供統(tǒng)一的 數(shù)據(jù)訪問接口。這里的數(shù)據(jù)既可以是DBMS數(shù)據(jù)源,也可以 是非DBMS數(shù)據(jù)源。DBMS數(shù)據(jù)源包括網(wǎng)絡數(shù)據(jù)庫(如SQL Server> Oracle 和DB2等)及桌面數(shù)據(jù)庫(如Microsoft Access);非DBMS 數(shù)據(jù)源庖括存放在Windows和UNIX文件系統(tǒng)中的信息、電子 郵件、電子表格、Web上的文本或圖形及目錄服務等。OLE DB使得數(shù)據(jù)的消費者(應用程序)可以用相同的 方法訪問各種數(shù)據(jù),而不用考慮
9、數(shù)據(jù)的具體存儲位置、格式 和類型。OLE DB和ODBC相比,在底層的引擎和每一個獨 立的數(shù)據(jù)庫引擎之間的接口有很大的不同。在ODBC中,每一種類型的數(shù)據(jù)庫必須有一個動態(tài)連 接庫(DLL) , ODBC引擎使用DLL來打開該類型的數(shù)據(jù)庫 并執(zhí)行修改記錄等操作。動態(tài)連接庫被稱為ODBC驅(qū)動程序 管理器。在OLE DB中仍然需要有驅(qū)動程序管理器,不同之處在于 OLE DB驅(qū)動程序管理器是ActiveX實現(xiàn)的,一個ActiveX就定 義了用來實現(xiàn)特定接口的類,通過這種方式提高了數(shù)據(jù)庫編 程的速度,因為它減少了在程序和需要進入的數(shù)據(jù)庫引擎之 間的層次。另外,Microsoft公司還提供了一個ODBC/
10、OLEDB橋,它 允許從OLE DB中使用一個ODBC驅(qū)動程序。OLE DB將傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)劃分為多個邏輯部件,部件 間相對獨立又可相互通信。(1) 消費者(consumers):消費者是使用OLE DB對存儲在數(shù)據(jù)提供者中 的數(shù)據(jù)進行控制的應用程序。除了典型的數(shù)據(jù)庫應用程序外,還包括需 要訪問各種數(shù)據(jù)源的開發(fā)工具或語言等。(2) 提供者(providers):提供者是暴露OLE DB的軟組件。提供者大致 分兩類,即藪據(jù)提供者(data providers)和服務提供者(service providers) o數(shù)據(jù)提供者是提供數(shù)據(jù)存儲的軟組件,小到普通的文本文 件,大到主機上的復雜數(shù)據(jù)庫,或
11、者電子郵件存儲,都是數(shù)據(jù)提供者的 例子;服務提供者位于數(shù)據(jù)提供者之上,它是從過去的DBMS中分離出來 且能獨立運行的功能組件,如查詢處理器和游標引擎等,這些組件使得 數(shù)據(jù)提供者提供的數(shù)據(jù)能以表格形式向外表示(不管真實的物理數(shù)據(jù)是 如何組織和存儲的),并實現(xiàn)數(shù)據(jù)的查詢和修改功能。服務提供者不擁 有數(shù)據(jù),但通過使用OLE DB生產(chǎn)和消費數(shù)據(jù)來封裝某些服務。(3) 業(yè)務組件(business component):業(yè)務組件是利用數(shù)據(jù)服務提供者 專門完成某種特定業(yè)務信息處理的、可重用的功能組件。12.1.3 ADO1. ADO對象模型OLE DB標準的具體實現(xiàn)是一組API函數(shù),這些API函數(shù)符 合CO
12、M。使用OLE DB API可以編寫能訪問符合OLE DB標準的 任何數(shù)據(jù)源的應用程序,也可以編寫針對某些特定數(shù)據(jù)存儲的 查詢處理器和游標引擎。但是,OLEDB應用程序編程接口的目的是為各種應用程 序提供最佳的功能,它并不符合簡單化的要求。而 ADO(ActiveX Data Objects, ActiveX數(shù)據(jù)對象)技術則是一種 良好的解決方案,它構建于0LE DB API之上,提供一種而向 對象的、與語言無關的應用程序編程接口。ADO的應用場合非常廣泛,不僅支持多種程序設計語言, 而且兼容所有的數(shù)據(jù)庫系統(tǒng),從桌面數(shù)據(jù)庫到網(wǎng)絡數(shù)據(jù)庫等, ADO提供相同的處理方法。ADO不僅可在Visual
13、BASIC這樣 的高級語言開發(fā)環(huán)境中使用,還可以在服務器端腳本語言中 使用,這對于開發(fā)Web應用,在ASP的腳本代碼中訪問數(shù)據(jù) 庫提供了操作應用的捷徑。ADO是一個ASP內(nèi)置的服務器組件,它是一座連接Web 應用程序和OLE DB的橋梁,運用它結合ASP技術可在網(wǎng)頁 中執(zhí)行SQL命令,達到訪問數(shù)據(jù)庫的目的。ADO最主要的優(yōu) 點是易于使用、速度快、內(nèi)存支岀少和磁盤遺跡小。ADO在 關鍵的應用方案中使用最少的網(wǎng)絡流量,并且在前端和數(shù)據(jù) 源之間使用最少的層數(shù),所有這些都是為了提供輕量、高性 能的接口。ADO的對象模型如圖12/所示。ConnectionRecorisetConnectionField
14、sFieldRecorisetCommandPa ereiParam ererErrcrErrors ErrorPropertiesPiuperty圖12-1 ADO的對彖模型每個ConnectionCommand> Recordset和Field對象都有Properties集合。2. ADO功能ADO支持開發(fā)C/S和B/S應用程序的關鍵功能包括:獨立創(chuàng)建對象。使用ADO不再需要瀏覽整個層次結構來創(chuàng)建 對象,因為大多數(shù)的ADO對象可以獨立創(chuàng)建。這個功能允許 用戶只創(chuàng)建和跟蹤需要的對象,這樣,ADO對象的數(shù)目較少, 所以工作集也更小。成批更新。通過本地緩存對數(shù)據(jù)的更改,然后在一次更新中 將
15、其全部寫到服務器。支持帶參數(shù)和返回值的存儲過程。不同的游標類型。包括對SQL Server和Oracle數(shù)據(jù)庫后端 特定的游標支持??梢韵拗品祷匦械臄?shù)目和其他的查詢目標來進一步調(diào)整性 支持從存儲過程或批處理語句返回的多個記錄集。ADO連接數(shù)據(jù)庫功能強大,使用方便,所以現(xiàn)在一些主 要的軟件開發(fā)工具都支持ADO,下面我們就以現(xiàn)在比較流 行的幾種開發(fā)工具為例,來介紹這些開發(fā)工具中如何通過 ADO連接SQL Server數(shù)據(jù)庫,并操縱數(shù)據(jù)庫中的數(shù)據(jù)。12.2在Visual BASIC中的數(shù)據(jù)庫開發(fā)年 12.2.1 Visual BASIC簡介Q 12.2.2 VB中使用ADO數(shù)據(jù)控件連接數(shù)據(jù)庫12.2
16、.1 Visual BASIC簡介Visual BASIC (VB)是全球最大的軟件公司Microsoft公 司研制和開發(fā)的。VB不僅是一種程序設計語言,也是一個開 發(fā)數(shù)據(jù)庫應用或其他應用的工具。VB為開發(fā)人員提供了可視 化的開發(fā)環(huán)境,用戶能方便地用所見即所得的交互式方式設 計岀用戶界面,其特點有:(1) VB提供了多種數(shù)據(jù)庫引擎。在VB環(huán)境開發(fā)數(shù)據(jù)庫應用時, 與數(shù)據(jù)庫連接和對數(shù)據(jù)庫的數(shù)據(jù)操作是通過0 DBC、 Microsoft Jet (數(shù)據(jù)庫引擎)等實現(xiàn)的。(2)VB具有先進的模塊化程序設計功能,這使得用VB編寫大 型程序、完成大規(guī)模項目變得很容易。另外,VB易于編程的 原因,在于其擁有
17、強大的內(nèi)部函數(shù)。(3)VB簡單易學,適合各種開發(fā)人員使用。(4)VB具有廣泛的應用背景。微軟公司不僅在Office套件中嵌 入了VB代碼,使之可以完成一定的任務,同時還在瀏覽器IE 4.0以上的版本中支持VBScript。利用VB還可以開發(fā)動態(tài)服務器網(wǎng)頁,可以組建大型復雜 的網(wǎng)站。所以,VB不僅是初學者,而且是高級編程人員的首 選編程語言。下面介紹如何使用Visual BASIC 6.0開發(fā)SQL Serve應用 程序,主要講述通過ADO數(shù)據(jù)控件訪問SQL Server數(shù)據(jù)庫的 方法和操作步驟。12. 2. 2 VB中使用AD0數(shù)據(jù)控件連接數(shù)ADO數(shù)據(jù)控件使用ActiveX數(shù)據(jù)對象(ADO)來
18、快速建立 數(shù)據(jù)綁定控件與數(shù)據(jù)源之間的連接,其中,數(shù)據(jù)綁定控件可 以是任何具有data source屬性的控件,數(shù)據(jù)提供者可以是任 何符合OLE DB規(guī)格的源。使用該控件可以快速創(chuàng)建記錄集, 并通過數(shù)據(jù)綁定控件將數(shù)據(jù)提供給用戶。1安裝ADO數(shù)據(jù)控件默認打開的VB6.0控件界面上沒有ADO數(shù)據(jù)控件。所以 在使用ADO數(shù)據(jù)控件之前,必須將其添加到工具箱中。操作 步驟如下:(1) 選擇菜單欄中的“工程”-“部件”命令。(2) 在打開的“部件”對話框中選擇“控件”選項卡,選中 Microsoft ADO DataControl 6.0 (OLEDB) ” 復選框,如下圖所示。®12-2嘟件”對
19、話部件X控件I設計器I可插入對象IJ寸II DO5B" Microsoft Chart Control 6.0 (OLED0) Microsoft Comm Control 6.0 Microsoft Common Dialog Control 6.0 Microsoft Data Bound List Controls 6.0 Microsoft DataGrid Control 6.0【OLEDR; Microsoft DataList Controls 6.0 (OLEDB)4|IJj(9仁吿=£同囲瀏覽動|廠只顯示選定頂運)Microsoft AHO Data Co
20、ntrol 6. 0 (OLEBB) 定位:C;windssystem32 MSAD0DC OCX確定取消 | 應用)|®12-2嘟件”對話(3)單擊“確定”按鈕,將ADO數(shù)據(jù)控件添加到Visual BASIC的工具箱中, 如圖123所示。圖123工具箱中的ADO數(shù)據(jù)控件2.在窗體上添加ADO數(shù)據(jù)控件在工具箱中雙擊Adodc控件按鈕,即在窗體上添加一個ADO數(shù)據(jù)控件, 如圖124所示。圖124 ADO數(shù)據(jù)控件外觀3設置ADO數(shù)據(jù)控件連接的數(shù)據(jù)庫在窗體上添加ADO數(shù)據(jù)控件后,通過設置該控件的Connectionstring屬性可以指定所要連接的SQL Serve徴據(jù) 庫,這種連接可以通
21、過OLEDB提供程序或ODBC驅(qū)動程序來 實現(xiàn)。Connectionstring屬性值是一個字符串,主要內(nèi)容包括訪 問數(shù)據(jù)庫所用的提供程序或驅(qū)動程序、服務器名稱、用戶標 識和登錄密碼以及要連接的默認數(shù)據(jù)庫等。操作步驟如下:(1)單擊窗體中的ADO數(shù)據(jù)控件,在屬性窗口選擇Connectionstring 屬性打開“屬性頁”對話框,如圖12-5所示。I屈性頁連接資源C便用Data Link文件©a便用連接字符串(£)r便用ODBC數(shù)據(jù)資瀝名稱)生成)|取消應用®幫助012-5 “屬性頁”對話框如果創(chuàng)建了Microsoft數(shù)據(jù)連接文件,選擇“使用Data Link文件”
22、單選按鈕,單擊“瀏覽”按鈕尋找文件;如果使 用DSN (數(shù)據(jù)源名稱),選擇“使用ODBC數(shù)據(jù)源名稱”單 選按鈕;如果希望使用連接字符串,選擇“使用連接字符串” 單選按鈕。下面以“使用連接字符串”為例,介紹連接SQL Sewer數(shù) 據(jù)庫的方法。選擇“使用連接字符串”單選按鈕,然后單擊“生成” 按鈕,打開如圖126所示的對話框filicrosoft filicrosoft filicrosoft filicrosoft filicrosoft:IlMi cx-«:*EOttfilicrosoft filicrosoft filicrosoft MicrosoftJet Jet OLE O
23、LE g癢OLE OLE OLE OLE3. 514. 0 DB DB DDDB DB DB DUOLE DB Fr ovi d.erOLE DB Fr ovi d.er Frov-i d.er Frov-i d.er Fr ovi de rFrov-i d.er Frov-i d.er Frovi d.erfor F or forfor for forAnalysis Services 10.0 Data Mining Services T 職覚 旦 g g號三W號OLAT Servi ces 6. 0 OracleSQL ServerSirriple Fr ovi d.erMSDataSh
24、ape OLE DB Frovider for Microsoft SQL Server Native CLient 10.0Directory Services下一步CM) »I電數(shù)搖就按居性捉供程序I連按高飯I所有)選擇您希望連接的數(shù)據(jù):OUZ DB捉供程序圖126選擇連接的數(shù)據(jù)選擇 “Microsoft OLE DB Provider for SQL Server'選項, 單擊“下一步”按鈕,打開如下圖127所示的對話框。在該 對話框中選擇SQL Server服務器名,選擇數(shù)據(jù)庫的驗證模式 以及數(shù)據(jù)庫名,最后單擊“確定”按鈕。提供程序連接|高級|所有|扌旨定下列設置以連
25、接到SQL Server數(shù)據(jù):一刁刷新(£) |1.選擇或輸入服務礙名稱迢):localhos t2.輸入登錄服務器的信息:L便用Windows MT集成安全設置遣) 爛 諛用指定的用尸名稱和密碼): 用戶名稱 0) :|s tudentadm密碼 E) :*木林冰林林冰廠 空白密碼&) 允許保存密碼(£)3- e在服務器上選擇數(shù)據(jù)庫):| studentc陽加一個數(shù)據(jù)庫文件作為數(shù)培庫名0P :jstudeTlt 使用文件名匹):取消圖127指定數(shù)據(jù)庫4設置ADO數(shù)據(jù)控件的記錄來源在設置ADO數(shù)據(jù)控件所要連接的SQL Server數(shù)據(jù)庫之 后,還需要通過設置該控件的
26、Record Source屬性來指定 來源。操作步驟如下:(1) 在“屬性”窗口中單擊Record Source屬性框右邊 的按鈕,打開“屬性頁”對話框,如圖128所示。雇性頁記錄源I記錄源一命令文本CSQL)確定取消應用(A)幫助2 一 adCmdTable命令類型S12-8 “屬性頁”對話框(2)在“屬性頁”對話框中,從“命令類型”列表框中選擇 所需命令類型:若要通過執(zhí)行一個SQL語句來生成記錄集,則選擇“1 -adCmdT ext”選項。若要從一個數(shù)據(jù)庫表中檢索數(shù)據(jù)庫,則選擇“ 2-adCmdTable 選項。若要通過執(zhí)行一個存儲過程來生成記錄集,則選擇“ 4-adCmdStoredPr
27、ocw 選項。(2) 根據(jù)步驟(2)的操作不同,執(zhí)行下列操作之一:若在步驟(2)選擇的類型為2或4,則在“表或存儲過 程名稱”文本框中選擇所需的表名稱或存儲過程名稱。若在步驟(2)選擇的類型為仁 則在“命令文本(SQL) ”文本框中輸入一個SOL查詢語句。單擊“確定”按鈕,完成Record Source屬性的設置。12.3在Delphi或C+Builder中的數(shù)據(jù)庫開發(fā)辛 1231 Delphi 與 C+Builder 簡介帝 123.2 C+Builder提供的SQL Server訪問機制12. 3. 1 Delphi與C+Builder簡介Delphi和C+ Builder是全球著名的軟件
28、開發(fā)商Borland公 司(現(xiàn)已更名為Inprise)發(fā)展的快速應用程序開發(fā)工具 (Rapid Application Development, RAD)。它們後由VCL可視化控件(Visual Component Library) 來進行裡序設計,薇軟苗Visual Basic則禰為Control,但不 管是Component或Control,它們都是對象的一種,這些現(xiàn)成 的對象使得程序設計不再是從零開始,而是從現(xiàn)有的對彖出 發(fā),就僅集成電路的設計,也是從現(xiàn)有的IC組合更多更夫的 電路,這也是Inprise公司大力倡導的軟件IC觀念。所以在Inprise大力倡導程序組件共享的前提下,C+ B
29、uilder與Delph洪享了所有的VCL對象、屬性與方法,所有 進入Delphi與C+ Builder的畫面可說是除了標題的Delphi與 C+ Builder不同外,其余全部相同。不同的是Delphi熱承了 Pascal語言的語法,而C+ Builder繼承了C/C+語法。由于現(xiàn)在一般高校在進行教學時多數(shù)都開設了 C/C+程 序設計課程,而Pasca語言使用比較少,所以本書就以C+ Builder為例來介紹有關開發(fā)SQL Server數(shù)據(jù)庫程序的一些知 識,C+Builder與Delphi之間程序的移植非常的方便,基本 上就是將對應語句更改成相應的另外一種語法。12.3.2 C+Build
30、er提供的SQLServer訪問機制C+ Builder對SQL Server提供了很強的數(shù)據(jù)庫訪問能力, 也提供了多種方式訪問SQL Servero在利用SQL Server和 C+ Builder開發(fā)數(shù)據(jù)庫應用系統(tǒng)時,通常將數(shù)據(jù)訪問組件放 在數(shù)據(jù)模塊中(也可以直接放在窗體界面上),將用戶界面組 件放在窗體中,它的模型如圖所示。圖12-9 Delphi+SQL Server融合開發(fā)的數(shù)據(jù)庫應用程序模型訪問SQL Server的方法有以下幾種:1. BDE/IDAPIC+ Builder通過BDE/IDAPI來訪問數(shù)據(jù)庫。BDE是C+ Builder采用的一個中間件,它一方面連接C+ Buil
31、der中的各 種數(shù)據(jù)庫操作對象,比如Tqueue;另一方面連接了數(shù)據(jù)庫的 驅(qū)動程序。對于SQL Server,可以采用SQL Links提供的驅(qū)動程序, 再配合SQL數(shù)據(jù)庫提供的客戶端軟件。但SQL Links僅僅提供 了為BDE服務的驅(qū)動程序,而控制與遠程SQL服務器連接的 程序,則是由SQL Serve啲客戶端提供的。采用這種方法連接SQL Server的操作步驟如下:(1)選擇“開始” “C+Builder'J'BDE Administrate)廣命令,打開 “BDE Administrator窗口,如下圖 12-10所示。壟BDE AdainistTflLtor C:r
32、rograa FilesCoo血 Fil.QsBorl.iJLd.|_廠 廠Databases j Confguration ll068丑:3-.:丑:3-:3-:3-曰enose脈W."Ctrl+NDeleteCtrl+DRenaneCtrl+Mi?plzCtrl+ACancelAlt-iBkSpSave AsCtrl+SRefreshCtrl+RODBC Adninistrator. Oen Configuration. Fflerge Configuration.11Save As Configurati on. f Options.圖 12-10 WBDE Administr
33、ator窗口6 items in Det (2)在左邊的樹形窗格中選擇“DataBase,選項卡,右擊 “DataBase”結點,在彈岀的快捷菜單中選擇“New”命令, 打開 uNew DataBase Aliasn對話框,在"DataBase Driver Namen下拉列表中選擇“MSSQL”選項,如圖12門 所示。圖 12-11 “New DataBase Alias"對話框(3) 單擊“OK”按鈕,返回如圖12-12所示的“EDE Administrator” 窗口。| 住 BDE Administrator U'Progrom F$lE5C:omnnon
34、Filf ®Borlaiui iShmrci'BDE'I".I x|© X Q CAll Database AliasesDefinition of MSSQL1Databases | Configuration Definition |囪石JifeiTypeMSSQL由肓JWMISAPPLICATION NAME由肓 Locals er verBATCH COUNT200由肓logiBLOB EDIT LOGGING由肓MQISBLOB SIZE32畝 石 MS Access DatabasBLOBS TO CA.CHE64丨DATABASE N
35、AMEE-肓 studentDATE MODE0田肓 studentsS S Q L1 ENABLE BCDFALSE由 肓 Visual FoxPro Datab |ENABLE SCHEMACCHEFALSE們I 2JHOST NAME圖12-12定義數(shù)據(jù)庫別名(4) 修改MSSQL1名稱為用戶自定義的數(shù)據(jù)庫別名,然后在右 側的“DefinitiorT窗槁中設置一些參藪。卞1是一些董要的參 數(shù)說明: SERVER NAME必須設置,代表SQL Server所在的主機名 稱。 DATABASE NAME必須設置,代表SQL Server上數(shù)據(jù)庫的 名稱。 USER NAME指的是默認的用戶名
36、。 LANGDRIVE必須設置,用于顯示SQL數(shù)據(jù)的語言代碼設置。 HOST NAME是給本機設置的名字,以便讓SQL服務器能夠 識別客戶端。 OPEN MODE對于ODBC設置有效。 SQLQRYMODE設置處理SQL的方式。可選項為: NULL: SQL查詢首先被送至服務器端執(zhí)行,如果服務器端執(zhí)行失敗,則由本地來完成。 SERVER: SQL完全由服務器端來完成,如果服務器端不能 執(zhí)行,貝USQL執(zhí)行失敗。 LOCAL: SQL在本地執(zhí)行。(5)保存別名定義。單擊鼠標右鍵,在彈出的快捷菜單中選擇 “Apply”命令,即保存了別名的定義。(6)雙擊該別名,或者在右鍵快捷菜單中選擇“Open”
37、命令。 如果需要輸入密碼,輸入用戶名和密碼,這樣C+Builder就 同SQL Server上的數(shù)據(jù)庫建立起了連接,此時別名旁的小圖 標將加上綠色框表示已經(jīng)打開,如圖12/3所示。塑 BDE Administrator C:Program FilesCommon FilesBorla.廠廠 廠° CAll Database AliasesDatabases | Configuration |Definition of MSSQL1Definition |田旨JWMIS甘因后1 LocalServer±logi牡書MQISII血苔 MS Access Databas 嚴品1田
38、旨student.nh.蘭oh|MSSQL11JO41THBiaLiTypeMSSQL厶APPLICATION NAMBATCH COUNT200BLOB EDIT LOGGII BLOB SIZE32BLOBS TO CACHE 64DATABASE NAME studentDATE MODE0ZH匚madi r nrncai u匚ZJ2 ODBCODBC是微軟一直以來推薦的數(shù)據(jù)庫連接方式,已成為了一 種工業(yè)標準。采用這種方法連接SQL Server需要以下步驟:在使用ODBC建立與后臺數(shù)據(jù)庫的連接時,通過數(shù)據(jù)源名 指定使用的數(shù)據(jù)庫,這樣當使用的數(shù)據(jù)庫改變時,不用改變 程序,只要在系統(tǒng)中重新
39、配置DSN就可以了。DSN是應用程 序和數(shù)據(jù)庫之間連接的橋梁。在設置DSN時包括DSN名、 ODBC驅(qū)動程序類型以及數(shù)據(jù)庫等信息。(2)啟動ODBC數(shù)據(jù)源設置程序。首先從用戶計算機控制面板 啟動“數(shù)據(jù)源ODBC”程序,打開“ODBC數(shù)據(jù)源管理器”對 話框,如圖12/4所示。數(shù)據(jù)源文件有三種類型,其中“用戶 DSN”和“系統(tǒng)DSN”是我們常用的兩種數(shù)據(jù)源?!坝脩鬌SM 和“系統(tǒng)DSN”的區(qū)別是,前者用于本地數(shù)據(jù)庫的連接,后者 是多用戶和遠程數(shù)據(jù)庫的連接方式。系統(tǒng)數(shù)據(jù)源:錢I馳動程手球、舉 SQL Server Uative Client 10.0nnai|信息。系IJJx|文件BS1T |馳動程
40、序跟蹤|連接池關于S12-14 “ODBC數(shù)據(jù)源管理器”對話框(3)創(chuàng)建新數(shù)據(jù)源(以“系統(tǒng)DSN”為例加以說明)。在如圖 12-13所示的對話框中選擇“系統(tǒng)DSN”選項卡,單擊“添加” 按鈕,打開“創(chuàng)建數(shù)據(jù)源”對話框。在此,因為現(xiàn)在要設置 的數(shù)據(jù)庫類型為SQL Server,選擇相對應的數(shù)據(jù)庫驅(qū)動程序“SQLServer”選項,如圖12/5所示。IQ ODBC數(shù)齬IB管理圏?|X用尸BSW系統(tǒng)DS»I文件DSN |駝動程序丨跟脈|連接池丨關于|系統(tǒng)數(shù)據(jù)源):名稱I驅(qū)動程序SQL Server Hative Client 10. 0號豔隈険系(4)創(chuàng)建新的數(shù)據(jù)源到SQL Servero
41、在上一步選擇了連接數(shù) 據(jù)源的類型,單擊“完成”按鈕,打開“創(chuàng)建到SQL Server 的新數(shù)據(jù)源”對話框,如圖12/6所示。在“名稱”文本框中 輸入數(shù)據(jù)源名稱“student”,在“說明”文本框中輸入對數(shù)據(jù) 源的說明“學生信息管理系統(tǒng)”。選擇數(shù)據(jù)庫服務器名稱, 在此選擇本機命名的數(shù)據(jù)庫服務器,也可以輸入數(shù)據(jù)庫服務 器的IP地址。圖12-16 “創(chuàng)建到SQL Server的新數(shù)據(jù)源”對話框圖12-16 “創(chuàng)建到SQL Server的新數(shù)據(jù)源”對話框注意:如果網(wǎng)絡采用TCP/IP協(xié)議,并且禁用了TCP/IP上 的NetBIOS,那么必須使用IP地址來連接,而且在下一步的 配置中,要進行“客戶端配置
42、”,選擇“使用TCP/IP”連接到 數(shù)據(jù)庫服務器。(5) 創(chuàng)建新的數(shù)據(jù)源到SQL Servero登錄方式有兩種,選擇 第二種方式“使用用戶輸入登錄ID和密碼的SQL Server驗證” 方式,如圖12仃所示。輸入數(shù)據(jù)庫的用戶名稱和密碼,單擊 “下一步”按鈕。創(chuàng)建S1 :SQL Seq.的新數(shù)爵源15SQL Server應該如何驗證登錄ID的真?zhèn)?謹用網(wǎng)絡登錄ID的Windows NT驗證峨)。介使用用戶輸入登錄ID和密碼的SQL Server驗證。要更改用于與SQL Server通訊的網(wǎng)貉庫,潔單擊“客戶端配置”客戶端配置(X)-.Q連接SQL Server以獲得苴它配置選頂?shù)哪J設置
43、9;。登錄 ID(X-): |student&djTi密同的:*榊林林林水|取消幫助|圖12-17選擇登錄驗證方式(6)建立新的數(shù)據(jù)源到SQL Servero在如圖12/7所示的對話框中單擊“下一步”按鈕,打開如圖12/8所示的對話框,選中“更改默認的數(shù)據(jù) 庫為”復選框,在其下拉列表中選擇student數(shù)據(jù)庫。單擊“下一步”按 鈕,打開如圖12/9所示的對話框。創(chuàng)建到SQL的新數(shù)據(jù)源studentr«據(jù)庫文件名op:I啷十5«喚程q只有當斷開時©)。蘭斷開時和彥結時同樣適用怏17使用ABSI引用的標識符17使用ANSI的空值、埴充及警告。廠若主SQL Se
44、rver不可用j諸使用故疇移SQL Server (£)0下一步) >取消| 稱助|圖12-18選擇數(shù)據(jù)庫(7)完成數(shù)據(jù)源的創(chuàng)建。在如圖12/9所示的對話框,選擇 SQL Server數(shù)據(jù)庫支持的語言以及其他一些選項,單擊 “完成”按鈕。創(chuàng)建參SQL Server的新數(shù)弱jgr更改.頁匸魚羞匏購的i讀為.©g3(sinplified Chineser對數(shù)據(jù)使用強大的加密匝執(zhí)行字鮫數(shù)據(jù)翻譯廠當輸出貨幣、戮字、日期和時間時,諳使用區(qū)域繾- 廠將長吋間運行的查詢保存到日志文件:|c: DOCIJME1 ADMI5IZV1WCALS"1 TempQVERY 瀏覽 )
45、.打| 長查詢時間(勤)忑):|30030 廠的ODBC瞬程序統(tǒng)計記錄到日志丸件辺:取消上一步 完成圖12-19選擇語言及其他 一些選項|c : JQCiJMEj AD 肛肛 h'DrALSh hm?S】ATS(8) 在創(chuàng)建完成數(shù)據(jù)源之后,進行數(shù)據(jù)源選項的測試,如圖12-20所示。到此為止,新的“系統(tǒng)DSN”配置成功。同理,“用戶 DSN”的配置方法與“系統(tǒng)DSN”的配置方法相同。ODBC li crosoft SQL Server 安裝將按下列配置創(chuàng)建新的ODBC數(shù)據(jù)源:Microsoft SQL Server ODBC 驅(qū)動程序版本 03.85.1132數(shù)據(jù)遞名稱:student
46、數(shù)據(jù)湧描述:學生信息管理系筑Server: localhost 數(shù)渥庫:student 語言:(Default) 翻譯字符數(shù)據(jù):Y“ 日志長運行查詢:No 日志蚯動程序統(tǒng)計:ffo 便用集成安全機制:ffo 傍角反域鑼置 Ho 菽走父岡畬句遞項:在斷開時捌除臨時存儲過程 吏用故陣轉移服筠器:Ho 便用A1ISI引用的標識符:Yes 吏用A1TSI的空值,埴充和警告:Yes 數(shù)據(jù)加賽:Ho圖 12-20 UODBC Microsoft SQL Server安裝”對話框3 ADOC+Builder提供了ADO組件編程。利用這些組件,用戶 可以與ADO數(shù)據(jù)庫相聯(lián)系,讀取數(shù)據(jù)庫中的數(shù)據(jù)并執(zhí)行相應 的操
47、作,在此過程中完全不需要使用BDE。C+ Builder 6.0 中的ADO組件頁如圖1221所示。Slandaid | Additional, Win32, System, Data Access | Data Controls | dbExoress | DataSnao | BDE ADO |圖12-21 ADO組件頁主要包含如下七個控件: rADOConnection:用于建立與數(shù)據(jù)庫的ADO連接,其他組件都可以通 過它來對數(shù)據(jù)庫進行操作,從而避免了每個組件都要建立自己的連接字 符串。 omma :專門用來創(chuàng)建和執(zhí)行命令,它適合于執(zhí)行不返回結果 的SQL命令。 :可以對數(shù)據(jù)表進行操作、
48、執(zhí)行SQL查詢和存儲過程,并 且能通過 DOConnectior組件或直接與一個數(shù)據(jù)存儲建立連接。 TADOTable:用于檢索和操作由一個數(shù)據(jù)表生成的數(shù)據(jù)集。 DOQl :用于檢索和操作由一個合法的SQL語句生成的數(shù)據(jù)集。 JStoredProc:用于執(zhí)行存儲過程,無論它是否返回結果值。 TRDSConnection:主要實現(xiàn)RDS Dataspace對象的功能,以便建立多 層客戶機/服務器應用程序。在使用ADO訪問數(shù)據(jù)庫時,首先要建立與數(shù)據(jù)庫的連接, 方法有如下兩種:使用FADOConnectioi建立與ADO數(shù)據(jù)庫的連接,其他組件 通過它來操作數(shù)據(jù)庫。直接使用TADODataSet、TA
49、DOTable、TADOQuery、 TADOStoredProc組件與數(shù)據(jù)庫建立連接。TADOConnection組件及每一個ADO訪問組件都包含一 個被稱為Connectionstring的富性,利用該屬性可以指定一 個到ADO數(shù)據(jù)存儲及其屬性的連接。使用屬性編輯器可以方 便地為Connectionstring屬性設定值。(1) 在窗體或數(shù)據(jù)模塊中選擇要配置的ADO控件,單擊 “Object Inspector”中 “ConnectionString”屬性項右邊的 按鈕,打開如012-22所示的對話框。有兩種方式設置:第一種為Use Data Link File,使用已有的數(shù)據(jù)連接文件 (
50、.UDL);第二種為Use Connection String,直接輸入數(shù)據(jù)連 接參數(shù)。Scarce of ConmctonU$eDataLi*FleI I1色劉淀. U$e CorrecbonSirrgBuld.OKCancelHeb圖 12-22 設置Connectionstring屬性(2) 單擊“Build”按鈕,打開“數(shù)據(jù)鏈接屬性”對話框,如圖12-23所不。在該對話框中,由于要連接SQL Server數(shù)據(jù)庫, 這里選擇"Microsoft OLE DB Provider for SQL Server'選項。Jet Jet OLE OLE OLE OLE OLE O
51、LEOLE3.51 OLE DB Provi der4 0 OLE DB Provider DBDBDBDBDBDBDBProvi derProvi derProvi derProvi derProvi derProviderfor For for for £or forknalysis Services 10. 0 Data Mining Services Indexing Service ODBC DriversOIAT Servi ces 8. 00三幫MSimple ProviderDirectory Services下一步) »012-23 “提供程序”選項卡電數(shù)
52、據(jù)梃接屋性提供程存連接I高級I所有I選揮您希望連援的數(shù)菇:OI.-E DB規(guī)供程序(3)單擊“下一步”按鈕,打開如® 12-24所示的對話框。在 該對話框中選擇SQL Server服務器名(或用IP地址),選擇 數(shù)據(jù)庫的驗證模式以及數(shù)據(jù)庫名。電數(shù)軽鏈接fl性localhos t2. 輸入登錄服務器的信息:C使用Windows M集成安全設置魁)Q便用扌旨定的用戶名稱和密碼):用戶名稱 ):Jstudentad/n密碼址):J*-廠空白密碼)廠允許保存密碼3. (?在服務器上選擇數(shù)據(jù)庫):| student附加一個數(shù)據(jù)庫文件作為數(shù)據(jù)庫名):|studeR t使用文件名(£):
53、二Ir取消(4)單擊“測試連接”按鈕,進行測試。以上就是C+ Builde沖連接SQL Server數(shù)據(jù)庫比較常用 的三種方式,一般來說如果數(shù)據(jù)庫支持ADO連接,推薦使用 ADO方式,在后邊的實例中我們也是以ADO方式來連接SQL Server數(shù)據(jù)庫的。9 9 9)12.4 ASP與 SQL Server 2012 的協(xié)同運用f 1244 ASP運行環(huán)境的建立年 12.4.2在ASP中連接SQLServer數(shù)據(jù)莊C- 1243 ASP與SQL Server數(shù)據(jù)庫協(xié)同開發(fā)程序的方式12. 4. 1 ASP運行環(huán)境的理立Microsoft Active Server Pages (ASP)是一套微
54、軟開發(fā) 的服務器端腳本環(huán)境,ASP本身并不是一種腳本語言,它只 是提供了一種使嵌在HTML頁面中的腳本程序得以運行的環(huán) 境。通過ASP我們可以結合HTML網(wǎng)頁、ASP指令和ActiveX 組件建立動態(tài)、交互且高效的Web服務器應用程序。通過ASP可以連接現(xiàn)在常用的大多數(shù)數(shù)據(jù)庫系統(tǒng),通過 ADO可以方便、高效地實現(xiàn)對數(shù)據(jù)庫的讀取、寫入及刪除等 操作,結合HTML頁面,可以實現(xiàn)時下流行的B/S方式的數(shù)據(jù) 庫管理系統(tǒng),這在以前則必須編寫CGI程序才能夠?qū)崿F(xiàn)。ASP內(nèi)含于Windows XP Windows NT/2000的IIS (Internet Information Server)或Windows 98的PWS (Personal Web Server)中,開發(fā)ASP應用程序前先要對其 運行環(huán)境進行配
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 理解農(nóng)作物種子的市場影響因素分析試題及答案
- 2024年農(nóng)業(yè)植保員考試需掌握的內(nèi)容試題及答案
- 模具設計師資格考試解題技巧及答案
- 項目交付標準考核試題及答案
- 福建事業(yè)單位考試記憶技巧的多種方法與訓練試題及答案
- 了解項目管理考試的新變化與新挑戰(zhàn)試題及答案
- 環(huán)境影響與2025年證券從業(yè)考試的關聯(lián)探討試題及答案
- 項目啟動階段的重要任務試題及答案
- 證券從業(yè)資格證風險投資之道試題及答案
- 2024年微生物檢驗技師考試總體策略試題及答案
- 山東省高中名校2025屆高三4月校際聯(lián)合檢測大聯(lián)考生物試題及答案
- 2025年武漢數(shù)學四調(diào)試題及答案
- 【MOOC】數(shù)學建模精講-西南交通大學 中國大學慕課MOOC答案
- 職業(yè)病防護設施與個體防護用品的使用和維護
- 中國紡織文化智慧樹知到期末考試答案2024年
- (正式版)HGT 6313-2024 化工園區(qū)智慧化評價導則
- 《給教師的100條建議》電子書
- 老視的機制及治療的研究進展
- VDA6.3的P2-7條款
- 工程聯(lián)系單表格(模板)
- 混凝土攪拌機設計論文
評論
0/150
提交評論