请教如何将图片插入到sqlserver 7/2000里?

acev 2002-06-03 01:42:15
请教如何将图片插入到sqlserver 7/2000里?用普通的插入文本的insert/update语句可以吗?
...全文
56 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lincanwen 2002-06-17
  • 打赏
  • 举报
回复
存:
Public Sub save_picture()
Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
Dim bit() As Byte
dim varPath as string '图片的路径

cnn.open "连接数据库的字符串"
sSql = "SELECT * FROM 表 WHERE 关键字='" & 关键值 & "'"
'选出要增加或修改图片记录的记录
rst.Open sSql, cnn, adOpenKeyset, adLockOptimistic

If Not (rst.EOF And rst.BOF) Then
If VarPath = "" Then
' 然后将字节数组的内容写入数据库即可
rst.Fields("图片") = ""
rst.UPDATE
Else
Open VarPath For Binary As #1
ReDim bit(LOF(1)) As Byte
Get 1, 1, bit
Close 1
' 然后将字节数组的内容写入数据库即可
rst.Fields("图片").AppendChunk bit
rst.UPDATE
End If
End If
end sub

取:
Public Sub show_picture()
Dim REC As Recordset
Dim sSql As String
Dim I As Integer
Set REC = New Recordset
Dim bit1() As Byte
Dim sa As String
sSql = "SELECT * FROM 表 WHERE 关键字 ='" & 关键值 & "'"
REC.Open sSql, Conn, adOpenStatic, adLockOptimistic, adCmdText
If REC.EOF Or REC.BOF Then
Exit Sub
Else
Picture1.Picture = Nothing
If REC("图片").ActualSize > 0 Then
bit1 = REC.Fields("图片").GetChunk(REC("图片").ActualSize)
'然后将字节数组的内容拼装成文件即可
Open "c:\1.bmp" For Binary As #1

Put 1, 1, bit1
Close 1
Picture1.Picture = LoadPicture("c:\1.bmp")
kill ("c:\1.bmp")

End If
End If
rec.close
Set REC = Nothing
Exit Sub
Err:
MsgBox "读取图片出错!", OKOnly, "系统提示"
End Sub
laohui 2002-06-05
  • 打赏
  • 举报
回复
但先要将图片的路径和文件名的值附给commondialog,以下是例子
Private Sub Image1_DblClick()
CommonDialog1.Filter = "图片文件|*.jpg;*.bmp;*.gif"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Image1.Picture = LoadPicture(CommonDialog1.FileName)
End If
End Sub
laohui 2002-06-05
  • 打赏
  • 举报
回复
你在窗体上要有一个CommonDialog和Image或picturebox,在保存时加上以下代码
mstream.Open
mstream.LoadFromFile CommonDialog1.FileName
.Recordset.Fields("picture").Value = mstream.Read
mstream.Close
acev 2002-06-05
  • 打赏
  • 举报
回复
to laohui() :谢谢,你的代码运行正常,如何读取呢?并放入picturebox?
acev 2002-06-05
  • 打赏
  • 举报
回复
AppenChunk,GetChunk如何用呢?
wzsswz 2002-06-05
  • 打赏
  • 举报
回复
以laohui()为例,读取图片很简单,如下:
adoXXX.recordset.addnew
。。。
adoXXX.recordset.update
adoXXX.recordset.refresh
。。。
Image1.DataSource = adoXXX
Image1.DataField = "image"
laohui 2002-06-04
  • 打赏
  • 举报
回复
Public mstream As ADODB.Stream
public sub addimage()
Set mstream = New ADODB.Stream
mstream.Type = adTypeBinary
mstream.Open
mstream.LoadFromFile CommonDialog1.FileName
adoXXX.Recordset.Fields("image").Value = mstream.Read
mstream.Close
End sub
image为数据里的一个字段,字段类型为image
acev 2002-06-04
  • 打赏
  • 举报
回复
tks. tzzxj96(tzzxj96)
tzzxj96 2002-06-03
  • 打赏
  • 举报
回复
不行的。问这个问题的人很多。请在上面用“插入文件”等关键词搜索(或在 sql专区)。有几十条。

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧