Server應(yīng)用程序開發(fā)課件_第1頁
Server應(yīng)用程序開發(fā)課件_第2頁
Server應(yīng)用程序開發(fā)課件_第3頁
Server應(yīng)用程序開發(fā)課件_第4頁
Server應(yīng)用程序開發(fā)課件_第5頁
已閱讀5頁,還剩112頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第12章

SQLServer應(yīng)用程序開發(fā)12.1使用Access開發(fā)

SQLServer應(yīng)用程序在Access2000或更高版本中,可以使用Access項目對SQLServer數(shù)據(jù)庫高效、方便的訪問。使用Access項目可以輕松地創(chuàng)建客戶/服務(wù)器應(yīng)用程序。操作Access項目與操作Access數(shù)據(jù)庫非常相似。除了要連接到SQLServer數(shù)據(jù)庫外,在Access項目中創(chuàng)建和應(yīng)用窗體、報表、數(shù)據(jù)訪問頁、宏和模塊的方法,與在Access數(shù)據(jù)庫中所用的方法是相同的。下面以Access2000為例來介紹如何使用Access來開發(fā)SQLServer應(yīng)用程序。12.1.1創(chuàng)建Access項目Access項目是一種Access數(shù)據(jù)文件,它能通過OLEDB組件結(jié)構(gòu)有效地以本地模式訪問SQLServer數(shù)據(jù)庫。OLEDB是一種組件數(shù)據(jù)庫體系,它對多種類型數(shù)據(jù)源實現(xiàn)有效的網(wǎng)絡(luò)和Internet訪問。使用Access項目可以輕松地創(chuàng)建一個客戶/服務(wù)器應(yīng)用程序,既可以是基于窗體、報表的傳統(tǒng)解決方案,也可以是通過數(shù)據(jù)訪問頁實現(xiàn)的基于Web的解決方案,或是兩者的結(jié)合。1.創(chuàng)建Access項目并將其與現(xiàn)有SQLServer數(shù)據(jù)庫連接啟動Access2002,然后從“文件”選單中選擇“新建”命令。在“新建文件”任務(wù)窗格中,單擊“項目(現(xiàn)有數(shù)據(jù))”,在“文件新建數(shù)據(jù)庫”對話框中,單擊“保存位置”框中的一個地址,并在“文件名”框中鍵入項目文件名,確?!癕icrosoftAccess項目”出現(xiàn)在“保存類型”框中,之后,單擊“創(chuàng)建”按鈕。當(dāng)出現(xiàn)“數(shù)據(jù)鏈接屬性”對話框時,選擇“連接”選項卡,然后選擇或輸入要登錄的服務(wù)器名稱。提供登錄到服務(wù)器上所需的信息,為此應(yīng)執(zhí)行下列操作之一:若要使用Windows賬戶登錄到SQLServer服務(wù)器,請單擊“使用WindowsNT集成安全設(shè)置”選項。若要使用指定的登錄ID和密碼登錄到SQLServer服務(wù)器,請單擊“使用指定的用戶名稱和密碼”選項,并輸入相應(yīng)的用戶名稱和密碼。選中“在服務(wù)器上選擇數(shù)據(jù)庫”選項,然后在該選項下面的下拉式列表中選擇要連接的SQLServer數(shù)據(jù)庫(如示例數(shù)據(jù)庫Northwind)。單擊“確定”按鈕,完成到指定數(shù)據(jù)庫的連接,此時該數(shù)據(jù)庫中包含的各個對象將顯示在“項目”窗口中,如圖12.4所示。在如圖12.6所示的“MicrosoftSQLServer數(shù)據(jù)庫向?qū)А睂υ捒蛑?,鍵入要使用的服務(wù)器的名稱、在服務(wù)器上具有CREATEDATABASE權(quán)限的賬戶的登錄ID和密碼以及新SQLServer數(shù)據(jù)庫的名稱,然后單擊“下一步”按鈕。注意如果正在創(chuàng)建一個SQLServer6.5數(shù)據(jù)庫,請輸入數(shù)據(jù)庫設(shè)備和大小、事務(wù)處理日志設(shè)備和大小、數(shù)據(jù)庫的大小和日志的大小。無需為SQLServer7.0或更高版本指定設(shè)備和大小。在Access2000中,可以使用MicrosoftSQLServer數(shù)據(jù)庫向?qū)?chuàng)建SQLServer6.5或SQLServer7.0數(shù)據(jù)庫。若要MicrosoftSQLServer數(shù)據(jù)庫向?qū)?chuàng)建SQLServer2000數(shù)據(jù)庫,則應(yīng)使用Access2002。在如圖12.7所示的對話框中,單擊“完成”按鈕。12.1.2打開Access項目步驟(1)在“文件”選單中選擇“打開”命令。(2)單擊“打開”對話框左側(cè)的快捷方式,或者在“查找范圍”框中單擊包含要打開的Access項目的驅(qū)動器或文件夾。若要查看以前打開過的Access項目的快捷方式列表,請單擊“打開”對話框左側(cè)的“歷史”。(3)在文件夾列表中雙擊文件夾,直到打開包含Access項目的文件夾。如果找不到想要打開的Access對象,請單擊“打開”對話框右上角的“工具”,然后單擊“查找”,并在“查找”對話框中輸入搜索條件。(4)單擊打開的Access項目文件,然后執(zhí)行下列操作之一:若要打開Access項目,請單擊“打開”按鈕。若要以只讀訪問方式打開Access項目,請單擊“打開”箭頭,然后選擇“以只讀方式打開”命令。在Access2002中,可以只以獨占模式打開Access項目。如果試圖打開一個其他用戶已經(jīng)打開的Access項目,則Access會提示用戶打開了該文件的一個只讀副本。需要說明的是,當(dāng)以只讀模式打開Access項目時,仍然可以添加或修改數(shù)據(jù),創(chuàng)建或修改表、視圖、數(shù)據(jù)庫圖表或存儲過程,因為數(shù)據(jù)和這些對象是駐留在SQLServer數(shù)據(jù)庫中。然而,不能創(chuàng)建或修改窗體、報表、宏或模塊,因為這些對象是駐留在Access項目中的。12.1.3連接到SQLServer數(shù)據(jù)庫下面介紹將Access項目連接到SQLServer數(shù)據(jù)庫,或者更改Access項目與SQLServer數(shù)據(jù)庫的連接方法。在Access2002在,打開要連接到SQLServer數(shù)據(jù)庫的Access項目。(1)從“文件”選單中選擇“連接”命令。(2)在如圖12.8所示的“數(shù)據(jù)鏈接屬性”對話框中,選擇“連接”選項卡。從下拉列表中選擇一個服務(wù)器名,或鍵入想要訪問數(shù)據(jù)庫所在的服務(wù)器位置。單擊“刷新”按鈕,可以刷新服務(wù)器列表。(4)輸入登錄到服務(wù)器所需的信息,可以使用WindowsNT集成安全機制,也可以使用指定的用戶名和密碼。(5)從所選服務(wù)器上,選擇要連接的SQLServer數(shù)據(jù)庫。若要測試所做的設(shè)置是否正確,請單擊“測試連接”按鈕。此時,將嘗試連接到指定的SQLServer數(shù)據(jù)庫。如果連接失敗,請確保設(shè)置是正確的。(6)單擊“確定”按鈕。12.1.4使用數(shù)據(jù)庫表在Access2002中,既可以創(chuàng)建一個Access項目并將其與現(xiàn)有SQLServer數(shù)據(jù)庫連接,也可以創(chuàng)建一個SQLServer數(shù)據(jù)庫并將其與Access項目連接。無論是哪一種情況,只要打開了Access數(shù)據(jù)庫中使用表設(shè)計器一樣。所不同的是,對于Access項目來說,表存儲在SQLServer數(shù)據(jù)庫中;對于Access數(shù)據(jù)庫來說,表即存儲在該數(shù)據(jù)庫中。下面介紹通過Access項目在SQLServer數(shù)據(jù)庫創(chuàng)建表的方法。步驟啟動Access2002,然后從“文件”選單中選擇“新建”命令。在“新建文件”窗格中,單擊“項目(新數(shù)據(jù))”。在“文件新建數(shù)據(jù)庫”對話框中,單擊“保存位置”框中的一個地址,并在“文件名”框中鍵入一個名稱(例中為Students),然后單擊“創(chuàng)建”按鈕。當(dāng)出現(xiàn)“MicrosoftSQLServer數(shù)據(jù)庫向?qū)А睂υ捒驎r,鍵入要使用的服務(wù)器的名稱、在服務(wù)器上具有CREATEDATABASE權(quán)限的賬戶的登錄ID和密碼以及新SQLServer數(shù)據(jù)庫的名稱(例中為StudentsSQL),然后單擊“下一步”按鈕.單擊項目窗口工具欄上的“新建”按鈕。在項目窗口中雙擊“使用設(shè)計器創(chuàng)建表”。此時出現(xiàn)如圖12.11所示的表設(shè)計器窗口,該窗口與SQLServer2000的表設(shè)計器基本相同。表設(shè)計器上部網(wǎng)格中的每一行對應(yīng)表中的一列。

創(chuàng)建表時,需要對表中的每一列進行定義:在上部網(wǎng)格中指定列名稱、選擇數(shù)據(jù)類型并鍵入列說明文本,然后在窗口下部的“列”選項卡中對列的各種屬性進行設(shè)置。按照要求,完成Students表結(jié)構(gòu)的定義,并將student_id列設(shè)置為表的主鍵,然后單擊工具欄中的“保存”按鈕。當(dāng)出現(xiàn)如圖12.12所示的“選擇名稱”對話框時,在“輸入表名稱”框中輸入Students,然后單擊“確定”按鈕。按照要求,完成Courses表結(jié)構(gòu)的定義。按照要求,完成Scores表結(jié)構(gòu)的定義。完成數(shù)據(jù)庫表結(jié)構(gòu)定義后,若要向表中輸入數(shù)據(jù)或查看表中的數(shù)據(jù),請單擊該表,然后單擊項目窗口工具欄上的“打開”按鈕;若要修改表結(jié)構(gòu),請單擊項目窗口工具欄上的“設(shè)計”按鈕;若要刪除一個表,請在項目窗口中單擊該表,然后單擊項目窗口工具欄上的“刪除”按鈕。步驟(1)在Access2002中打開項目Students.adp。在如圖12.13所示的項目窗口中,單擊對象欄下方的“數(shù)據(jù)庫圖表”,然后執(zhí)行下列操作之一:(2)單擊項目窗口工具欄上的“新建”按鈕。在項目窗口中雙擊“使用設(shè)計器創(chuàng)建數(shù)據(jù)庫圖表”。(3)當(dāng)出現(xiàn)如圖12.14所示的“添加表”對話框時,按住Ctrl鍵依次單擊要添加到數(shù)據(jù)庫圖表中的表,然后單擊“添加”按鈕,再單擊“關(guān)閉”按鈕。在本例中向圖表中添加了三個表,即Students表、Courses表和Scores表。(6)重復(fù)步驟(4)和(5),通過course_id列在Scores表和courses表之間建立關(guān)系。(7)單擊工具欄上的“保存”按鈕,并在“另存為”對話框中指定圖表名稱,然后關(guān)閉數(shù)據(jù)庫圖表設(shè)計器窗口。創(chuàng)建數(shù)據(jù)庫圖表后,若要修改該圖表的設(shè)置,請單擊該圖表,然后單擊項目窗口工具欄上的“設(shè)計”按鈕;若要刪除該圖表,請單擊該圖表,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.6使用查詢項目中的查詢對應(yīng)于SQLServer數(shù)據(jù)庫中的視圖,這種數(shù)據(jù)庫對象存儲在SQLServer數(shù)據(jù)庫中,可以使用與表相同的方式在SQL查詢語句中引用。在Access2002中,可以使用查詢設(shè)計器來創(chuàng)建視圖。[例12.3]本例說明如何使用查詢設(shè)計器創(chuàng)建視圖對象。在項目文件Students.adp中創(chuàng)建一個名為“學(xué)生成績”的視圖,其結(jié)果集內(nèi)的數(shù)據(jù)分別來自Students表、Courses表和Scores表,所顯示的輸出列包括Students表中的student_num列、student_name列、Courses表中的course_name列以及Scores表中的score,要求按student_name列升序排列記錄。步驟在Access2002中打開項目文件Students.adp。在如圖12.17所示的項目窗口中單擊對象欄下方的“查詢”,然后單擊項目窗口工具欄上的“新建”按鈕,或者在項目窗口中雙擊“使用設(shè)計器創(chuàng)建視圖”,以打開查詢設(shè)計器窗口。向視圖中添加所需表。當(dāng)出現(xiàn)“添加表”對話框時,將Students表、Courses表和Scores表添加視圖中,然后關(guān)閉“添加表”對話框,并進入查詢設(shè)計器窗口.向視圖中添加所需表列。在查詢設(shè)計器窗口上部的“圖表”窗格中,單擊要輸出的表列左側(cè)的輸出復(fù)選框,使這些列出現(xiàn)在下方的設(shè)計網(wǎng)格中。在本例中,通過視圖輸出的列包括Students表中的student_num列和student_name列、Courses表中的course_name列以及Scores表中的score列。指定輸出列的別名。在設(shè)計網(wǎng)格中,分別在student_num,student_name,course_name和score列的“別名”框中鍵入中文名稱,即“學(xué)號”、“姓名”、“課程名稱”和“成績”。

設(shè)置排序選項。在設(shè)計網(wǎng)格中,單擊student_name列的“排序”單元格,然后選擇“升序”選項,如圖12.19所示。單擊工具欄上的“保存”按鈕,并在“另存為”對話框中將視圖名稱指定為“學(xué)生成績”,然后單擊“確定”按鈕。從“視圖”選單中選擇“數(shù)據(jù)表視圖”命令,或者單擊工具欄上的“視圖”按鈕,或者單擊工具欄的“運行”按鈕,以瀏覽視圖的運行結(jié)果,如圖12.20所示。若要查看視圖中的SQL語句,單擊工具欄的“SQL”按鈕即可。此時將在SQL窗格中看到以下SELECT查詢語句:SELECTTOP100PERCENTdbo.Students.student_numAS學(xué)號,dbo.Students.student_numAS姓名,dbo.Courses.course_nameAS課程名稱,dbo.Score.scoreAS成績FROMdbo.CoursesINNERJOINdbo.ScoreONdbo.Courses.course_idINNERJOINdbo.StudentsONdbo.Scores.student_id=dbo.Students.student_idORDERBYdbo.Students.student_name由于事先已經(jīng)使用圖表設(shè)計器分別在Students表和Scores表以及Courses表和Scores表之間建立了關(guān)系,故在上述語句的FROM子句中自動出現(xiàn)了INNERJOIN運算符,通過內(nèi)連接返回到在連接列中具有相等值的行。此外,在上述語句中還自動出現(xiàn)了TOP100PERCENT選項,如果不想使用該選項,可以單擊工具欄上的“屬性”按鈕,然后在“屬性”對話框的“視圖”選項卡中清除“頂端”復(fù)選框。在Access項目中創(chuàng)建一個視圖之后,若要在數(shù)據(jù)表視圖中查看結(jié)果集的內(nèi)容,請單擊該視圖,然后單擊項目窗口工具欄上的“打開”按鈕;若要在設(shè)計視圖中修改該視圖的定義,請單擊該視圖,然后單擊項目窗口工具欄上的“設(shè)計”按鈕;若從項目中要刪除該視圖,請單擊該視圖,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.7使用窗體通過Access項目中的窗體可以輸入和顯示數(shù)據(jù),這種窗體存儲在Access項目中,數(shù)據(jù)本身則存儲在SQLServer數(shù)據(jù)庫中。在Access2002中,既可以在設(shè)計視圖中創(chuàng)建窗體,也可以使用向?qū)?chuàng)建窗體。[例12.4]本例說明如何使用向?qū)?chuàng)建窗體。在項目文件Student.adp中創(chuàng)建一個名為“學(xué)生資料”的窗體,通過該窗體可以查看或修改Student表中的數(shù)據(jù)。步驟在Access2002中打開項目文件Student.adp。啟動窗體向?qū)?。在如圖12.21所示的項目窗口中單擊對象欄下方的“窗體”,然后雙擊“使用向?qū)?chuàng)建窗體”。確定在窗體上使用哪些字段。當(dāng)出現(xiàn)如圖12.22所示的對話框時,首先從“表/查詢”列表框中選擇將要作用窗體數(shù)據(jù)源的表或視圖,然后在“可用字段”列表框中依次雙擊所需要的每個字段,將它們添加到“選定的字段”列表框中。也可以從多個表或視圖中選擇字段。若要刪除某個已經(jīng)選定的字段,請在“選定的字段”列表框中雙擊該字段。在本例中,為窗體選擇的字段均來自Student表,包括student_num,student_name,student_sex,birthdate,department,speciality,grade以及class字段。確定窗體上所需字段后,單擊“下一步”按鈕。確定窗體布局。當(dāng)出現(xiàn)如圖12.23所示的“窗體向?qū)А睂υ捒驎r,為窗體選擇一種適當(dāng)?shù)牟季址绞健?/p>

每當(dāng)選擇一種布局方式時,可以在該對話框的左半部分查看相應(yīng)的布局效果。例如,若要使每個表列都顯示在一個獨立的行上,并且左邊帶有一個標(biāo)簽,請選擇“縱欄式”選項;若要使每一行的所有表列都顯示在一行,標(biāo)簽顯示在窗體的頂端,請選擇“表格”選項。在本例中選擇了“縱欄式”布局,單擊“下一步”按鈕。確定窗體樣式。當(dāng)出現(xiàn)如圖12.24所示的“窗體向?qū)А睂υ捒驎r,選擇窗體所用的樣式,可供選擇的樣式有“Sumi畫”、“國際”、“宣紙”、“工業(yè)”、“標(biāo)準(zhǔn)”、“沙巖”、“混合”、“石頭”、“藍(lán)圖”和“遠(yuǎn)征”。在本例中選擇了“標(biāo)準(zhǔn)”樣式,然后單擊“下一步”按鈕。在如圖12.25所示的“窗體向?qū)А睂υ捒蛑?,將窗體的標(biāo)題指定為“學(xué)生資料”,并選取“修改窗體設(shè)計”選項,然后單擊“完成”按鈕。在窗體設(shè)計器窗口中打開窗體之后,在窗體頁眉區(qū)中添加一個標(biāo)簽,其文本內(nèi)容為“學(xué)生資料”,并設(shè)置字體和字號;將每個文本框左側(cè)的標(biāo)簽內(nèi)容改為中文,例如將student_num改為“學(xué)號”,將student_name改為“姓名”,等等。經(jīng)過修改后的窗體布局如圖12.26所示。

從“視圖”選單中選擇“窗體視圖”命令,或者單擊工具欄上的“視圖”按鈕,以查看窗體的運行效果,如圖12.27所示。在“窗體”視圖中查看學(xué)生資料的情形如圖12.27所示,此時可以通過單擊窗體底部的瀏覽按鈕在不同學(xué)生記錄之間移動。在項目中創(chuàng)建一個窗體之后,若要在窗體視圖中查看該窗體,請單擊該窗體,然后單擊項目窗口工具欄上的“打開”按鈕;若要修改該窗體的布局,請單擊該窗體,然后單擊項目窗口工具欄上的“設(shè)計”按鈕;若要刪除該窗體,請單擊該窗體,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.8使用報表使用Access項目中的報表可以對數(shù)據(jù)進行計算、分組、匯總和打印,報表存儲在Access項目中,數(shù)據(jù)本身則存儲在SQLServer數(shù)據(jù)庫中。在Access2002中,既可以使用報表設(shè)計器創(chuàng)建報表,也可以使用向?qū)?chuàng)建報表。[例12.5]本例說明如何使用向?qū)?chuàng)建報表。在項目Student.adp中創(chuàng)建一個名為“學(xué)生資料”的報表,按照學(xué)號升序顯示所有學(xué)生的部分信息,并要求按照班級分組顯示。步驟在Access2002中打開項目文件Student.adp。啟動報表向?qū)АT谌鐖D12.28所示的項目窗口中單擊對象欄下方的“報表”,然后雙擊使用向?qū)?chuàng)建報表。確定報表上使用哪些字段。當(dāng)出現(xiàn)如圖12.29所示的“報表向?qū)А睂υ捒驎r,從“表/查詢”列表框中選擇“表:Students”,然后在“可用字段”列表框中依次雙擊所需字段,將它們添加到“選定的字段”列表框中.在本例中選定student_num,student_name,student_sex,birthdate,department,speciality,grade以及class字段。然后單擊“下一步”按鈕。確定分組級別。當(dāng)出現(xiàn)如圖12.30所示的“報表向?qū)А睂υ捒驎r,在左邊的列表框中雙擊要作為分組依據(jù)的字段。在本例中選擇class字段作為分組依據(jù),然后單擊“下一步”按鈕確定排序次序。當(dāng)出現(xiàn)如圖12.31所示的“報表向?qū)А睂υ捒驎r,確定明細(xì)信息使用的排序次序,最多可以選擇四個字段對記錄排序,既可以是升序也可以是降序。單擊“升序”按鈕,則它變?yōu)椤敖敌颉?,反之亦然。在本例中選擇student_num字段作為排序依據(jù),然后單擊“下一步”按鈕。

確定報表的布局方式和打印方向。在如圖12.32所示的“報表向?qū)А睂υ捒蛑校瑸閳蟊磉x擇一種適當(dāng)?shù)牟季址绞?,可供選擇的布局方式有“遞階”、“塊”、“分級顯示1”、“分級顯示2”、“左對齊1”以及“左對齊2”,每當(dāng)選擇一種布局方式時,都可以在對話框左邊查看相應(yīng)的布局效果;選擇報表的打印方向,根據(jù)表中使用字段的多少可以選擇“縱向”或者“橫向”。在本例中,為報表選擇的布局方式為“左對齊1”,打印方式為“縱向”,并選定“調(diào)整字段寬度使所有字段都能顯示在一頁中”復(fù)選框,然后單擊“下一步”按扭.確定報表所用樣式。在如圖12.33所示的“報表向?qū)А睂υ捒蛑校瑸閳蟊磉x擇一種樣式,可供選擇的樣式有“大膽”、“正式”、“淡灰”、“緊湊”、“組織”和“隨意”。在本例中為報表選擇“組織”樣式,然后單擊“下一步”按鈕。指定報表標(biāo)題。在如圖12.34所示的“報表向?qū)А睂υ捒蛑?,為報表指定?biāo)題(本例中為“學(xué)生資料”)。并選擇“修改報表設(shè)計”選項,然后單擊“下一步”按鈕。在報表設(shè)計器窗口中打開報表之后,將報表中所有標(biāo)簽中的字段名改為中文,例如將“student_num”改為“學(xué)號”等,如圖12.35所示。從“視圖”選單中選擇“打印預(yù)覽”命令,或者單擊工具欄上的“打印預(yù)覽”按鈕,以查看報表的布局效果。在項目中創(chuàng)建一個報表之后,若要在打印預(yù)覽視圖中查看該報表,請單擊該報表,然后單擊項目窗口工具欄上的“打印預(yù)覽”按鈕;若要修改該報表的布局,請單擊該報表,然后單擊項目窗口工具欄上的“設(shè)計”按鈕;若要刪除該報表,請單擊該報表,然后單擊項目窗口工具欄上的“刪除”按鈕。12.1.9通過項目管理SQLServer數(shù)據(jù)庫通過Access項目中不僅可以管理存儲在項目中的數(shù)據(jù)庫對象(例如窗體和報表等),也可以管理存儲在SQLServer數(shù)據(jù)庫中的數(shù)據(jù)庫對象(例如表、視圖和數(shù)據(jù)庫圖表等),還可以對SQLServer數(shù)據(jù)庫本身進行管理。1.顯示SQLServer服務(wù)器屬性步驟在Access2002中打開一個已與SQLServer建立連接的Access項目。在“視圖”選單中選擇“服務(wù)器屬性”命令。此時出現(xiàn)如圖12.37所示的“服務(wù)器屬性”對話框,包含了以下信息:數(shù)據(jù)庫產(chǎn)品(MicrosoftSQLServer);數(shù)據(jù)庫版本號(8.0即為SQLServer2000版);數(shù)據(jù)庫服務(wù)器的名稱;Access項目連接到的當(dāng)前SQLServer數(shù)據(jù)庫的名稱。

注意當(dāng)前SQLServer數(shù)據(jù)庫名稱以及其文件格式(Access2000或Access2002)也顯示在“項目”窗口的標(biāo)題欄中,出現(xiàn)在Access項目文件名稱的右側(cè)。2.備份和還原數(shù)據(jù)庫使用Access項目可以對SQLServer2000數(shù)據(jù)庫進行備份和還原。應(yīng)該經(jīng)常定期備份數(shù)據(jù)庫,以保護在硬件故障或意外損失時數(shù)據(jù)的安全。利用創(chuàng)建數(shù)據(jù)時制作的備份,可以還原這些數(shù)據(jù)。若要備份并還原SQLServer數(shù)據(jù)庫,請使用SQLServer企業(yè)管理器。下面介紹通過Access項目來備份SQLServer數(shù)據(jù)庫的方法。步驟打開一個連接到SQLServer2000的Access項目。選擇“工具→數(shù)據(jù)庫實用工具→備份SQL數(shù)據(jù)庫”命令。當(dāng)出現(xiàn)如圖12.38所示的“備份”對話框時,在“文件名”框中輸入備份文件的名稱(.dat),或使用Access輸入的默認(rèn)名稱。單擊“確定”按鈕。需要注意的是,上述操作不備份Access項目(.adp),該項目文件獨立于所連接的SQLServer數(shù)據(jù)庫。若要制作Access項目文件的備份,請使用Windows資源管理器,將該文件復(fù)制到安全的位置。若要還原數(shù)據(jù)庫,必須斷開所有用戶與該數(shù)據(jù)庫的連接,并關(guān)閉除“數(shù)據(jù)庫”窗口外的所有窗口,然后執(zhí)行以下操作。步驟打開一個連接到SQLServer2000的Access項目。選擇“工具→數(shù)據(jù)庫實用工具→還原SQL數(shù)據(jù)庫”命令,當(dāng)出現(xiàn)如圖12.39所示的對話框時,單擊“是”按鈕。當(dāng)出現(xiàn)如圖12.40所示的“恢復(fù)”對話框時,在“查找范圍”框中選擇一個地址,然后找到所需要數(shù)據(jù)庫備份文件(.dat)。單擊數(shù)據(jù)庫備份文件,然后單擊“確定”按鈕。3.刪除數(shù)據(jù)庫下面介紹從Access項目中刪除SQLServer2000數(shù)據(jù)庫的方法。

步驟斷開所有用戶與該數(shù)據(jù)庫的連接,并關(guān)閉除“數(shù)據(jù)庫”窗口外的全部窗口。打開連接到SQLServer2000的Access項目。選擇“工具→數(shù)據(jù)庫實用工具→刪除SQL數(shù)據(jù)庫”命令。單擊“是”按鈕,確認(rèn)數(shù)據(jù)庫刪除操作。12.2使用VisualBasic開發(fā)

SQLServer應(yīng)用程序VisualBasic是目前流行的可視化開發(fā)工具之一,它以簡單易用而著稱,不僅可以用于開發(fā)各種類型的桌面應(yīng)用程序,也可以用于開發(fā)數(shù)據(jù)庫應(yīng)用程序。下面介紹如何使用VisualBasic6.0開發(fā)SQLServer應(yīng)用程序,主要講述通過數(shù)據(jù)控件、ADO數(shù)據(jù)控件以及數(shù)據(jù)環(huán)境訪問SQLServer數(shù)據(jù)庫的方法和步驟。12.21使用數(shù)據(jù)控件數(shù)據(jù)控件是VisualBasic的標(biāo)準(zhǔn)控件之一。在應(yīng)用程序中,可以使用數(shù)據(jù)控件和各種數(shù)據(jù)綁定控件來顯示和更新數(shù)據(jù)庫中的信息。使用數(shù)據(jù)控件時,不用編寫代碼就能夠創(chuàng)建簡單的數(shù)據(jù)庫應(yīng)用程序。如果將數(shù)據(jù)控件與VisualBasic代碼結(jié)合起來,則可以為數(shù)據(jù)處理提供高級的編程控件,從而設(shè)計出功能完備的數(shù)據(jù)庫應(yīng)用程序。1.數(shù)據(jù)控件概述

在VisualBasic中,使用數(shù)據(jù)控件能夠?qū)⒋绑w與數(shù)據(jù)庫連接起來,只需要編寫少量代碼甚至不用編寫代碼就能夠完成下列任務(wù)。與本地數(shù)據(jù)庫或遠(yuǎn)程數(shù)據(jù)庫連接。基于SQL查詢打開指定的數(shù)據(jù)庫表或定義記錄集。將數(shù)據(jù)字段傳送到各種綁定控件,并在這些控件中顯示或更新字段值。根據(jù)綁定控件中顯示的數(shù)據(jù)變化來添加新記錄或更新數(shù)據(jù)庫。捕獲訪問數(shù)據(jù)時出現(xiàn)的錯誤。關(guān)閉數(shù)據(jù)庫。2.在窗體上添加數(shù)據(jù)控件用數(shù)據(jù)控件訪問數(shù)據(jù)庫時,首先要在工具箱中單擊數(shù)據(jù)控件按鈕,并在窗體上添加一個數(shù)據(jù)控件。數(shù)據(jù)控件的大小和位置都可以重新設(shè)置,不過,習(xí)慣上是把該控件放在窗體的底部,并使其寬度與窗體的ScaleWidth

屬性值相等。為此,請在屬性窗口中把數(shù)據(jù)控件的Align屬性設(shè)置為2,使數(shù)據(jù)控件大小將與窗體的尺寸同步變化,如圖12.42所示。從圖中可以看到,數(shù)據(jù)控件中間的空折區(qū)域中顯示著Data1字樣,這是數(shù)據(jù)控件的Caption屬性所指定的文本。在運行時可以用該屬性來顯示當(dāng)前記錄號。3.設(shè)置數(shù)據(jù)控件連接的數(shù)據(jù)庫使用數(shù)據(jù)控件時,首先指定要連接的數(shù)據(jù)類型,這可以通過在屬性窗口中設(shè)置數(shù)據(jù)控件的Connect屬性來實現(xiàn)。Connect屬性的默認(rèn)值是Access。如果要連接的不是Access數(shù)據(jù)庫,而是其他類型的數(shù)據(jù)庫,就必須對Connect屬性進行設(shè)置,操作方法如下:在屬性窗口中選定數(shù)據(jù)控件,然后單擊Connect屬性框并選擇要連接的數(shù)據(jù)庫類型。若要使用數(shù)據(jù)控件連接到指定的SQLServer數(shù)據(jù)庫,則應(yīng)當(dāng)用手工方式在Connect屬性框中輸入以下字符串:ODBC;Driver={SQLserver};Server=ServerName;UID=UserID;PWD=Password;Database=DatabaseName

在上述連接字符串中,ODBC表示通過ODBC驅(qū)動程序建立與數(shù)據(jù)庫的連接;Server指定要連接的SQLServer服務(wù)器;UID和PWD分別指定SQLServer登錄名和密碼;Database指定要連接的SQLServer數(shù)據(jù)庫。例如,設(shè)SQLServer實例運行在計算機ABC上,有一個用戶ID為hegels,相應(yīng)的密碼為123456,若要連接的數(shù)據(jù)庫為StudentSQL,則連接字符串內(nèi)容應(yīng)為:ODBC;Driver={SQLserver};Server=ABC;UID=hegels;PWD=123456;Database=StudentSQL4.設(shè)置數(shù)據(jù)控件的記錄來源設(shè)置要通過數(shù)據(jù)控件連接的SQLServer數(shù)據(jù)庫之后,還需要設(shè)置該控件的RecordSource屬性,以指定在數(shù)據(jù)綁定控件中顯示的記錄來源。數(shù)據(jù)控件的RecordSource屬性的值是一個字符串表達(dá)式,其值可以是一個表名稱,也可以是一個合法的SQL查詢語句。一旦通過Connect屬性指定要連接的SQLServer數(shù)據(jù)庫文件,VisualBasic就會自動檢索該數(shù)據(jù)庫中的所有表和有效查詢的名稱,并將它們顯示在RecordSource屬性列表中.5.使用數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件是數(shù)據(jù)識別控件,通過它來訪問數(shù)據(jù)庫中的信息。當(dāng)一個控件被綁到數(shù)據(jù)控件時,VisualBasic將當(dāng)前記錄中的字段值應(yīng)用于該控件,在該控件中顯示數(shù)據(jù),并允許進行修改。如果在綁定控件里改變了字段值,當(dāng)移動到另一條記錄時,所做的修改會自動地寫入到數(shù)據(jù)庫。在VisualBasic6.0中,可用做綁定控件的標(biāo)準(zhǔn)控件包括復(fù)選框、圖像控件、標(biāo)簽、圖片框、文本框、列表框以及組合框等;可用做綁定控件ActiveX控件包括DBList,DBCombo,DataList,DataCombo,MSFlexGrid,DBGrid以及MaskedEdit等。在使用任何ActiveX控件之前,都需要從“工程”選單中選擇“部件”命令,然后在“部件”對話框中添加該控件。此外,還必須從“工程”選單中選擇“引用”命令,然后在“引用”對話框中注冊數(shù)據(jù)訪問對象(DAO)庫。下面介紹在應(yīng)用程序中使用綁定控件的方法。步驟在窗體上添加數(shù)據(jù)控件,并設(shè)置與數(shù)據(jù)訪問有關(guān)的一些基本屬性,例如Connect和RecordSource屬性等,以指定要訪問的SQLServer數(shù)據(jù)。在同一窗體上添加綁定控件,并將其DataSource屬性設(shè)置為數(shù)據(jù)控件的名稱,從而將該控件綁定到數(shù)據(jù)庫。將綁定控件的DataField屬性設(shè)置為一個字段名稱,從而將該控件綁定到當(dāng)前記錄的一個字段。注意設(shè)置DataSource屬性后,VisualBasic會自動檢索所有可用字段并顯示在DataField屬性的下拉式列表框中,如果在設(shè)計時數(shù)據(jù)庫不可用,則在數(shù)據(jù)值從數(shù)據(jù)庫中發(fā)送給控件之前,需要在運行時用代碼提供一個有效的字段名稱。例如,若要將文本框Text1綁定到student_num字段上,可以通過下面的語句來實現(xiàn):

Text1.DataField=“student_num”對于個別字段也可以有多個綁定控件,但不必為表中的每個字段都提供一個綁定控件。數(shù)據(jù)控件和綁定控件并不一定要設(shè)為可視的。如果把數(shù)據(jù)訪問的能力合并到設(shè)計的窗體中,便能夠利用程序代碼在后臺進行數(shù)據(jù)處理。在程序運行時,數(shù)據(jù)控件、綁定控件與數(shù)據(jù)庫一起工作,以訪問當(dāng)前記錄集內(nèi)的數(shù)據(jù)。使用數(shù)據(jù)控件的箭頭按鈕可以在不同的記錄之間移動,而用綁定控件則可以查看或編輯從每個字段里顯示出來的數(shù)據(jù)。無論何時,只要單擊數(shù)據(jù)控件的箭頭按鈕,VisualBasic就會自動地更新對記錄集所做的任何改變。6.用數(shù)據(jù)控件創(chuàng)建簡單

的數(shù)據(jù)庫應(yīng)用程序[例12.6]本例演示如何使用數(shù)據(jù)控件和文本框創(chuàng)建一個數(shù)據(jù)庫瀏覽程序。

步驟在VisualBasic6.0中創(chuàng)建一個標(biāo)準(zhǔn)EXE工程。在窗體上添加一個數(shù)據(jù)控件、五個文本框控件和五個標(biāo)簽控件,其中數(shù)據(jù)控件用于連接數(shù)據(jù)庫,文本框控件用于顯示字段值,標(biāo)簽控件用于提示字段標(biāo)題。按照表12.4中的數(shù)據(jù)對窗體和控件的屬性進行設(shè)置。在代碼窗口中,編寫數(shù)據(jù)控件Data1的Reposition事件過程:‘當(dāng)移動記錄指針時觸發(fā)數(shù)據(jù)控件的Reposition事件PrivateSubData1_Reposition()‘因為記錄集的AbsolutePosition屬性總比記錄號小1Data1.Caption=“當(dāng)前記錄號:”&Data1.Recordset.AbsolutePosition+1EndSub在上述代碼中,用到了記錄集對象的AbsolutePosition屬性,該屬性用于返回記錄集內(nèi)記錄的相對記錄號,而且第一條記錄的記錄號為0。為了用數(shù)據(jù)控件的Caption屬性來顯示當(dāng)前記錄號,應(yīng)將數(shù)據(jù)控件Data1的RecordsetType屬性設(shè)置為1(動態(tài)集)或2(快照型記錄集)。按下F5鍵,運行程序。單擊數(shù)據(jù)控件上的箭頭按鈕,可以在不同的記錄之間移動,而且在數(shù)據(jù)控件中間顯示出當(dāng)前的記錄號.12.2.2添加ADO數(shù)據(jù)控件ADO數(shù)據(jù)控件使用ActiveX數(shù)據(jù)對象(ADO)來快速建立數(shù)據(jù)綁定控件與數(shù)據(jù)源之間的聯(lián)系,使用該控件可以快速創(chuàng)建記錄集并通過數(shù)據(jù)綁定控件將數(shù)據(jù)提供給用戶。1.添加ADO數(shù)據(jù)控件步驟在“工程”選單中選擇“部件”。在“部件”對話框的“控件”選項卡中,選擇MicrosoftADODataControl6.0(OLEDB)復(fù)選框。單擊“確定”按鈕,將ADO數(shù)據(jù)控件添加到VisualBasic的工具箱中,如圖12.49所示。在工具箱中雙擊Adodc控件按鈕,在窗體上添加一個ADO數(shù)據(jù)控件,如圖12.50所示。2.設(shè)置ADO數(shù)據(jù)控件連接的數(shù)據(jù)庫在窗體上添加ADO數(shù)據(jù)控件后,通過設(shè)置該控件的ConnectionString屬性可以指定所要連接的SQLServer數(shù)據(jù)庫,這種連接可以通過OLEDB提供程序或ODBC驅(qū)動程序來實現(xiàn)。OLEDB(ObejctLinking&EmbeddingDatabase)是一種基于COM訪問數(shù)據(jù)的應(yīng)用程序接口,它支持可以使用OLEDB提供程序的任意數(shù)據(jù)源的訪問。ODBC(OpenDatabaseConnectivity)是一種數(shù)據(jù)訪問應(yīng)用程序接口,它支持可以使用ODBC驅(qū)動程序的任意數(shù)據(jù)源的訪問。ConnectionString屬性值是一個字符串,給出建立數(shù)據(jù)庫連接所需要的所有信息,因此也稱為連接字符串。該字符串的主要內(nèi)容包括訪問數(shù)據(jù)所用的提供程序或驅(qū)動程序、服務(wù)器名稱、用戶標(biāo)識和登錄密碼以及要連接的默認(rèn)數(shù)據(jù)庫等。若要通過OLEDB提供程序來訪問SQLServer數(shù)據(jù)庫,應(yīng)按照以下語法格式來設(shè)置ADO數(shù)據(jù)控件的ConnectionString屬性值:Adodc1.ConnectionString=”PROVIDER=SQLOLEDB;DATASOURCE=ServerName;”&_”UID=User;PWD=Password;DATABASE=DatabaseName”若要通過ODBC驅(qū)動程序來訪問SQLServer數(shù)據(jù)庫,應(yīng)按照以下語法格式來設(shè)置ADO數(shù)據(jù)控件的ConnectionString屬性值:Adodc1.ConnectionString=”DRIVER={SQLServer};”&_”UID=UserID;PWD=Password;DATABASE=DatabaseName”3.設(shè)置ADO數(shù)據(jù)控件的記錄來源在設(shè)置ADO數(shù)據(jù)控件所要連接的SQLServer數(shù)據(jù)庫之后,還需要通過設(shè)置該控件的RecordSource屬性來指定來源。

步驟在屬性窗口中選擇ADO數(shù)據(jù)控件。單擊RecordSource屬性框右邊的對話按鈕。當(dāng)出現(xiàn)如圖12.51所示的“屬性頁”對話框時,從“命令類型”列表框中選擇所需命令類型:若要通過執(zhí)行一個SQL語句來生成記錄集,請選擇“1-adCmdText”。若要從一個數(shù)據(jù)庫表中檢索數(shù)據(jù)庫,請選擇“2-adCmdTable”。若要通過執(zhí)行一個存儲過程來生成記錄集,請選擇“4-adCmdStoredPro根據(jù)步驟(3)完成的操作不同,執(zhí)行下列操作之一:若在步驟(3)中選擇的命令類型為2或4,請在“表或存儲過程名稱”框中選擇所需的表名稱或存儲過程名稱。若在步驟(3)中選擇的命令類型為1,請在“命令文本(SQL)”框中輸入一個SQL查詢語句。單擊“確定”按鈕,完成RecordSource屬性的設(shè)置。4.設(shè)置ADO數(shù)據(jù)控件的其他屬性除了設(shè)置ConnectionString和RecordSource屬性之外,使用ADO數(shù)據(jù)控件時經(jīng)常需要設(shè)置以下屬性。ConnectionTimeout屬性:設(shè)置在中止前等待打開連接的時間量(單位為秒)。CursorLocation屬性:指定所使用的游標(biāo)引擎,其取值為2-adUseServer(服務(wù)器端游標(biāo))或3-adUseClient(客戶端游標(biāo))。CursorType屬性:設(shè)置用于下一級記錄集的游標(biāo)類型,其取值為1-adOpenKeyset(鍵集游標(biāo))、2-adOpenDynamic(動態(tài)游標(biāo))或3-adOpenStatic(靜態(tài)游標(biāo))。5.使用ADO數(shù)據(jù)控件

開發(fā)數(shù)據(jù)庫應(yīng)用程序下面給出通過ADO數(shù)據(jù)控件訪問數(shù)據(jù)庫的例子。[例12.8]使用ADO數(shù)據(jù)控件和列表框控件設(shè)計一個數(shù)據(jù)庫應(yīng)用程序,其功能是根據(jù)學(xué)號查詢成績。在VisualBasic6.0中創(chuàng)建一個標(biāo)準(zhǔn)EXE工程。在工具箱中添加ADO數(shù)據(jù)控件,為此應(yīng)在“部件”對話框的“控件”選項卡中選擇MicrosoftDataGridControl6.0(OLEDB)。在窗體上添加ADO數(shù)據(jù)控件Adodc1.在窗體上添加其他控件,包括標(biāo)簽Label1和Label2、文本框Text1、命令按鈕Command1、線段Line1以及列表框List1。按照表12.6中的數(shù)據(jù)設(shè)置窗體和控件的屬性,設(shè)計好的窗體布局如圖12.52所示。在窗體上雙擊命令按鈕Command1,然后在代碼窗口中編寫該控件的Click事件過程,程序代碼如下:PrivateSubCommand1_Click()ConstREC_SRC=”SELECTStudents.student_numAS學(xué)號,”&_“Students.student_nameAS課程,”&_“Scores.scoreAS成績”&_“FROMCoursesINNERJOIN“&_“ScoresONCourses.course_id=Scores.course_idINNERJOIN“&_“StudentsONScores.student_id=Students.student_id“DimsNumAsString,Ssqlasstring,sfldnameasstring,sfldvalueasstringSnum=text1.text‘從文本框中取得輸入的學(xué)號并存入變量snumIfsnum=””thenMsgbox“請指定學(xué)號!”,vbokonly+vbinformation,”學(xué)生成績查詢系統(tǒng)”ExitsubElse‘動態(tài)生成查詢語句ssql=rec_src&”wherestudent_num=”&“‘“&snum&“‘“endifadodc1.recordsource=ssql‘動態(tài)設(shè)置ADO數(shù)據(jù)控件的記錄來源adodc1.refresh‘打開或重新打開數(shù)據(jù)庫內(nèi)容‘recordset表示通過ADO數(shù)據(jù)控件打開的記錄集,EOF屬性為真表明記錄為空ifadodc1.recordset.EOFthenmsgbox“查無此人。請核實后重新輸入!”,vbokonly+vbinformation,”學(xué)生成績查詢系統(tǒng)”exitsubendifLabel2.Caption=adodc1.recordset.fields(“姓名”)&“同學(xué)的成績?nèi)缦拢骸盠ist1.Clear‘清空列表框Sfldname=adodc1.recordset.fields(2).name&vbtab&vbtab&vbtab&_Adodc1.recordset.fields(3).nameList1.additemsfldname‘

將字段名添加到列表框List1.additem““Whilenotadodc1.recordset.eofSfldvalue=adodc1.recordset.fields(2).valud&vbtab&vbtab&_Adodc1.recordset.fields(3).valueList1.additemsfldvalue‘將課程和成績添加到列表框Adodc1.receorset.movenext‘將記錄指針移到下一條記錄WendEndsub(7)按F5鍵,運行程序。在文本框中輸入一個學(xué)號,然后單擊“查看成績”,如果指定的學(xué)生存在于數(shù)據(jù)庫中,則會在列表框中顯示該生各門課程的成績.12.2.3使用數(shù)據(jù)環(huán)境設(shè)計器數(shù)據(jù)環(huán)境設(shè)計器為創(chuàng)建編程運行時數(shù)據(jù)訪問提供了一個交互的設(shè)計時環(huán)境。在設(shè)計時,可以對Connection和Command對象設(shè)置適當(dāng)?shù)闹?、編寫代碼響應(yīng)ADO事件、執(zhí)行命令、創(chuàng)建合計與層次結(jié)構(gòu),也可以拖動DataEnvironment對象到窗體來創(chuàng)建數(shù)據(jù)綁定的控件。使用數(shù)據(jù)環(huán)境設(shè)計器可以完成下面的工作:添加一個數(shù)據(jù)環(huán)境設(shè)計器到一個VisualBasic工程中:創(chuàng)建Connection對象;基于表、視圖、SQL語句或存儲過程等創(chuàng)建Command對象;基于Command對象的一個分組,或通過與一個或多個Command對象相關(guān)來創(chuàng)建命令對象的層次結(jié)構(gòu);為Connection和Recordset對象編寫和運行代碼;從數(shù)據(jù)環(huán)境設(shè)計器中拖動一個Command對象中的字段到一個VisualBasic窗體或數(shù)據(jù)報表設(shè)計器。1.添加數(shù)據(jù)環(huán)境設(shè)計器

若要添加一個數(shù)據(jù)環(huán)境設(shè)計器對象到一個新的VisualBasic工程,請執(zhí)行以下操作。

步驟從“文件”選單中選擇“新建工程”命令。在“新建工程”對話框的“新建”選項卡中,選擇“標(biāo)準(zhǔn)EXE”工程,然后單擊“打開”按鈕。從“工程”選單中選擇“添加DataEnvironment”命令。一旦數(shù)據(jù)環(huán)境設(shè)計器被添加到VisualBasic工程中,數(shù)據(jù)環(huán)境設(shè)計器窗口出現(xiàn),并且將一個Connection對象添加到數(shù)據(jù)環(huán)境,同時在工程窗口中出現(xiàn)一個DataEnvironment對象。2.創(chuàng)建Connection對象

若要通過數(shù)據(jù)環(huán)境訪問數(shù)據(jù),就必須創(chuàng)建一個Connection對象。因此,每一個數(shù)據(jù)環(huán)境應(yīng)當(dāng)最少包括一個Connection對象。一個Connection對象表示一個到遠(yuǎn)程數(shù)據(jù)庫的連接,該數(shù)據(jù)庫被用做一個數(shù)據(jù)源。一旦在VisualBasic工程中添加了一個數(shù)據(jù)環(huán)境,數(shù)據(jù)環(huán)境設(shè)計器就自動地包括一個新的連接,稱為Connection1。在設(shè)計時,數(shù)據(jù)環(huán)境打開連接并從該連接中獲得元數(shù)據(jù),包括數(shù)據(jù)庫對象、表結(jié)構(gòu)和過程參數(shù)。若要創(chuàng)建新的Connection對象,請執(zhí)行下列操作之一:在數(shù)據(jù)環(huán)境設(shè)計器窗口工具欄上單擊“添加連接”按鈕。右擊數(shù)據(jù)環(huán)境設(shè)計器窗口,然后從快捷選單中選擇“添加連接”命令。在數(shù)據(jù)環(huán)境中創(chuàng)建Connection對象之后,還必須設(shè)置它的連接屬性,以指定所用的OLEDB提供程序以及要訪問的數(shù)據(jù)庫等。

步驟在數(shù)據(jù)環(huán)境設(shè)計器窗口中,單擊相應(yīng)的Connection對象。單擊工具欄上的“屬性”按鈕,或者右擊數(shù)據(jù)環(huán)境設(shè)計器窗口,然后從快捷選單中選擇“屬性”命令。在“數(shù)據(jù)鏈接屬性”對話框的“提供者”選項卡中,選擇MicrosoftOLEDBProviderforSQLServer作為OLEDB提供程序.在“數(shù)據(jù)鏈接屬性”對話框的“連接”選項卡中,選擇或輸入運行SQLServer實例的服務(wù)器名稱,輸入登錄該服務(wù)器的信息,在該服務(wù)器上選擇所要訪問的數(shù)據(jù)庫,然后單擊“確定”按鈕,將所設(shè)置的屬性應(yīng)用于Connection對象,并關(guān)閉對話框.3.創(chuàng)建Command對象Command對象定義了從一個數(shù)據(jù)庫連接中獲取何種數(shù)據(jù)的詳細(xì)信息。Command對象既可以基于一個數(shù)據(jù)庫對象(例如一個表、視圖或存儲過程),也可以基于一個SQL查詢。此外,還可以創(chuàng)建Command對象之間的關(guān)系來以層次結(jié)構(gòu)的形式獲取一組相關(guān)的數(shù)據(jù)。但要注意的是,要想使一個Command對象有效,必須和一個Connection對象相關(guān)聯(lián)。如果一個Command對象返回數(shù)據(jù),則它是“記錄集返回”,返回的結(jié)果可以通過使用DataEnvironment對象中的一個Recordset對象進行訪問。然而,如果一個Command對象不返回數(shù)據(jù)(例如執(zhí)行一個更新的存儲過程或SQL文本),則它是“非記錄集返回”。數(shù)據(jù)環(huán)境設(shè)計器自動地識別Command是否是記錄集返回??梢酝ㄟ^使用“Command屬性”對話框中“高級”選項卡的“返回的記錄集”復(fù)選框覆蓋這個設(shè)置。在運行時如何訪問Command對象取決Command對象是否是記錄集返回。如果Command對象是記錄集返回,既可以將Command對象作為DataEnvironment對象的一個屬性,也可以作為它的一個方法來進行訪問。如果它是非記錄集返回,則Command對象只能作為一個方法來訪問。任何時候都可以使用AddCommand函數(shù),并且它與其他對象的存在與否無關(guān)。然而,一個沒有與Connection對象關(guān)聯(lián)的Command對象是無效的。如果一個Connection對象在添加過程中可以被從當(dāng)前焦點中標(biāo)識出來,則Command對象的ActiveConnection屬性就被設(shè)置到這個Connection對象。如果一個Connection對象不能被標(biāo)識,在將它與一個連接關(guān)聯(lián)之前,Command對象是無效的。若要添加一個Command對象,請執(zhí)行下列操作之一:在數(shù)據(jù)環(huán)境設(shè)計器工具欄中單擊“添加命令”按鈕。鼠標(biāo)右鍵單擊一個Connection對象或您的數(shù)據(jù)環(huán)境設(shè)計器,并從快捷方式選單中選擇“添加命令”。添加一個Command對象之后,數(shù)據(jù)環(huán)境的“概要型”視圖就顯示新的Command對象,該對象的默認(rèn)名稱為“Command”和加在后面的一個數(shù)字,例如Command1。若要指定Command對象的屬性,請執(zhí)行以下操作。步驟右擊Command對象,然后從快捷選單中選擇“屬性”命令,以訪問“Command屬性”對話框。選擇“通用”選項卡,然后進行如下設(shè)置:命令名稱:將數(shù)據(jù)庫對象的默認(rèn)“命令名稱”改為一個更有意義的名字。例如,如果Command對象是基于一個叫做Customers的數(shù)據(jù)庫表,可能想將Command1改為Customers。連接:如果Command對象是從一個Connection對象的快捷方式選單中創(chuàng)建的,Connection名稱被自動地設(shè)置。但也可以更改這個Connection。數(shù)據(jù)庫對象:從下拉列表中選擇一個對象的名字。列出的對象來自連接,并且與選擇的“數(shù)據(jù)庫對象”類型匹配。SQL語句:如果選擇該項作為數(shù)據(jù)源,在“SQL語句”框中輸入一個對您數(shù)據(jù)庫有效的SQL查詢。若要建立此查詢,可以單擊“SQL生成器”按鈕,以啟動查詢設(shè)計器如果Command對象是基于一個參數(shù)化的查詢或一個存儲過程,它可能有一個參數(shù)集合。若要設(shè)置參數(shù)屬性,請在“Command屬性”對話框中選擇“參數(shù)”選項卡。(4)使用“關(guān)聯(lián)”、“分組”和“合計”選項卡定義關(guān)系,并組織Recordset中包含的數(shù)據(jù)。(5)在“Command屬性”對話框中選擇“高級”選項卡,在該選項卡中設(shè)置高級屬性,使數(shù)據(jù)環(huán)境可以對Command對象屬性和它產(chǎn)生的Recordset對象進行控制。(6)單擊“確定”按鈕,將此屬性應(yīng)用于新的Command對象,并關(guān)閉對話框。12.3使用ASP開發(fā)

SQLServer應(yīng)用程序ASP(ActiveServerPages)是一種服務(wù)器端腳本編寫環(huán)境,可以用來創(chuàng)建和運行動態(tài)網(wǎng)頁或Web應(yīng)用程序。ASP頁可以包含HTML標(biāo)記、普通文本、腳本命令以及COM組件等。為了擴展ASP應(yīng)用程序的功能,必須通過數(shù)據(jù)庫訪問組件實現(xiàn)對數(shù)據(jù)庫的訪問。數(shù)據(jù)庫訪問組件提供ADO對象(ActiveDataObjects)對數(shù)據(jù)庫的訪問。下面主要介紹ADO對象模型中的三個主要對象,即Connection對象、Recordset對象和Command對象,使用這些對象可以在ASP頁面上實現(xiàn)對SQLServer數(shù)據(jù)庫的訪問。12.3.1使用Connection對象

Connection對象代表了打開的、與數(shù)據(jù)源的連接,該對象代表與數(shù)據(jù)源進行的惟一會話。如果是客戶端/服務(wù)器數(shù)據(jù)庫系統(tǒng),該對象等價于到服務(wù)器的實際網(wǎng)絡(luò)連接。使用該對象可以實現(xiàn)與SQLServer數(shù)據(jù)庫的連接,也可以通過SQL語句對所連接的數(shù)據(jù)庫進行各種操作。1.創(chuàng)建數(shù)據(jù)庫連接

如果計劃在ASP應(yīng)用程序中對Web服務(wù)器上的數(shù)據(jù)庫進行訪問,就要建立一個數(shù)據(jù)庫連接。沒有數(shù)據(jù)庫連接,應(yīng)用程序就無法知道在哪里找到數(shù)據(jù)庫,也不知道如何連接到數(shù)據(jù)庫。下面介紹使用Connection對象建立數(shù)據(jù)庫連接時用到的一些屬性和方法。在使用Connection對象之前,應(yīng)使用Server.CreateObject方法創(chuàng)建該對象的實例,語法格式如下:<%DimcnnSetcnn=Server.CreateObject(“ADODB.Connection”)%>2.使用Connection對象執(zhí)行SQL查詢Connection對象主要用于打開與指定數(shù)據(jù)庫的連接。也可以使用該對象的execute方法還能夠執(zhí)行指定的查詢、SQL語句、存儲過程或特定提供程序的文本等內(nèi)容。Execute方法的語法格式有下列兩種形式。對于不按行返回的命令字符串:connection.executecommandtext,recordsaffected,options對于按行返回的命令字符串:setrec

溫馨提示

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

評論

0/150

提交評論