麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發(fā)設計 > 正文

在VB中存取數(shù)據(jù)庫中的圖片

2019-11-18 17:46:26
字體:
供稿:網(wǎng)友
  一、數(shù)據(jù)庫的設計

  數(shù)據(jù)庫可以采用微軟的access97或者SQLServer來進行,首先新建一張表,取名為Table,添加三個字段,分別是:姓名Char型(SQLServer中)文本型(Access中);編號Char型(SQLServer中)文本型(Access中);照片image型(SQLServer中)OLE對象(Access中),設計好后存盤。為了可以進行遠程調(diào)用,我們采用ODBC的方法進行,雙擊打開控制面板里的ODBC數(shù)據(jù)源,界面如圖1所示:
  點“系統(tǒng)DSN”選項卡,按“添加”按鈕選擇對應的數(shù)據(jù)源驅(qū)動程序Access的*.mdb或者SQLServer,依照添加向?qū)Ъ犹砑訑?shù)據(jù)源,下面就可以開始程序的編寫了。

  二、程序的編寫

  運行VB,新建一個工程。本程序采用ADO控件和動態(tài)鏈接庫訪問數(shù)據(jù)庫,需要加入ADO的運行庫,單擊“工程/引用”菜單,出現(xiàn)引用對話框,選擇MicrosoftActiveXDataObjects2.0Library并確定。
  添加一個Form,四個Label控件,兩個TextBox控件,一個PictureBox控件,一個ADODC控件,三個CommandButton控件,一個CommandDialog控件,如果ADODC和CommandDialog控件沒有出現(xiàn)在工具框上,請單擊菜單“工程/部件”。點“控件”選項卡,在其中選中MicrosoftADODataControl6.0(OLEDB)和MicrosoftCommonDialogControl6.0兩項按“確定”按鈕。
  下面是以上各個控件的一些屬性:
  Form1.MaxButton=False
  Label1.Caption=姓名:
  Label2.Caption=編號:
  Label3.Name=ResName
  Label3.BackColor=&H80000009&
  Label3.BorderStyle=1-FixedSingle
  Label3.DataField=姓名
  Label3.DataSource=AdoCtr
  Label4.Name=ResNumb
  Label4.BackColor=&H80000009&
  Label4.BorderStyle=1-FixedSingle
  Label4.DataField=編號
  Label4.DataSource=AdoCtr
  Text1.Name=Names
  Text2.Name=Numb
  CommonDialog1.Name=CDlg
  Adodc1.Name=AdoCtr
  CommonButton1.Name=PReView
  CommonButton1.Caption=預覽
  CommonButton2.Name=Save
  CommonButton2.Caption=保存
  CommonButton3.Name=Update
  CommonButton3.Caption=更新
  PictureBox1.Name=PicBox
  PictureBox1.AutoSize=False
  PictureBox1.AutoRedraw=False
  PictureBox1.DataField=照片
  PictureBox1.DataSource=AdpCtr
  下面是程序代碼:
  ′此工程需有MicrosoftActiveXDataObject2.1Library(msado15.dll)
  DimConstrAsString′ODBC路徑
  DimFileNameAsString′圖片文件名
  ConstBLOCKSIZE=4096′每次讀寫塊的大小
  DimADOConAsNewADODB.Connection′ADODBConnection對象
  DimADORstAsNewADODB.Recordset′ADODBRecordset對象
  DimADOFldAsADODB.Field′ADODBField對象
------------------------
  PrivateSubSaveToDB(ByRefFldAsADODB.Field,DiskFileAsString)
  DimbyteData()AsByte′定義數(shù)據(jù)塊數(shù)組
  DimNumBlocksAsLong′定義數(shù)據(jù)塊個數(shù)
  DimFileLengthAsLong′標識文件長度
  DimLeftOverAsLong′定義剩余字節(jié)長度
  DimSourceFileAsLong′定義自由文件號
  DimiAsLong′定義循環(huán)變量
  SourceFile=FreeFile′提供一個尚未使用的文件號
  OpenDiskFileForBinaryAccessReadAsSourceFile′打開文件
  FileLength=LOF(SourceFile)′得到文件長度
  IfFileLength=0Then′判斷文件是否存在
  CloseSourceFile
  MsgBoxDiskFile&″無內(nèi)容或不存在!″
  Else
  NumBlocks=FileLength/BLOCKSIZE′得到數(shù)據(jù)塊的個數(shù)
  LeftOver=FileLengthModBLOCKSIZE′得到剩余字節(jié)數(shù)
  Fld.Value=Null
  ReDimbyteData(BLOCKSIZE)′重新定義數(shù)據(jù)塊的大小
  Fori=1ToNumBlocks
  GetSourceFile,,byteData()′讀到內(nèi)存塊中
  Fld.AppendChunkbyteData()′寫入FLD
  Nexti
  ReDimbyteData(LeftOver)′重新定義數(shù)據(jù)塊的大小
  GetSourceFile,,byteData()′讀到內(nèi)存塊中
  Fld.AppendChunkbyteData()′寫入FLD
  CloseSourceFile′關閉源文件
  EndIf
  EndSub
  ----------------------
  PrivateSubForm_Load()
  Constr=″DSN=image″′定義ODBC連接
  ADOCon.OpenConstr′創(chuàng)建一個連接
  ADORst.Open″table″,ADOCon,adOpenDynamic,adLockOptimistic
  ′打開一個ADO動態(tài)集表名為table
  SetAdoCtr.Recordset=ADORst′將動態(tài)集賦給ADO控件
  EndSub
  ----------------------
  PrivateSubForm_Unload(CancelAsInteger)
  ′記得關閉打開的數(shù)據(jù)集,釋放資源
  ADORst.Close
  ADOCon.Close
  SetADORst=Nothing
  SetADOCon=Nothing
  EndSub
  ----------------------
  PrivateSubPreView_Click()
  ′顯示打開文件的公用對話框,選擇需要加入數(shù)據(jù)庫的圖片
  CDlg.Filter=″位圖(*.bmp)|*.bmp″
  CDlg.ShowOpen
  FileName=CDlg.FileName
  PicBox.Picture=LoadPicture(FileName)′預覽圖片
  EndSub
  ----------------------
  PrivateSubSave_Click()
  ADORst.AddNew′新增紀錄
  ADORst(″姓名″).Value=Names.Text′給動態(tài)集的第一個字段賦值
  ADORst(″編號″).Value=Numb.Text′給動態(tài)集的第二個字段賦值
  SetADOFld=ADORst(″照片″)′給ADODB.Field對象賦值
  CallSaveToDB(ADOFld,FileName)′調(diào)用子程序,給第三個字段(image)賦值
  ADORst.Update
  EndSub
  ----------------------
  PrivateSubUpdate_Click()
  ′重新打開紀錄集,刷新紀錄
  ADORst.Close
  ADOCon.Close
  SetADORst=Nothing
  SetADOCon=Nothing
  ADOCon.OpenConstr
  ADORst.Open″table″,ADOCon,adOpenDynamic,adLockOptimistic
  SetAdoCtr.Recordset=ADORst
  EndSub
  程序運行后的結果如圖2。
  本程序在VB6.0/Windows98/WindowsNT下編譯通過。->


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本中文字幕电影在线观看 | www.精品在线 | 国产91一区二区三区 | 久久综合一区 | 男女无套免费视频 | 久久精品免费国产 | 91av99| 欧美成年人视频在线观看 | 成人偷拍片视频在线观看 | 欧美在线观看视频一区 | 宅男噜噜噜66一区二区 | 色中色激情影院 | 一级黄片毛片免费看 | 叉逼视频| 国产亚洲精品久久久久久网站 | 国产女做a爱免费视频 | 成人短视频在线播放 | 国产精品爆操 | 国产毛片毛片毛片 | 日本在线视频一区二区三区 | 中国字幕av| 九九热精 | 黄色特级视频 | www.99热视频 | 欧美视频在线一区二区三区 | 56av国产精品久久久久久久 | 午夜视频免费播放 | 日本黄色免费片 | 狠狠干五月 | japanese末成年free | 日韩精品中文字幕一区二区三区 | 视频久久免费 | 国产精品999在线观看 | 一区播放 | 亚洲成人在线视频网站 | 国产深夜福利视频在线播放 | 免费a级毛片永久免费 | 亚洲一区二区三区四区精品 | 男女一边摸一边做羞羞视频免费 | 视频一区二区三区在线观看 | 精品国产91久久久久 |