《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)》PPT課件.ppt
《《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫(kù)應(yīng)用技術(shù)》PPT課件.ppt(60頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1 第10章數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ) 10 1數(shù)據(jù)庫(kù)概述10 2VB數(shù)據(jù)庫(kù)訪問10 3記錄集對(duì)象10 4綜合應(yīng)用 10 1數(shù)據(jù)庫(kù)概述 1 數(shù)據(jù)庫(kù) 是指一組排列成易于處理或讀取的相關(guān)信息 它是由一個(gè)或多個(gè)表對(duì)象組成的集合 這有些類似于Excel的工作簿和工作表 根據(jù)數(shù)據(jù)模型 即實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)化所采用的聯(lián)系方式 數(shù)據(jù)庫(kù)可以分為層次數(shù)據(jù)庫(kù) 網(wǎng)狀數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù) 10 1 1關(guān)系型數(shù)據(jù)庫(kù)模型 關(guān)系型數(shù)據(jù)庫(kù)模型將數(shù)據(jù)用表的集合來表示 通過建立簡(jiǎn)單表之間的關(guān)系來定義結(jié)構(gòu) 1 記錄 行 每張二維表均由若干行和列構(gòu)成 其中每一行稱為一條記錄2 字段 列 二維表中的每一列稱為一個(gè)字段 每一列均有一個(gè)名字 稱為字段名 各字段名互不相同3 主鍵 關(guān)系數(shù)據(jù)庫(kù)中的某個(gè)字段或某些字段的組合定義為主鍵 每條記錄的主鍵值都是唯一的 這就保證了可以通過主鍵唯一標(biāo)識(shí)一條記錄 10 1 2使用SQL查詢數(shù)據(jù)庫(kù) 結(jié)構(gòu)化查詢語(yǔ)言 StructureQueryLanguage SQL 是操作關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)語(yǔ)言通過SQL命令 可以從數(shù)據(jù)庫(kù)的多個(gè)表中獲取數(shù)據(jù) 也可對(duì)數(shù)據(jù)進(jìn)行更新操作用戶提出一個(gè)查詢 數(shù)據(jù)庫(kù)返回所有與該查詢匹配的記錄 SQL的主要語(yǔ)句 SELECT語(yǔ)句 SELECT語(yǔ)句的基本語(yǔ)法形式SELECT字段表FROM表名WHERE查詢條件GROUPBY分組字段HAVING分組條件ORDERBY字段ASC DESCSELECT目標(biāo)表達(dá)式列表FROM表名WHERE查詢條件GROUPBY分組字段HAVING分組條件ORDERBY排序關(guān)鍵字段ASC DESC它包含4部分 其中SELECT和FROM子句是必須的 通過使用SELECT語(yǔ)句返回一個(gè)記錄集 例在學(xué)生基本情況表中查詢物理系的學(xué)生情況 SELECT FROM基本情況WHERE專業(yè) 物理 SELECT語(yǔ)句 輸出表達(dá)式 目標(biāo)表達(dá)式為查詢結(jié)果要顯示的字段清單 字段間用逗號(hào)分開 數(shù)據(jù)的顯示順序由字段清單的順序決定 可用星號(hào) 代表所有字段 可用AS短語(yǔ)指定字段別名 可通過構(gòu)造表達(dá)式對(duì)原始數(shù)據(jù)進(jìn)行復(fù)雜的運(yùn)算處理 產(chǎn)生查詢結(jié)果 例如 根據(jù)出生年月計(jì)算每個(gè)學(xué)生的年齡SELECT姓名 Year Date Year 出生年月 AS年齡FROM基本情況 SELECT語(yǔ)句 查詢條件 WHERE子句用于限制記錄的選擇例如 查詢1985 01 01到1986 12 31之間出生的學(xué)生 SELECT FROM基本情況WHERE出生年月BETWEEN 1985 01 01 AND 1986 12 31 要枚舉出若干項(xiàng)進(jìn)行查詢 使用運(yùn)算符IN例如 查詢物理系和數(shù)學(xué)系的學(xué)生數(shù)據(jù) SELECT FROM基本情況WHERE專業(yè)IN 物理 數(shù)學(xué) 等價(jià)于 SELECT FROM基本情況WHERE專業(yè) 物理 OR專業(yè) 數(shù)學(xué) 復(fù)合條件 如查詢數(shù)學(xué)和英語(yǔ)成績(jī)均不及格的學(xué)生信息SELECT FROMscoreWHERE數(shù)學(xué) 60AND英語(yǔ) 60 SELECT語(yǔ)句 合計(jì)函數(shù) 合計(jì)函數(shù)用于對(duì)記錄集進(jìn)行統(tǒng)計(jì) 例如 統(tǒng)計(jì)物理系學(xué)生的人數(shù) SELECTCOUNT AS學(xué)生人數(shù)FROM基本情況WHERE專業(yè) 物理 COUNT 在統(tǒng)計(jì)時(shí)包含值為空值的記錄COUNT 表達(dá)式 統(tǒng)計(jì)時(shí)忽略表達(dá)式值為空值的記錄 SELECT語(yǔ)句 分組 GROUPBY子句將指定字段列表中有相同值的記錄合并成一條記錄 例如 計(jì)算每個(gè)學(xué)生各門課程平均分 SELECT學(xué)號(hào) AVG 成績(jī) AS平均分FROM成績(jī)表GROUPBY學(xué)號(hào)要對(duì)分組后的數(shù)據(jù)進(jìn)行過濾 可在GROUPBY子句后結(jié)合HAVING子句在分組中選擇 例如 查詢平均分在80分以上的學(xué)生 SELECT學(xué)號(hào) AVG 成績(jī) AS平均分FROM成績(jī)表GROUPBY學(xué)號(hào)HAVINGAVG 成績(jī) 80 SELECT語(yǔ)句 排序 ORDERBY子句決定了查詢結(jié)果的排列順序在ORDERBY子句中 可以指定一個(gè)或多個(gè)字段作為排序關(guān)鍵字 ASC選項(xiàng)代表升序 DESC代表降序 例如查詢學(xué)生成績(jī)表中的所有數(shù)學(xué)成績(jī)及格的學(xué)生信息 并將查詢結(jié)果按數(shù)學(xué)成績(jī)降序排列SELECT FROMscoreWHERE數(shù)學(xué) 60ORDERBY數(shù)學(xué)DESC SELECT語(yǔ)句圖解 SELECT語(yǔ)句 多表連接 若查詢的數(shù)據(jù)分布在多個(gè)表中 則必須建立連接查詢 SELECT目標(biāo)表達(dá)式列表FROM表1 表2WHERE表1 字段 表2 字段例如 學(xué)生成績(jī)表中只有學(xué)號(hào) 如何在查看學(xué)生成績(jī)的同時(shí)能夠直觀地看到學(xué)生姓名 這就要在兩表之間建立連接 SQL語(yǔ)句如下 SELECT基本情況 姓名 成績(jī)表 FROM基本情況 成績(jī)表WHERE成績(jī)表 學(xué)號(hào) 基本情況 學(xué)號(hào) 10 2VB數(shù)據(jù)庫(kù)訪問 10 2 1ADO數(shù)據(jù)控件使用基礎(chǔ)ADO ActiveXDataObject 數(shù)據(jù)訪問接口數(shù)據(jù)庫(kù)應(yīng)用程序引例例10 1設(shè)計(jì)一個(gè)窗體 用DataGrid控件顯Student mdb數(shù)據(jù)庫(kù)中 基本情況 表的內(nèi)容 ADO數(shù)據(jù)控件使用 VB采用ADO ActiveXDataObjects 數(shù)據(jù)訪問技術(shù) 編寫本程序 需要完成以下工作 在窗體上添加ADO數(shù)據(jù)控件使用ADO連接對(duì)象建立與數(shù)據(jù)提供者之間的連接使用ADO命令對(duì)象操作數(shù)據(jù)源 從數(shù)據(jù)源中產(chǎn)生記錄集并存放在內(nèi)存中建立記錄集與數(shù)據(jù)綁定控件的關(guān)聯(lián) 在窗體上顯示數(shù)據(jù)DataGrid控件是一種類似于電子表格的數(shù)據(jù)綁定ActiveX控件 MicrosoftDataGridControl6 0 需要配合ADO控件一起使用 它用若干行 列來表示Recordset對(duì)象的記錄和字段 數(shù)據(jù)源連接設(shè)置操作 右單擊ADO控件 選擇快捷菜單ADODC屬性命令 打開ADO控件屬性頁(yè)窗 選擇提供程序 選擇提供程序 指定訪問的數(shù)據(jù)庫(kù) 指定要訪問的數(shù)據(jù)庫(kù)文件 連接對(duì)象重要屬性 1 連接對(duì)象最重要的屬性是ConnectionString 它是一個(gè)字符串 包含了用于與數(shù)據(jù)源建立連接的相關(guān)信息典型的ConnectionString屬性值如下 Provider Microsoft Jet 4 0OLEDBProvider DataSource Student mdbProvide 指定連接提供程序的名稱 DataSource 用于指定要連接的數(shù)據(jù)源文件 VB數(shù)據(jù)庫(kù)訪問過程 2 CommandType 指定獲取記錄源的命令類型 3 RecordSource屬性RecordSource確定具體可訪問的數(shù)據(jù)來源 這些數(shù)據(jù)構(gòu)成記錄集對(duì)象Recordset 該屬性值可以是數(shù)據(jù)庫(kù)中的單個(gè)表名 也可以是使用SQL查詢語(yǔ)言的一個(gè)查詢字符串 例 要指定記錄集對(duì)象為Student mdb數(shù)據(jù)庫(kù)中的 基本情況 表 則設(shè)置RecordSource 基本情況 若要用所有物理專業(yè)的學(xué)生數(shù)據(jù)構(gòu)成記錄集對(duì)象 則設(shè)置RecordSource Select From基本情況Where專業(yè) 物理 3 ADO數(shù)據(jù)控件的其他屬性 事件和方法 1 Recordset 記錄集 對(duì)象 記錄集 對(duì)象描述來自數(shù)據(jù)表或命令執(zhí)行結(jié)果的記錄集合 記錄集對(duì)象中的每個(gè)字段值用Recordset Fields 字段名 獲得 2 BOFAction和EOFAction屬性BOF 當(dāng)前記錄位置位于Recordset對(duì)象的第一個(gè)記錄之前EOF 當(dāng)前記錄位置位于Recordset對(duì)象的最后一個(gè)記錄之后 3 Refresh方法 建立或重新顯示與Data控件相連接的數(shù)據(jù)庫(kù)記錄集 當(dāng)在運(yùn)行狀態(tài)改變ADO數(shù)據(jù)控件的數(shù)據(jù)源連接屬性后必須使用Refresh方法激活這些變化例 記錄集由 基本情況 改為 成績(jī)表 Adodc1 RecordSource 成績(jī)表 Adodc1 Refresh 4 WillMove和MoveComplete事件 當(dāng)用某種方法改變記錄集的指針使其從一條記錄移到另一條記錄 產(chǎn)生WillMove事件MoveComplete事件發(fā)生在一條記錄成為當(dāng)前記錄后 它出現(xiàn)在WillMove事件后 數(shù)據(jù)訪問過程 應(yīng)用程序通過連接對(duì)象與數(shù)據(jù)源建立連接 不同類型的數(shù)據(jù)庫(kù)使用各自的連接提供程序 命令對(duì)象發(fā)出SQL命令從數(shù)據(jù)源中獲取數(shù)據(jù)數(shù)據(jù)集對(duì)象用來保存所查詢到的數(shù)據(jù)記錄應(yīng)用程序?qū)τ涗浖M(jìn)行操作記錄集表示內(nèi)存中來自基本表或命令執(zhí)行結(jié)果的集合 也由記錄 行 和字段 列 構(gòu)成 可以把它當(dāng)作一個(gè)數(shù)據(jù)表來進(jìn)行操作 10 2 2數(shù)據(jù)綁定 數(shù)據(jù)綁定是一個(gè)過程 即在運(yùn)行時(shí)自動(dòng)為與記錄集中的元素關(guān)聯(lián)的控件設(shè)置屬性 以便通過控件顯示數(shù)據(jù)集中的數(shù)據(jù) 數(shù)據(jù)綁定 Windows窗體有簡(jiǎn)單數(shù)據(jù)綁定和復(fù)雜數(shù)據(jù)綁定簡(jiǎn)單數(shù)據(jù)綁定簡(jiǎn)單數(shù)據(jù)綁定 將控件綁定到單個(gè)數(shù)據(jù)字段 每個(gè)控件僅顯示數(shù)據(jù)集中的一個(gè)字段值 最常用的簡(jiǎn)單數(shù)據(jù)綁定是將數(shù)據(jù)綁定到文本框和標(biāo)簽在設(shè)計(jì)或運(yùn)行時(shí)設(shè)置控件屬性建立綁定 DataSource 指定ADO數(shù)據(jù)控件DataField 設(shè)置記錄集中有效的字段 簡(jiǎn)單數(shù)據(jù)綁定 例10 2設(shè)計(jì)一個(gè)窗體 用以瀏覽Student mdb數(shù)據(jù)庫(kù)中基本情況表的內(nèi)容界面設(shè)計(jì)ADO數(shù)據(jù)控件3個(gè)文本框2個(gè)組合框5個(gè)標(biāo)簽控件 建立連接和產(chǎn)生記錄集1 選中ADO數(shù)據(jù)控件 單擊右鍵 ADODC屬性 打開屬性頁(yè) 使用連接字符串 選Microsoft Jet 4 0OLEDBProvider2 單擊下一步 選擇數(shù)據(jù)庫(kù)文件 測(cè)試連接3 在屬性頁(yè)中單擊 記錄源 命令類型選2 表名稱選擇 設(shè)置綁定屬性1 將文本框 組合框的DataSource屬性設(shè)置為Adodc12 數(shù)據(jù)顯示格式通過DataFormat屬性改變3 將文本框 組合框的DataField選擇4 若將ADO控件的EofAction屬性設(shè)置為2 則應(yīng)用程序具有添加新記錄的功能 復(fù)雜數(shù)據(jù)綁定 復(fù)雜數(shù)據(jù)綁定允許將多個(gè)數(shù)據(jù)字段綁定到一個(gè)控件 同時(shí)顯示記錄源中的多行或多列 支持復(fù)雜數(shù)據(jù)綁定的常用控件 DataGrid數(shù)據(jù)網(wǎng)格MSHFlexGrid數(shù)據(jù)網(wǎng)格DataList數(shù)據(jù)列表框DataCombo數(shù)據(jù)組合框 復(fù)雜數(shù)據(jù)綁定 例10 3復(fù)雜數(shù)據(jù)綁定的操作過程界面設(shè)計(jì) ADO數(shù)據(jù)控件 DataGrid 2個(gè)命令按鈕建立連接和產(chǎn)生記錄集 Adodc1控件記錄源選 基本情況 或 成績(jī)表 為默認(rèn)值DataGridDataSource屬性設(shè)置為Adodc1數(shù)據(jù)綁定本例DataGrid控件要綁定不同的表 故需要通過代碼設(shè)置控件的DataSource屬性 程序代碼PrivateSubCommand1 Click Adodc1 RecordSource 基本情況 Adodc1 RefreshEndSubPrivateSubCommand2 Click Adodc1 RecordSource 成績(jī)表 Adodc1 RefreshEndSub 例10 4使用SQL語(yǔ)句選擇數(shù)據(jù)表部分?jǐn)?shù)據(jù)構(gòu)成記錄集 在網(wǎng)格上綁定部分字段 需要對(duì)數(shù)據(jù)網(wǎng)格布局進(jìn)行編輯Adodc1控件記錄源 命令類型選8 adCmdUnknown 在命令文本框內(nèi)輸入 Select from基本情況Where性別 男 鼠標(biāo)右擊DataGrid 選檢索字段 點(diǎn)擊是將表中字段裝載到DataGrid控件中 10 3記錄集對(duì)象 10 3 1瀏覽記錄集 1 AbsoloutPostion屬性返回當(dāng)前記錄指針值 從1到Recordset對(duì)象所含記錄數(shù) 第n條記錄的AbsoloutPostion屬性值為n2 BOF和EOF的屬性BOF判定記錄指針是否在首記錄之前EOF判定記錄指針是否在末記錄之后如果BOF和EOF的屬性值都為True 則記錄集為空若當(dāng)前記錄指針值位于BOF AbsoloutPostion屬性返回AdPosBOF 2 若當(dāng)前記錄指針值位于EOF AbsoloutPostion屬性返回AdPosEOF 3 記錄集為空 AbsoloutPostion屬性返回AdPosUnknown 1 3 RecordCount屬性對(duì)Recordset對(duì)象中的記錄計(jì)數(shù) 該屬性為只讀屬性PrivateSubAdodc1 MoveComplete Adodc1 Caption Adodc1 Recordset AbsolutePosition Adodc1 Recordset RecordCountEndSub可以在數(shù)據(jù)控件的標(biāo)題區(qū)顯示當(dāng)前記錄的序號(hào)和記錄總數(shù) 4 Find方法在Recordset對(duì)象中查找與指定條件相符的第一條記錄 并使之成為當(dāng)前記錄 如果找不到 則記錄指針指在記錄集末尾 Recordset Find搜索條件 位移 搜索方向 開始位置例 搜索條件是一個(gè)字符串Adodc1 Recordset Find 學(xué)號(hào) 50102 或者mt 50102 Adodc1 Recordset Find 學(xué)號(hào) mt 若為數(shù)值類型則不加單引號(hào)使用Like運(yùn)算符Adodc1 Recordset Find 學(xué)號(hào)Like 50 5 Move方法組Move方法可代替對(duì)數(shù)據(jù)控件對(duì)象的4個(gè)箭頭按鈕的操作遍歷整個(gè)記錄集 1 MoveFirst方法移至第1條記錄 2 MoveLast方法移至最后一條記錄 3 MoveNext方法移至下一條記錄 4 MovePrevious方法移至上一條記錄 5 Move n 方法向前或向后移n條記錄 記錄集屬性方法小結(jié) 例10 5用命令按鈕代替數(shù)據(jù)控件對(duì)象的4個(gè)箭頭按鈕的功能 使用Find方法查找記錄 例10 2的基礎(chǔ)上 PrivateSubCommand1 Click IndexAsInteger SelectCaseIndexCase0Adodc1 Recordset MoveFirstCase1Adodc1 Recordset MovePreviousIfAdodc1 Recordset BOFThenAdodc1 Recordset MoveFirstCase2Adodc1 Recordset MoveNextIfAdodc1 Recordset EOFThenAdodc1 Recordset MoveLastCase3Adodc1 Recordset MoveLastCase4DimmnoAsStringmno InputBox 請(qǐng)輸入學(xué)號(hào) 查找窗 Adodc1 Recordset Find 學(xué)號(hào)like mno 1IfAdodc1 Recordset EOFThenMsgBox 無此學(xué)號(hào) Adodc1 Recordset AbsolutePosition 提示 EndSelect 10 3 2記錄集的編輯 1 數(shù)據(jù)編輯方法記錄集中數(shù)據(jù)的增 刪 改涉及到4個(gè)方法 AddNew方法 在記錄集中增加入一個(gè)新行Delete方法 刪除記錄集中的當(dāng)前記錄Update方法 確定修改并保存到數(shù)據(jù)源中CancelUpdate方法 取消未調(diào)用Update方法前對(duì)記錄所做的所有修改 增加新記錄 2 增加新記錄 1 調(diào)用AddNew方法增加一條空記錄 2 給新記錄各字段賦值 可以通過綁定控件直接輸入或使用程序代碼給字段賦值 格式為 Recordset Fields 字段名 值 3 調(diào)用Update方法 確定所做的添加 將緩沖區(qū)內(nèi)的數(shù)據(jù)寫入數(shù)據(jù)庫(kù) 刪除記錄 3 刪除記錄 1 定位被刪除的記錄使之成為當(dāng)前記錄 2 調(diào)用Delete方法 3 移動(dòng)記錄指針注意 使用Delete方法當(dāng)前記錄立即刪除 不加任何的警告或者提示 刪除一條記錄后 綁定控件仍舊顯示該記錄的內(nèi)容 因此 必須移動(dòng)記錄指針?biāo)⑿陆壎丶?修改記錄 4 修改記錄當(dāng)改變數(shù)據(jù)項(xiàng)的的內(nèi)容時(shí) ADO自動(dòng)進(jìn)入編輯狀態(tài) 在對(duì)數(shù)據(jù)編輯后 只要改變記錄集的指針或調(diào)用Update方法 即可確定所做的修改 Adodc1 Recordset AddNew增加記錄 數(shù)據(jù)庫(kù) UpData 填入新數(shù)據(jù) 編輯記錄刪除記錄給各字段賦值調(diào)用Delete方法調(diào)用Update方法移動(dòng)記錄指針 數(shù)據(jù)修改小結(jié) 例11 6在例10 5的基礎(chǔ)上加入 新增 刪除 更新 放棄 和 結(jié)束 5個(gè)按鈕 通過對(duì)按鈕的編程建立增 刪 改功能 PrivateSubCommand2 Click IndexAsInteger DimaskAsIntegerSelectCaseIndexCase0Adodc1 Recordset AddNewCase1ask MsgBox 刪除否 vbYesNo Ifask 6ThenAdodc1 Recordset DeleteAdodc1 Recordset MoveNextIfAdodc1 Recordset EOFThenAdodc1 Recordset MoveLastEndIfCase2Adodc1 Recordset UpdateCase3Adodc1 Recordset CancelUpdateCase4EndEndSelectEndSub 10 3 3查詢與統(tǒng)計(jì) 通過SQL語(yǔ)句從數(shù)據(jù)源中獲取信息 查詢條件由Select語(yǔ)句的Where短語(yǔ)構(gòu)成 使用And與Or運(yùn)算符組合出復(fù)雜的查詢條件 模糊查詢使用運(yùn)算符Like 百分號(hào) 代替任意不確定的內(nèi)容 用下劃線 代替一個(gè)不確定的內(nèi)容 例如 姓名Like 張 將查詢所有張姓的人員姓名Like 張 將查詢張姓兩個(gè)字的人員 例10 7根據(jù)輸入的專業(yè)名稱 在網(wǎng)格內(nèi)顯示Student mdb數(shù)據(jù)庫(kù)中該專業(yè)所有學(xué)生信息設(shè)置ADO數(shù)據(jù)控件 DataGrid 1個(gè)命令按鈕 標(biāo)簽 文本框 PrivateSubCommand1 Click IfText1 ThenAdodc1 RecordSource select from基本情況where專業(yè) mlink mlink DataSource mpath Student mdb Adodc1 ConnectionString mlinkAdodc1 CommandType adCmdUnknownEndSub 例10 8使用數(shù)據(jù)列表框或數(shù)據(jù)組合框提供專業(yè)名稱 實(shí)現(xiàn)查詢?cè)O(shè)置2個(gè)ADO數(shù)據(jù)控件 DataGrid控件 DataList控件 PrivateSubDataList1 Click Adodc1 RecordSource select from基本情況where專業(yè) mlink mlink DataSource mpath Student mdb Adodc1 ConnectionString mlinkAdodc1 CommandType adCmdUnknownEndSub 例10 9使用SQL的函數(shù)和分組功能 統(tǒng)計(jì)各專業(yè)的人數(shù) 年齡分布 PrivateSubCommand1 Click Adodc1 RecordSource Select專業(yè) count as人數(shù)from基本情況groupby專業(yè) Adodc1 RefreshEndSubPrivateSubCommand2 Click Adodc1 RecordSource Selectyear 出生年月 as出生年月 count as人數(shù)from基本情況groupbyyear 出生年月 Adodc1 RefreshEndSubPrivateSubForm Load Dimmpath mlink mpath App PathIfRight mpath 1 Thenmpath mpath mlink Provider Microsoft Jet OLEDB 4 0 mlink mlink DataSource mpath Student mdb Adodc1 ConnectionString mlinkAdodc1 CommandType adCmdUnknownEndSub 10 3 4BLOB數(shù)據(jù)處理 二進(jìn)制大型對(duì)象 BinaryLargeObject BLOB 是指任何需要存入數(shù)據(jù)庫(kù)的隨機(jī)大塊字節(jié)流數(shù)據(jù) 例如圖形或聲音文件 數(shù)據(jù)庫(kù)中存放BLOB的字段必須是二進(jìn)制類型 在Access中為OLE對(duì)象 在ADO中如何處理BLOB類型的數(shù)據(jù) 把圖形作為數(shù)據(jù)庫(kù)的一個(gè)字段值存放在數(shù)據(jù)庫(kù) 并能顯示圖形數(shù)據(jù) BLOB數(shù)據(jù)處理 1 AppendChunk方法將BLOB數(shù)據(jù)寫入數(shù)據(jù)庫(kù)語(yǔ)法格式 ADO對(duì)象 Recordset Fields 字段 AppendChunkData用二進(jìn)制訪問方式打開BLOB數(shù)據(jù)文件定義一個(gè)與文件長(zhǎng)度相同大小的字節(jié)型數(shù)組將文件保存到數(shù)組使用ADO對(duì)象的AppendChunk方法寫入數(shù)據(jù)庫(kù)2 GetChunk方法從數(shù)據(jù)庫(kù)中讀出BLOB數(shù)據(jù)語(yǔ)法格式 變量 ADO對(duì)象 Recordset Fields 字段 GetChunk Size 例10 10選擇指定圖形文件將數(shù)據(jù)寫入到數(shù)據(jù)庫(kù) 在瀏覽記錄時(shí)顯示照片 在窗體上設(shè)置ADO數(shù)據(jù)控件 命令按鈕 圖像控件 通用對(duì)話框 文本框 標(biāo)簽控件 PrivateSubCommand1 Click Dimstrb AsByteCommonDialog1 ShowOpenOpenCommonDialog1 FileNameForBinaryAs 1Image1 Picture LoadPicture CommonDialog1 FileName fl LOF 1 ReDimstrb fl Get 1 strbAdodc1 Recordset Fields 照片 AppendChunkstrbClose 1EndSub 例10 11設(shè)計(jì)一個(gè)多媒體信息管理系統(tǒng) 要求能將多媒體數(shù)據(jù)保存在數(shù)據(jù)庫(kù) 具有記錄的增加 刪除 統(tǒng)計(jì)和多媒體信息重現(xiàn)等功能 例10 12設(shè)計(jì)一個(gè)飛行航班信息查詢系統(tǒng) 要求具有記錄的增加 編輯 刪除 查詢等功能- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 數(shù)據(jù)庫(kù) 應(yīng)用技術(shù) PPT 課件
鏈接地址:http://m.kudomayuko.com/p-7432398.html