




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、216/32VB數據庫編程941 ODBC概述在傳統的數據庫治理系統中,每個數據庫治理系統都有自己的應用程序開發接口(API),應用程序使用數據庫系統所提供的專用開發工具(如嵌入式SQL語言)進行開發,如此的應用程序只能運行在特定的數據庫系統環境下,適應性和可移植性比較差。在用戶硬件平臺或操作系統發生變化時,應用程序需要重新編寫。嵌入式SQL語言的另一個缺點是它只能存取某種特定的數據庫系統,因此一個應用程序只能連接同類的DBMS,而無法同時訪問多個不同的DBMS,而在實際應用中通常是需要同時訪問多個不同的DBMS的。例如,在一個單位中,財務、生產和技術等部門常依照自身專業的特點選擇不同的DBM
2、S,而建立企業級治理信息系統時,需要同時訪問各個部門的數據庫。這種情況下傳統的數據庫應用程序開發方法就難以實現。為了解決這些問題,微軟公司開發了ODBC(Open DataBase Connectivity,即開放數據庫互連)。ODBC 是Microsoft公司開發的一套開放數據庫系統應用程序接口規范,目前它已成為一種工業標準,它提供了統一的數據庫應用編程接口(API),為應用程序提供了一套高層調用接口規范和基于動態連接庫的運行支持環境。使用ODBC開發數據庫應用時,應用程序調用的是標準的ODBC函數和SQL語句,數據庫底層操作由各個數據庫的驅動程序完成。因此應用程序有專門好的適應性和可移植性
3、,同時具備了同時訪問多種數據庫治理系統的能力,從而完全克服了傳統數據庫應用程序的缺陷。942 ODBC體系結構ODBC驅動程序類似于Windows下的打印驅動程序,對用戶來講,驅動程序屏蔽了不同對象(數據庫系統或打印機)間的差異。同樣地,ODBC屏蔽了DBMS之間的差異。ODBC的體系結構如圖9.12所示。1ODBC數據庫應用程序應用程序的要緊任務包括:建立與數據源的連接;向數據源發送SQL請求;接收并處理請求的結果;斷開與數據源的連接等。圖9.12 ODBC的體系結構2驅動程序治理器驅動程序治理器是一個Windows下的應用程序,在Windows 95和Windows NT環境下的操縱面板上
4、分不顯示為“32位ODBC”圖標和“ODBC”圖標。假如在Windows 95和Windows NT環境下沒有那個圖標,講明沒有安裝ODBC驅動程序治理器。此軟件可從Windows 95操作系統、Microsoft VC+、Microsoft VB等軟件中獲得。此治理器的要緊作用是用來裝載ODBC驅動程序、治理數據源、檢查ODBC參數的合法性等。3DBMS驅動程序 ODBC應用程序不能直接存取數據庫,它將所要執行的操作提交給數據庫驅動程序,通過驅動程序實現對數據源的各種操作,數據庫操作結果也通過驅動程序返回給應用程序。4數據源數據源是指任一種能夠通過ODBC連接的數據庫治理系統,它包括要訪問的
5、數據庫和數據庫的運行平臺。數據源名掩蓋了數據庫服務器或數據庫文件間的差不,通過定義多個數據源,每個數據源指向一個服務器名,就可在應用程序中實現同時訪問多個DBMS的目的。數據源(Data Source Name,簡稱DSN)是驅動程序與DBS連接的橋梁,數據源不是DBS,而是用于表達一個ODBC驅動程序和DBMS專門連接的命名。在連接中,用數據源名來代表用戶名、服務器名、所連接的數據庫名等,能夠將數據源名看成是與一個具體數據庫建立的連接。數據源分為以下三類: (1)用戶數據源:用戶創建的數據源,稱為“用戶數據源”。現在只有創建者才能使用,同時只能在所定義的機器上運行。任何用戶都不能使用其他用戶
6、創建的用戶數據源。 (2)系統數據源:所有用戶和在Windows NT下以服務方式運行的應用程序均可使用系統數據源。(3)文件數據源:文件數據源是ODBC 3.0以上版本增加的一種數據源,可用于企業用戶,ODBC驅動程序也安裝在用戶的計算機上。總之,ODBC提供了在不同數據庫環境中為CS結構的客戶機訪問異構數據庫的接口,也確實是在由異構數據庫服務器構成的客戶機服務器結構中,要實現對不同數據庫進行的數據訪問,就需要一個能連接不同的客戶機平臺到不同服務器的橋梁,ODBC確實是起這種連接作用的橋梁。ODBC提供了一個開放的、標準的能訪問從PC機、小型機到大型機數據庫數據的接口。使用ODBC標準接口的
7、應用程序,開發者能夠不必深入了解要訪問的數據庫系統,比如其支持的操作和數據類型等信息,而只需掌握通用的ODBC API編程方法即可。使用ODBC的另一個好處是當作為數據庫源的數據庫服務器上的數據庫治理系統升級或轉換到不同的數據庫治理系統時,客戶機端應用程序不需作任何改變,因此利用ODBC開發的數據庫應用程序具有專門好的移植性。 95 ADO數據控件951 ADO對象模型 ADO(ActiveX Data Object)數據訪問接口是Microsoft處理數據庫信息的最新技術。它是一種ActiveX對象,采納了被稱為OLE DB的數據訪問模式,是數據訪問對象DAO、遠程數據對象RDO和開放數據庫
8、互連ODBC三種方式的擴展。ADO對象模型定義了個可編程的分層對象集合,要緊由三個對象成員Connection、Command和Recordset對象,以及幾個集合對象Errors、Parameters和Fields等所組成。圖9.13示意了這些對象之間的關系。表9.6是對這些對象的分工描述。Connection對象Connection對象Error對象Error集合Error對象Error集合Command對象Command對象Parameter對象Parameter集合Parameter對象Parameter集合Recordset對象Recordset對象Field對象Field集合Fie
9、ld對象Field集合圖9.13 ADO對象模型表9.6 ADO對象描述對象名描 述Connection連接數據來源Command從數據源獵取所需數據的命令信息Recordset所獲得的一組記錄組成的記錄集Error在訪問數據時,由數據源所返回的錯誤信息Parameter與命令對象有關的參數Field包含了記錄集中某個字段的信息 要想在程序中使用ADO對象,必須先為當前工程引用ADO的對象庫。引用方式是執行“工程”菜單的“引用”命令,啟動引用對話框,在清單中選取“Microsoft ActiveX Data Objects 2.0 Library”選項。952 使用ADO數據控件 在使用ADO
10、數據控件前,必須先通過“工程|部件”菜單命令選擇Microsoft ADO Data Control 6.0(OLEDB)”選項,將ADO數據控件添加到工具箱。ADO數據控件與Visual Basic的內部Data控件專門相似,它同意使用ADO數據控件的差不多屬性快速地創建與數據庫的連接。1ADO數據控件的差不多屬性 (1)ConnectionString屬性 ADO控件沒有DatabaseName屬性,它使用ConnectionString屬性與數據庫建立連接。該屬性包含了用于與數據源建立連接的相關信息,ConnectionString屬性帶有4個參數,如表9.7所示。(2)RecordSo
11、urce屬性 RecordSource確定具體可訪問的數據,這些數據構成記錄集對象Recordset。該屬性值能夠是數據庫中的單個表名,一個存儲查詢,也能夠是使用SQL查詢語言的一個查詢字符串。表9.7 ConnectionString屬性參數參數描述Provide指定數據源的名稱FileName指定數據源所對應的文件名RemoteProvide在遠程數據服務器打開一個客戶端時所用的數據源名稱RemoteServer在遠程數據服務器打開一個主機端時所用的數據源名稱 (3)ConnectionTimeout屬性用于數據連接的超時設置,若在指定時刻內連接不成功顯示超時信息。(4)MaxRecord
12、s屬性定義從一個查詢中最多能返回的記錄數。2. ADO數據控件的方法和事件ADO數據控件的方法和事件與Data控件的方法和事件完全一樣。3設置ADO數據控件的屬性 下面通過使用ADO數據控件連接Student.mdb數據庫來講明ADO數據控件屬性的設置。 步驟1:在窗體上放置ADO數據控件,控件名采納默認名“Adodcl”。 步驟2:單擊ADO控件屬性窗口中的ConnectionString屬性右邊的“”按鈕,彈出“屬性頁”對話框。在該對話框中同意通過三種不同的方式連接數據源: “使用連接字符串”只需要單擊“生成”按鈕,通過選項設置自動產生連接字符串。 “使用Data Link文件”表示通過個
13、連接文件來完成。“使用ODBC數據資源名稱”能夠通過下拉式列表框,選擇某個創建好的數據源名稱(DSN),作為數據來源對遠程數據庫進行操縱。步驟3:采納“使用連接字符串”方式連接數據源。單擊“生成”按鈕,打開“數據鏈接屬性”對話框。在“提供者”選項卡內選擇一個合適的OLE DB數據源,Student.mdb是Access數據庫,選擇“Microsoft Jet 3.51 OLE DB Provider”選項。然后單擊“下步”按鈕或打開“連接”選項卡,在對話框內指定數據庫文件,那個地點為Student.mdb。為保證連接有效,可單擊“連接”選項卡右下方的“測試連接”按鈕,假如測試成功則關閉Conn
14、ectionString屬性頁。 步驟4:單擊ADO控件屬性窗口中的RecordSource屬性右邊的“”按鈕,彈出記錄源屬性頁對話框。 在“命令類型”下拉式列表框中選擇“2adCmdTable”選項,在“表或存儲過程名稱”下拉式列表框中選擇Student.mdb數據庫中的“差不多情況”表,關閉記錄源屬性頁。現在,已完成了ADO數據控件的連接工作。由于ADO數據控件是一個ActiveX控件,也能夠用鼠標右鍵單擊ADO數據控件,在彈出的快捷菜單中選擇“ADODC屬性”菜單命令,打開ADO數據控件屬性頁對話框,一次完成步驟1步驟4的全部設置。953 ADO數據控件上新增綁定控件的使用 隨著ADO對
15、象模型的引入,Visual Basic 6.0除了保留以往的一些綁定控件外,又提供了一些新的成員來連接不同數據類型的數據。這些新成員要緊有DataGrid、DataCombo、DataList、DataReport、MSHFlexGrid、MSChart控件和MonthView等控件。這些新增綁定控件必須使用ADO數據控件進行綁定。 Visual Basic 6.0在綁定控件上不僅對DataSource和DataField屬性在連接功能上作了改進,又增加了DataMember與DataFormat屬性使數據訪問的隊列更加完整。DataMember屬性同意處理多個數據集,DataFormat屬性
16、用于指定數據內容的顯示格式。 例9.6 使用ADO數據控件和DataGrid數據網格控件掃瞄數據庫Student.mdb,并使之具有編輯功能。 在窗體上放置ADO數據控件,并按前面介紹的ADO數據控件屬性設置過程連接數據庫Student.mdb中的差不多情況表。 DataGrid控件同意用戶同時掃瞄或修改多個記錄的數據。在使用DataGrid控件前也必須先通過“工程|部件”菜單命令選擇“Microsoft DataGrid Control 6.0(OLEDB)”選項,將DataGrid控件添加到工具箱,再將DataGrid控件放置到窗體上。設置DataGrid網格控件的DataSource屬性
17、為Adodc1,就可將DataGrid1綁定到數據控件Adodc1上。 顯示在DataGrid網格內的記錄集,能夠通過DataGrid控件的AllowAddNew、AllowDelete和AllowUpdate屬性設置操縱增,刪、改操作。 假如要改變DataGrid網格上顯示的字段,可用鼠標右鍵單擊DataGrid控件,在彈出的快捷菜單中選擇“檢索字段”選項。Visual Basic提示是否替換現有的網格布局,單擊“是”按鈕就可將表中的字段裝載到DataGrid控件中。再次用鼠標右鍵單擊DataGrid控件,在彈出的快捷菜單中選擇“編輯”選項,進入數據網格字段布局的編輯狀態,現在,當鼠標指在字
18、段名上時,鼠標指針變成黑色向下箭頭。用鼠標右鍵單擊需要修改的字段名,在彈出的快捷菜單中選擇“刪除”選項,就可從DataGrid控件中刪除該字段,也可選擇“屬性”選項修改字段的顯示寬度或字段標題。圖9.14所示為具有增、刪、改功能的數據網格綁定。標有號的記錄行表示同意增加新記錄。圖9.14 具有增、刪、改功能的數據網格綁定954 使用數據窗體向導Visual Basic 6.0提供了一個功能強大的數據窗體向導,通過幾個交互過程,便能創建前面介紹的ADO數據控件和綁定控件,構成個訪問數據的窗口。數據窗體向導屬于外接程序,在使用前必須從Visual Basic 6.0集成開發環境的橫向菜單中點擊“外
19、接程序”,再點擊子菜單的“外接程序治理器”,從打開的“外接程序治理器”窗口選擇 “VB 6數據窗體向導” 命令,將數據窗體裝入到“外接程序”中。那個地點以Student.mdb數據庫的差不多情況表作為數據源來講明數據訪問窗口建立的過程。 例9.7 使用數據窗體向導建立Student.mdb數據庫的數據訪問對話框。 步驟1:執行“外接程序”菜單中的“數據窗體向導”命令,進入“數據窗體向導-介紹”對話框,能夠利用先前建立的數據窗體信息配置文件創建外觀相似的數據訪問窗體,選擇“無”將不使用現有的配置文件。 步驟2:單擊“下步”按鈕,進入“數據窗體向導-數據庫類型”對話框,能夠選擇任何版本的Acces
20、s數據庫或任何ODBC兼容的用于遠程訪問的數據庫。本例中選擇Access數據庫。 步驟3:在“數據窗體向導數據庫”對話框內選擇具體的數據庫文件。本例為Student.mdb數據庫。步驟4:在“數據窗體向導Form”對話框內設置應用窗體的工作特性。其中,在“窗體名稱為”文本框輸入將要創建的窗體名;“窗體布局”指定窗口內顯示數據的類型,能夠按單條記錄形式顯示,也能夠按數據網格形式同時顯示多條記錄;綁定類型用于選擇連接數據來源的方式,能夠使用ADODC數據控件訪問數據,也能夠使用ADO對象程序代碼訪問數據。本例窗體名為frmjbqk,選“單個記錄”形式,使用“ADO數據控件”訪問數據。步驟5:在“數
21、據窗體向導-記錄源”對話框內選擇所需要的數據。 其中,“記錄源”下拉式列表框用于選擇數據庫中的表單,本例選擇“差不多情況”表;窗口中間的4個箭頭按鈕用于選定字段,“列排序按”下拉式列表框用于選擇排序依據。步驟6:在“數據窗體向導-控件選擇”對話框內,選擇所創建的數據訪問窗體需要提供哪些操作按鈕。步驟7:進入“數據窗體向導已完成”對話框,能夠將整個操作過程保存到一個向導配置文件.rwp中。單擊“完成”按鈕結束數據窗體向導的交互,現在向導將自動產生數據訪問對話框的畫面及代碼。能夠對產生的窗體布局形式進行調整或在此基礎上加上其他控件對象。圖9.15為調整照片位置的數據訪問對話框運行結果。各按鈕的程序
22、代碼不難理解,請讀者自己閱讀。圖9.15 數據窗體向導創建的數據訪問對話框圖9.16為窗體布局(步驟4)選定網格(數據表)形式的數據訪問窗口運行結果。圖9.17所示為窗體布局選定主表細表形式,以差不多情況表作為主表,學生成績表為細表所建立的數據訪問窗口。圖9.18為窗體布局(步驟4)選定MSHFlexGrid數據網格形式的數據訪問窗口運行結果。圖9.16 選定網格(數據表)形式 圖9.18 選定MSHFlexGrid數據網格圖9.17 選定主表細表形式96 VB中SQL的實現SQL中使用SELECT語句實現查詢,SELECT語句差不多上是數據庫記錄集的定義語句。Data控件的RecordSou
23、rce屬性不定是數據表名,能夠是數據表中的某些行或多個數據表中的數據組合。能夠直接在Data控件的RecordSource屬性欄中輸入SQL,也可在代碼中通過SQL語句將選擇的記錄集賦給數據控件的RecordSource屬性,也可給予對象變量。例9.8 將例9.5中的查找功能改用SQL語句處理,顯示某專業的學生記錄。使用SQL語句查詢只要將例9.5中命令按鈕Command5_Click事件寫為如下代碼:Private Sub Command5_Click() Dim mzy As String mzy = InputBox$(請輸入專業, 查找窗) Data1.RecordSource = S
24、elect * From 差不多情況 Where 專業 = & mzy & Data1.Refresh If Data1.Recordset.EOF Then MsgBox 無此專業!, , 提示 Data1.RecordSource = 差不多情況 Data1.Refresh End IfEnd Sub 程序中“Select *”選擇表中所有字段(也能夠指定選擇部分列);“From差不多情況”短語指定數據來源;“Where 專業 = & mzy & ”短語構成查詢條件,用于過濾表中的記錄;Data1.Refresh方法激活這些變化。現在,若Data1.Recordset.EOF為True,表
25、示記錄過濾后許多據,重新打開原來的差不多情況表。注意:代碼中的兩處Refresh語句不能合用為一句,這是因為在執行了Select命令后,必須激活這些變化,然后才能推斷記錄集內有許多據。也可用SQL語句實現模糊查詢,命令按鈕Command5_Click事件改為如下代碼:Private Sub Command5_Click() Dim mzy As String mzy = InputBox$(請輸入專業, 查找窗) Data1.RecordSource = Select * From 差不多情況 Where 專業 like * & mzy & * Data1.Refresh If Data1.R
26、ecordset.EOF Then MsgBox 無此專業!, , 提示 Data1.RecordSource = 差不多情況 Data1.Refresh End IfEnd Sub 例9.9 用SQL語句從Student.mdb數據庫的兩個數據表中選擇數據構成記錄集,并通過數據控件掃瞄記錄集。在窗體上放置與例9.2類似的控件,如圖9.20所示。Data控件的DatabaseName屬性指定數據庫Student.mdb,RecordSource屬性空缺,各文本框的DataSource=Data1,DataField屬性分不設置為學號、姓名、課程、成績,而照片字段綁定圖形框。本例要求從差不多情況
27、中選擇學生的學號、姓名、照片,從學生成績表中選擇該學生的課程和成績來構成記錄集,可在Form_ Load事件中使用SQL語句,通過“Where 學生成績表.學號=差不多情況.學號”短語實現兩表之間的連接,用Select命令從學生成績表中選擇課程、成績字段,從差不多情況表中選擇學號、姓名和照片字段構成記錄集:Private Sub Form_Load() Data1.RecordSource = Select 差不多情況.學號,差不多情況.姓名,差不多情況.照片,學生成績表.課程,學生成績表.成績 From 學生成績表,差不多情況 Where 學生成績表.學號=差不多情況.學號End Sub 當
28、窗體啟動后,數據顯示如圖 9.19所示,數據控件上的箭頭按鈕可改變記錄位置。假如要求顯示的記錄按一定的順序排列,可使用ORDER BY子句。圖 9.19 數據顯示注意:當FROM子句列出多個表時,它們出現的順序并不重要。Select短語中字段的排列決定了所產生的記錄集內每一列數據的排列順序。為了提高可讀性能夠重新排序表中的字段。例9.10 用SQL指令按專業統計Student.mdb數據庫中各專業的人數,要求按圖9.20所示形式輸出。在窗體上放置一個Data控件和一個網格控件MSFlexGrid1。Data1的DatabaseName屬性指定數據庫Student.mdb,網格控件的DataSo
29、urce=Data1。圖9.20 通過數據控件掃瞄記錄集 為了統計各專業的人數,需要對差不多情況表內的記錄按專業分組。“Group By專業”可將同一專業的記錄合并成一條新記錄。要記錄統計結果,需要構造一個輸出字段,現在可使用SQL的統計函數Count()作為輸出字段,它按專業分組創建摘要值。若希望按用戶要求的標題顯示統計摘要值,可用As短語命名一個不名。“按專業統計人數”按鈕的指令代碼為:Private Sub Command1_Click() Data1.RecordSource = select 專業,count(*) as 人數 from 差不多情況 group by 專業 Data1
30、.RefreshEnd Sub 運行結果如圖9.21。圖9.21 使用SQL的統計函數 有時,我們只要返回一定數量的記錄,如獵取平均成績最好的前5名,則“按平均成績統計前5名” 按鈕的指令代碼為:Private Sub Command2_Click() Data1.RecordSource = select top 5 學號,avg(成績) as 平均成績 from 學生成績表 group by 學號 order by avg(成績) desc Data1.RefreshEnd Sub那個地點,“Group by 學號”短語將同一學生的各門課程的記錄合并成一條記錄,由Avg(成績)計算出該學生
31、的平均成績,“Order By Avg(成績) Desc”短語按平均成績的降序排列數據,“Top 5”短語返回最前面的5條記錄。假如不包括ORDER BY子句,查詢將從學生成績表中返回隨機的5條記錄。“恢復原表內容”按鈕的指令代碼為:Private Sub Command3_Click()Data1.RecordSource = 差不多情況Data1.RefreshEnd Sub以上介紹的是在Data控件上使用SQL,假如要在ADO數據控件上使用SQL語句,最好通過代碼配合ADO數據控件完成數據庫的連接,這可給程序帶來更大的靈活性。例9.11 我們將例9.9中的Data控件改用ADO數據控件,
32、用SQL語句從Student.mdb數據庫的兩個數據表中選擇數據構成記錄集。 將Data控件改用ADO數據控件Adodc1,各文本框的Datasource=Adodc1,DataField屬性分不設置為學號、姓名、課程、成績,而字段照片綁定圖形框。ADO數據控件的ConnectionString屬性設置為與數據源連接的相關信息,通過操作完成與student.mdb的數據連接(現在,可查看到ConnectionString屬性的內容);DataSource指定連接的數據庫文件名,如圖9.22。圖9.22 使用ADO數據控件即DataSource屬性使用SQL語句:select 學生成績表.*,差
33、不多情況.姓名,差不多情況.照片 from 學生成績表,差不多情況 where 學生成績表.學號=差不多情況.學號程序執行后將產生與圖9.22所示相同的效果。例9.12 設計一個窗體,計算Student.mdb數據庫內學生成績表中每個學生的平均成績,產生姓名、平均成績和最低成績三項數據,按平均成績降序排列數據,并用該數據作圖。 學生成績表中沒有平均成績和最低成績這兩項數據,能夠在SELECT子句內使用統計函數AVG()和Min()產生,“Group By學號”可將同一學生的記錄合并成一條新記錄。學生成績表中沒有姓名字段,故需要通過條件“差不多情況.學號=學生成績表.學號”從差不多情況表取得。然
34、后,將產生的記錄集連接到ADO數據控件上。 要顯示作圖數據,可在窗體上放置一個網格控件(選擇工程部件中Microsoft Data Grid Control 6.0 (OLEDB)),設置網格的DataSource=Adodcl,將其綁定到ADO數據控件上。此例將Adodc1控件的Visible屬性設為False,故在圖9.22中看不到Adodc1控件。 要繪制圖表,可使用綁定控件MsChart。MsChart控件也是一個Active X控件,需要通過“工程部件”菜單命令,將MsChart控件添加到工具箱中。要將作圖數據傳送到Mschart控件,只需要設置MsChart1.DataSource
35、=Adodc1。假如只要選擇部分數據作圖,能夠將作圖數據存入到數組,再設置MsChart1.Data=數組名即可。 將Adodcl的RecordSource屬性設置為SQL語句,代碼如下:”select 差不多情況.姓名,avg(成績) as 平均成績,min(成績) as 最低成績 from 學生成績表,差不多情況 where 學生成績表.學號=差不多情況.學號 group by 學生成績表.學號,差不多情況.姓名 order by avg(成績) desc”程序執行后將產生圖9.23所示的效果。圖9.23 顯示作圖數據97 VB中使用ODBC在VB環境開發數據庫應用時,與數據庫連接和對數據
36、庫的數據操作是通過ODBC、Microsoft Jet(數據庫引擎)等實現的。Microsoft Jet要緊用于本地數據庫,而在CS結構的應用中一般用ODBC。例9.13 使用ADO數據控件,設計一個簡單窗體,用來掃描student.mdb數據庫的差不多情況表。窗體中幾個約束數據文本框綁定到連接表中當前記錄的ADO數據控件。那個項目不需編程,步驟如下:步驟1:開始新項目,并在項目工具箱中加進ADO數據控件。 步驟2:在窗體上放一個ADO數據控件的實例。 步驟3:右鍵單擊控件,并從彈出菜單中選擇“ADODC屬性”命令(或單擊Adodc1的ConnectionString屬性旁的“”按鈕),打開A
37、DO數據控件的屬性頁。 步驟4:選擇“通用”標簽,并選擇“使用ODBC數據資源名稱”單選項。 步驟5:現在要指定數據源(ADO數據控件聯系的數據庫)。能夠看出,能夠指定多種數據庫,但應用程序用相同的方法處理。不管實際提供表格的數據庫為何種形式,它用相同的語句訪問表格及其記錄。 數據源名確實是系統明白的數據庫名。數據源名只要生成一次,此后任何應用程序都能夠使用。假如系統上沒有數據源名,則按下列步驟生成新的數據源名: 1.單擊“新建”按鈕,打開“創建新數據源”窗口。在那個窗口中能夠選擇數據源類型,選項包括: 文件數據源 所有用戶均能夠訪問的數據庫文件。 用戶數據源 只有你能訪問的數據庫文件。 系統
38、數據源 能登錄該機器的任何用戶都能訪問的數據庫文件。 2選擇“系統數據源”,以便從網上登錄測試鎖定機制(假如在網絡環境中)。 3單擊“下一步”按鈕顯示“創建新數據源”窗口,指定訪問數據庫所用的驅動程序。 驅動程序必須符合數據庫。能夠看出,數據源能夠是個大數據庫,包括Access、Oracle、 SQL Server。本例采納Access數據庫。 4選擇Microsoft Access Driver,并單擊“下一步”按鈕。 新窗口指出,已選擇了系統數據源并用Access驅動程序訪問。 5單擊“完成”按鈕,生成數據源。 這時就能夠指定將哪個Access數據庫給予新建的數據源。在出現的“ODBC M
39、icrosoft Access 安裝”窗口中,執行如下操作步驟: 6在第一個框中,指定數據源名mystudent,在“描述”框中,輸入簡短講明:student數據源(講明能夠空缺)。 7單擊“選擇”按鈕,并通過“選定數據庫”窗口選擇數據庫,找到VB98文件夾中的student.mdb(假設student.mdb存放在此)。 8回到ADO數據控件的屬性頁時,新的數據源即會出現在“使用ODBC數據資源名稱”下拉清單中。步驟6:展開下拉清單,并選擇mystudent數據源。實際上,這就指定了要使用的數據庫(類似于設計Data控件的DatabaseName屬性)。下一個任務是,選擇ADO數據控件能看到
40、的數據庫記錄(表格或SQL語句返回的記錄集)。 步驟7:切換到“記錄源”標簽(或單擊Adodc1的RecordSource屬性旁的“”按鈕)。 步驟8:在“命令類型” 下拉清單中,選擇adCmdTable項目,這是記錄源的類型。 步驟9:在“表或存儲過程名稱”下拉的清單中出現數據庫中的所有表名。選擇差不多情況表。 Adodc1控件的RecordSource屬性欄中出現student.mdb數據庫的差不多情況表。步驟10:將四個文本框控件和四個標題控件放在窗體上。將它們的DataSource=Adodc1,DataField分不設置為學號、姓名、專業、出生年月。 Mystudent數據源差不多注
41、冊到系統上,不必再次生成。它會自動出現在ADO數據控件屬性頁的“使用ODBC數據資源名稱”下拉清單中。 運行結果如圖9.24。圖9.24 使用ADO數據控件及ODBC例9.14 ADO數據控件使用自己的高級約束數據控件,即DataList和DataCombo控件。本例要求在DataList控件中顯示學號,要將DataList控件與ADO數據控件連接,使用戶每次選擇清單中的新學號,窗體上的文本框中出現相應的字段。要使用DataList和DataCombo控件,首先要將其加進工具箱。步驟如下: 1選擇“工程|部件”菜單,打開“部件”對話框,選取“Microsoft DataList Control
42、s 6.0(OLEDB)”復選項。 2將DataList控件的實例放在窗體上。 3要用差不多情況表中的學號建立DataList控件,設置屬性RowSource= Adodc1,ListField=學號。 假如這時運行應用程序,則會自動生成DataList控件,但清單中所選的學號對約束數據控件沒有阻礙。我們要加入一些代碼,在清單中每次選擇另一學號時,移動ADO數據控件,具體方法如下:Private Sub DataList1_Click() Adodc1.Recordset.Bookmark = DataList1.SelectedItemEnd Sub 每次單擊清單中的新項目時,那個項目就成為
43、ADO數據控件的書簽。 大多數情況下,用于自動建立DataList控件的數據通常沒有排序。假如DataList控件中學號沒有排序,就無法方便地找到清單中的項目。要使DataList控件中學號排序,按如下步驟修改ADO數據控件的RecordSource屬性: 1.設計圖9.25所示的窗體。 2.右鍵單擊Adodc1控件,并在屬性頁中將“ODBC 數據源名”設置為mystudent。 3切換到“記錄源” 標簽,指定SQL 語 圖9.25 Adodc1控件句而不是表格:將“命令類型”設置為 adCmdUnknown,并在“命令文本”框中輸人下列SQL語句: select * from 差不多情況 o
44、rder by 學號 例9.15 用外接程序的數據窗體向導創建主細表(數據庫student.mdb中的主表是差不多情況表,細表是學生成績表)。步驟1:選擇 “外接程序”的“數據窗體向導”菜單(如菜單中無此選項,可通過“外接程序”的“外接程序治理器”加載“VB 6 數據窗體向導”),出現“數據窗體向導介紹”窗口,選擇“無”,單擊下一步;步驟2: 在“數據窗體向導數據庫類型”窗口“選擇Remote(ODBC)”,單擊下一步;步驟3: 在“數據窗體向導連接信息”窗口,在DSN(數據源名)欄選擇已定義的數據源mystudent,單擊下一步;步驟4: 在“數據窗體向導Form”窗口,在“窗體名稱為”文本框中輸入窗體名稱,本例輸入frm_jbqk;窗體布局選擇“主表/細表”,單擊下一步;步驟5: 在“數據窗體向導主表記錄源”窗口選擇主表及其字段,本例在“記錄源” 文本框選擇主表為“差不多情況”,在“可用字段”中選擇字段學號
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路旅客運輸服務普速列車設施設備課件
- 隧道襯砌裂損及其防治高速鐵路隧道工程習淑娟石家莊鐵路課
- 鐵路班組管理企業文化的含義和要素課件
- 鐵路工程安全技術石家莊鐵路32課件
- 中國書法結體概述課件
- 中華傳統文化課程課件
- 大學生職業規劃大賽《城鄉規劃專業》生涯發展展示
- 餐飲項目合作經營合同書
- 江蘇省淮安市四校2025年下學期高三語文試題第三次統一練習試題含解析
- 沈陽工業大學《筆譯實訓2》2023-2024學年第二學期期末試卷
- 幼兒園孩子食物中毒培訓
- 影響健康因素多 課件 2024-2025學年人教版(2024)初中體育與健康七年級全一冊
- 【核心素養目標】9.1壓強 教學設計 2023-2024學年教科版八年級下冊物理
- 宗親聯誼修譜會活動方案及流程
- 2025屆江蘇省南京市六區初三第二學期期中考試英語試題試卷含答案
- 加裝電梯投標方案(技術方案)
- 影視后期調色-04達芬奇一級校色
- 2024版工程建設監理合同(電力工程)
- 《住宅室內防水工程技術規范JGJ298-2013》
- 石油化工設備維護檢修規程設備完好標準SHS
- 知道智慧網課《科技倫理》章節測試答案
評論
0/150
提交評論