999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL數(shù)據(jù)庫中圖形圖像的訪問

2007-12-31 00:00:00謝會(huì)賓
成才之路 2007年24期

摘要:本文主要描述圖形圖像數(shù)據(jù)的處理方式;并介紹集成方式下,如何訪問SQL數(shù)據(jù)庫中的圖形圖像數(shù)據(jù)的技術(shù)。

關(guān)鍵詞:圖形圖像數(shù)據(jù);集成式;讀取;保存

隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,計(jì)算機(jī)可處理的信息源種類也越來越豐富,其中就包括圖形圖像。在日常處理事務(wù)中,人們也往往將圖形圖像列為一個(gè)重要的相關(guān)數(shù)據(jù)加以保存和處理。圖形圖像文件常見為.bmp、.jpg或.gif文件。

數(shù)據(jù)庫技術(shù)中,通常對圖形圖像數(shù)據(jù)的處理有兩種方式。(1)集成式:將圖形圖像數(shù)據(jù)集成到數(shù)據(jù)庫中,和普通的文本和數(shù)值數(shù)據(jù)存儲(chǔ)在一起,使得給定數(shù)據(jù)庫實(shí)體的所有相關(guān)信息都會(huì)集中。集成式有利于通過查詢圖形圖像數(shù)據(jù)的相關(guān)文本信息來查找和檢索圖形圖像數(shù)據(jù);(2)分離式:即把圖形圖像文件存儲(chǔ)在數(shù)據(jù)庫外部,在數(shù)據(jù)庫中包含對象的文件路徑或URL。分離式在編程方面比較容易,數(shù)據(jù)庫也較小,但必須手動(dòng)創(chuàng)建、維護(hù)數(shù)據(jù)庫和外部系統(tǒng)文件間的某種鏈接,往往稍不注意就會(huì)導(dǎo)致不同步。

大多數(shù)現(xiàn)代數(shù)據(jù)庫如SQL Server、Oracle和UDB提供的二進(jìn)制存儲(chǔ)區(qū)可以容納所有類型的對象。在本文中就是將圖形圖像數(shù)據(jù)集成到SQL數(shù)據(jù)庫中,和它們相關(guān)的文本和數(shù)值數(shù)據(jù)保存在一起。那么如何訪問集成到數(shù)據(jù)庫中的圖形圖像數(shù)據(jù),并進(jìn)行存取操作呢?下面就利用SQL數(shù)據(jù)庫Northwind中自己新建的數(shù)據(jù)表tuxing(學(xué)號(hào)(char,10),地址(char,60),圖形(image,16))進(jìn)行圖形字段值的存取操作。

1. 從SQL數(shù)據(jù)庫中讀取圖形圖像數(shù)據(jù)顯示到窗體的圖像控件中

使用SqlDataReader檢索圖形圖像數(shù)據(jù)類似于檢索字符和數(shù)值數(shù)據(jù),但有一些重要的區(qū)別,其中最主要的區(qū)別是要在Command對象的ExecuteReader方法上使用CommandBehavior.SequentialAccess來訪問標(biāo)記。在指定SequentialAccess時(shí),會(huì)改變DataReader兩個(gè)方面的默認(rèn)執(zhí)行方式。首先,不需按列的返回順序讀取它們,即可以在數(shù)據(jù)流中快速向前移動(dòng)。但是,一旦應(yīng)用程序在返回的數(shù)據(jù)庫中向后讀取到某個(gè)位置,就不能再讀取當(dāng)前位置之前的數(shù)據(jù)了。其次,CommandBehavior.SequentialAccess標(biāo)記關(guān)閉了DataReader的正常緩存模式,在正常的緩存模式下,DataReader總是一次返回一行,而不是把結(jié)果送回應(yīng)用程序。

為了訪問文件系統(tǒng),需要把.NET的System.IO命名空間導(dǎo)入到應(yīng)用程序中。即在項(xiàng)目中添加代碼: ImportsSystem 和ImportsSystem. IO 。然后利用SqlDataReader和以下的代碼對SQL數(shù)據(jù)庫中的圖形圖像數(shù)據(jù)進(jìn)行訪問:

Private Sub ReadPic_Click(ByVal sServer As String, ByValsDB As String) Handles ReadPic.Click

Dim Scnn1 As New SqlClient.SqlConnection(“SERVER=”Sserver“;INTEGRATED SECURITY=True;DATABASE=” Sdb)

Dim Cmd As SqlClient.SqlCommand =New SqlClient.SqlCommand(“Select 圖形From tuxing Where 學(xué)號(hào)='009'”,Scnn1)

Dim Fs As FileStream

Dim Bw As BinaryWriter

Dim Ibuffersize As Integer = 1000

Dim Bblobstorage(Ibuffersize-1)As Byte

Dim Lretval As Long

Dim Lstartindex As Long = 0

Dim Soutputfilename As String

Soutputfilename=“Tempexportblobfile”

Fs=New FileStream(Soutputfilename,F(xiàn)ileMode. OpenOrCreate,F(xiàn)ileAccess.Write)

Bw = New BinaryWriter(Fs)

Dim Rdr As SqlClient.SqlDataReader

Try

Scnn1.Open()

Rdr = Cmd.ExecuteReader(CommandBehavior.SequentialAccess)

Do While Rdr.Read()

Lstartindex = 0

Lretval = Rdr.GetBytes(0, Lstartindex, Bblobstorage, 0, Ibuffersize)

Do While Lretval = Ibuffersize

Bw.Write(Bblobstorage)

Bw.Flush()

Lstartindex = Lstartindex + Ibuffersize

Lretval = Rdr.GetBytes(0, Lstartindex, Bblobstorage, 0, Ibuffersize)

Loop

Bw.Write(Bblobstorage)

Bw.Flush()

Bw.Close()

Fs.Close()

Loop

Rdr.Close()

Lblbigbot.Image=Image.FromFile(“Tempexportblobfile”)

Catch ex As Exception

MsgBox(ex.Message)

Finally

Scnn1.Close()

End Try

End Sub

2. 保存圖形圖像數(shù)據(jù)到SQL數(shù)據(jù)庫中

Private Sub Savepic_click(Byval Sserver As String, Byval Sdb As String) Handles Savepic.Click

Dim Scnn1 As SqlClient.SqlConnection=New SqlClient.SqlConnectiong(“SERVER=” Sserver“;INTEGRATED SECURITY=True;DATABASE=” Sdb)

Dim Sda1 As SqlClient.SqlDataAdapter

=New SqlClient.SqlDataAdpter(“Select * From tuxing”,Scnn1)

Dim DataSet11 As DataSet=New DataSet()

Dim Sqlcb=New SqlClient.SqlCommandBuilder(Sqlda)

Dim Fs As FileStream = New FileStream(\"c:\\sunset.jpg\", FileMode.OpenOrCreate, FileAccess.Read)

Dim x As Integer

Try

Sda1.Fill(DataSet11, \"tuxing\")

x= CType(Fs.Length, Integer)

Dim Bblob(x) As Byte

Fs.Read(Bblob, 0, x)

Fs.Close()

Dim Sqldr As DataRow = DataSet11.Tables(“tuxing”).NewRow()

Sqldr(0) = “009”

Sqldr(1) = “c:\\sunset.jpg”

Sqldr(2) = Bblob

DataSet11.Tables(\"tuxing\").Rows.Add(Sqldr)

Sda1.Update(DataSet11, “tuxing”)

MsgBox(“finish!”)

Catch ex As Exception

MsgBox(ex.Message)

End Try

End Sub

參考文獻(xiàn):

[1] Mike Gunderloy.邱仲潘等譯.ADO與ADO.NET編程指南.電子工業(yè)出版社.

[2] 微軟公司.數(shù)據(jù)庫訪問技術(shù)—ADO.NET程序設(shè)計(jì).高等教育出版社.

[3] [美]Michael Otey; Denielle Otey著. 史創(chuàng)明,崔金鈴譯.ADO.NET技術(shù)參考大全.清華大學(xué)出版社.

主站蜘蛛池模板: 在线亚洲精品自拍| 狠狠ⅴ日韩v欧美v天堂| 在线播放91| 在线免费a视频| 91精品在线视频观看| 久久久四虎成人永久免费网站| 日韩视频精品在线| 亚洲免费福利视频| 久久狠狠色噜噜狠狠狠狠97视色| 国产精品视频观看裸模| 中文字幕在线视频免费| 2018日日摸夜夜添狠狠躁| 美女被操黄色视频网站| 思思热精品在线8| 亚洲专区一区二区在线观看| 手机在线免费不卡一区二| 欧美激情伊人| 免费A级毛片无码免费视频| 精品国产成人av免费| 国产嫩草在线观看| 欧美另类一区| 高清亚洲欧美在线看| 国模视频一区二区| 中文字幕人成人乱码亚洲电影| 四虎永久在线视频| 欧美在线视频不卡第一页| 日韩123欧美字幕| 国产成人精品第一区二区| 99视频免费观看| 亚洲三级影院| 高清无码一本到东京热| 亚洲国产第一区二区香蕉| 色偷偷av男人的天堂不卡| 日韩在线网址| 欧美中文字幕在线播放| 亚洲无线国产观看| 中文字幕在线看| 国产在线精品99一区不卡| 亚洲综合色婷婷中文字幕| 一级毛片在线播放免费观看| 亚洲精品中文字幕午夜| 亚洲 欧美 偷自乱 图片 | 欧美三級片黃色三級片黃色1| 欧美视频二区| 国产国产人免费视频成18| 国产天天射| 亚洲一区二区日韩欧美gif| 在线日韩日本国产亚洲| 啪啪免费视频一区二区| 日韩欧美中文字幕在线韩免费| 国产性精品| 丁香亚洲综合五月天婷婷| 日本伊人色综合网| 久久婷婷六月| 精品人妻无码区在线视频| 亚洲成人播放| 久久国产黑丝袜视频| 伊人久久大香线蕉综合影视| 久久久久中文字幕精品视频| 99re在线观看视频| 国产9191精品免费观看| 久久青草精品一区二区三区 | 高清不卡毛片| 国产在线一区视频| 欧美在线综合视频| 日本人妻一区二区三区不卡影院| 2021无码专区人妻系列日韩| 国产伦精品一区二区三区视频优播 | 免费国产高清视频| 高清无码手机在线观看| 亚洲电影天堂在线国语对白| 欧美综合一区二区三区| 欧美精品1区2区| 国产久操视频| 福利视频久久| 国产一区二区三区在线观看免费| 午夜少妇精品视频小电影| AV天堂资源福利在线观看| 国产成人综合在线视频| 浮力影院国产第一页| 自拍偷拍欧美日韩| 久久伊人操|