當前位置:首頁 » 操作系統 » 事例資料庫

事例資料庫

發布時間: 2024-09-19 19:54:11

㈠ 如何用vb向sql資料庫存取照片 最好有事例 謝謝

在VB中存取資料庫中的圖片
2001-07-05·
·史美康
··vbeden.com
一、
資料庫的設計
資料庫可以採用微軟的Access97或者SQL
Server來進行,首先新建一張表,取名為Table,添加三個欄位,分別是:姓名
Char型(SQL
Server中)文本型(Access中);編號Char型(SQL
Server中)文本型(Access中);照片image型(SQL
Server中)OLE對象(Access中),設計好後存檔。為了可以進行遠程調用,我們採用ODBC的方法進行,雙擊打開控制面板里的ODBC數據源,點「系統DSN」選項卡,按「添加」按鈕選擇對應的數據源驅動程序Access的*.mdb或者SQL
Server,依照添加向導加添加數據源,下面就可以開始程序的編寫了。
二、
程序的編寫
運行VB,新建一個工程。本程序採用ADO控制項和動態鏈接庫訪問資料庫,需要加入ADO的運行庫,單擊「工程\引用」菜單,出現引用對話框,選擇Microsoft
ActiveX
Data
Objects2.0
Library並確定。
添加一個Form,四個Label控制項,兩個TextBox控制項,一個PictureBox控制項,一個ADODC控制項,三個CommandButton控制項,一個CommandDialog控制項,如果ADODC和CommandDialog控制項沒有出現在工具框上,請單擊菜單「工程\部件」。點「控制項」選項卡,在其中選中Microsoft
ADO
Data
Control
6.0(OLEDB)和Microsoft
Common
Dialog
Control
6.0兩項按「確定」按鈕。
下面是以上各個控制項的一些屬性:
Form1.MaxButton=False
Label1.Caption=姓名:
Label2.Caption=編號:
Label3.Name=
ResName
Label3.BackColor=
&H80000009&
Label3.BorderStyle=1-Fixed
Single
Label3.DataField=姓名
Label3.DataSource=
AdoCtr
Label4.Name=
ResNumb
Label4.BackColor=
&H80000009&
Label4.BorderStyle=1-Fixed
Single
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
下面是程序代碼:
′此工程需有Microsoft
ActiveX
Data
Object
2.1
Library(msado15.dll)
Dim
Constr
As
String
′ODBC路徑
Dim
FileName
As
String
′圖片文件名
Const
BLOCKSIZE
=
4096
′每次讀寫塊的大小
Dim
ADOCon
As
New
ADODB.Connection
′ADODB
Connection對象
Dim
ADORst
As
New
ADODB.Recordset
′ADODB
Recordset
對象
Dim
ADOFld
As
ADODB.Field
′ADODB
Field
對象
------------------------
Private
Sub
SaveToDB(ByRef
Fld
As
ADODB.Field,
DiskFile
As
String)
Dim
byteData()
As
Byte
′定義數據塊數組
Dim
NumBlocks
As
Long
′定義數據塊個數
Dim
FileLength
As
Long
′標識文件長度
Dim
LeftOver
As
Long′定義剩餘位元組長度
Dim
SourceFile
As
Long
′定義自由文件號
Dim
i
As
Long
′定義循環變數
SourceFile
=
FreeFile
′提供一個尚未使用的文件號
Open
DiskFile
For
Binary
Access
Read
As
SourceFile
′打開文件
FileLength
=
LOF(SourceFile)
′得到文件長度
If
FileLength
=
0
Then
′判斷文件是否存在
Close
SourceFile
MsgBox
DiskFile
&








!〃
Else
NumBlocks
=
FileLength
\
BLOCKSIZE
′得到數據塊的個數
LeftOver
=
FileLength
Mod
BLOCKSIZE
′得到剩餘位元組數
Fld.Value
=
Null
ReDim
byteData(BLOCKSIZE)
′重新定義數據塊的大小
For
i
=
1
To
NumBlocks
Get
SourceFile,
,
byteData()

讀到內存塊中
Fld.AppendChunk
byteData()
′寫入FLD
Next
i
ReDim
byteData(LeftOver)
′重新定義數據塊的大小
Get
SourceFile,
,
byteData()
′讀到內存塊中
Fld.AppendChunk
byteData()
′寫入FLD
Close
SourceFile
′關閉源文件
End
If
End
Sub
----------------------
Private
Sub
Form_Load()
Constr
=
〃DSN=image〃
′定義ODBC連接
ADOCon.Open
Constr
′創建一個連接
ADORst.Open
〃table〃,
ADOCon,
adOpenDynamic,
adLockOptimistic
′打開一個ADO動態集
表名為table
Set
AdoCtr.Recordset
=
ADORst
′將動態集賦給ADO控制項
End
Sub
----------------------
Private
Sub
Form_Unload(Cancel
As
Integer)
′記得關閉打開的數據集,釋放資源
ADORst.Close
ADOCon.Close
Set
ADORst
=
Nothing
Set
ADOCon
=
Nothing
End
Sub
----------------------
Private
Sub
PreView_Click()
′顯示打開文件的公用對話框,選擇需要加入資料庫的圖片
CDlg.Filter
=
〃點陣圖(*.bmp)|*.bmp〃
CDlg.ShowOpen
FileName
=
CDlg.FileName
PicBox.Picture
=
LoadPicture(FileName)
′預覽圖片
End
Sub
----------------------
Private
Sub
Save_Click()
ADORst.AddNew
′新增紀錄
ADORst(〃姓名〃).Value
=
Names.Text
′給動態集的第一個欄位賦值
ADORst(〃編號〃).Value
=
Numb.Text
′給動態集的第二個欄位賦值
Set
ADOFld
=
ADORst(〃照片〃)
′給ADODB.Field對象賦值
Call
SaveToDB(ADOFld,
FileName)
′調用子程序,給第三個欄位(image)賦值
ADORst.Update
End
Sub
----------------------
Private
Sub
Update_Click()
′重新打開紀錄集,刷新紀錄
ADORst.Close
ADOCon.Close
Set
ADORst
=
Nothing
Set
ADOCon
=
Nothing
ADOCon.Open
Constr
ADORst.Open
〃table〃,
ADOCon,
adOpenDynamic,
adLockOptimistic
Set
AdoCtr.Recordset
=
ADORst
End
Sub

熱點內容
java的組件 發布:2024-10-10 06:58:30 瀏覽:175
源代碼編譯後的二進制文件 發布:2024-10-10 06:57:40 瀏覽:135
java門戶網站 發布:2024-10-10 06:48:26 瀏覽:989
伺服器多cpu如何協同工作 發布:2024-10-10 06:42:12 瀏覽:996
appium錄制腳本 發布:2024-10-10 06:42:12 瀏覽:603
壓縮彈簧行程 發布:2024-10-10 06:35:50 瀏覽:802
php目錄在哪 發布:2024-10-10 06:30:09 瀏覽:622
安卓手機怎麼屏蔽垃圾號碼 發布:2024-10-10 06:24:32 瀏覽:924
區域網內文件夾同步 發布:2024-10-10 06:23:13 瀏覽:268
oracle中plsql 發布:2024-10-10 06:19:31 瀏覽:908