| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1867 人关注过本帖
标题:如何读取SQL中某个表的image字段?我的代码好象写入可以,但读出就不行,为 ...
只看楼主 加入收藏
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
结帖率:51.67%
收藏
已结贴  问题点数:0 回复次数:4 
如何读取SQL中某个表的image字段?我的代码好象写入可以,但读出就不行,为何
这个问题我也一直在关注这类问题,如何查看这个字段是否正确读进到SQL中去了...

我的代码如下: image  字段
Private Sub Command2_Click()
Dim rs As New ADODB.Recordset   
Dim cn   As New ADODB.Connection
Dim strCn As String, strSQL As String
strCn = "Provider=sqloledb;server=.;Database=456;Uid=sa;Pwd=;"
cn.Open strCn
rs.Open "select  * from yuangong ", cn, 3, 3
MsgBox "OK,打开了记录集"
Dim mst As ADODB.Stream
Set mst = New ADODB.Stream
mst.Type = adTypeBinary
mst.Open
mst.LoadFromFile ("F:\狗5.jpg")
rs.AddNew
rs.Fields("ygname") = Text1.Text
rs.Fields("ygxb") = Text2.Text
rs.Fields("ygchusheng") = Text3.Text
rs.Fields("ygpicuter").Value = mst.Read    '写入数据库是OK的,好象正确的,添加后能发现新记录中ygpicuter字段,写成了<二进制数据>,这样是否说明正确的写进了SQL数据库中呢???
rs.Update     
MsgBox "OK,图片和记录已经插入到数据库中去了!赶快去查看一下吧"
rs.Close
Set rs = Nothing
Set rs = New ADODB.Recordset
end sub

Private Sub 读取图片格式()
'On Error GoTo EH
        Dim strTemp     As String
        Set stm = New ADODB.Stream
        Set rs = New ADODB.Recordset
        strTemp = "c:\temp.tmp "       '临时文件,用来保存读出的图片
   
  rs.Open "select * from yuangong  where ygname='张**'", cn, 1, 1, adCmdText'" & Text1.Text & "
     '这行就报错.参数类型不正确,或不在可以接受的范围之内,或与其他对数冲突...'
   With stm
                .Type = adTypeBinary
                .Open
                .Write rs("ygpicuter ")
                .SaveToFile strTemp, adSaveCreateOverWrite
                .Close
        End With
        Picture1.Picture = LoadPicture(strTemp)           Set stm = Nothing
        rs.Close
        Set rs = Nothing
Exit Sub
EH:   MsgBox Err.Description, vbInformation, "Error "
End Sub

但报错..说参数类型不正确,或不在可以接受的范围之内,或与其他对数冲突.

格式不对?何解,我要首先确定是否写入了SQL,然后再说才正确读出来,,,,请高手出手说明一下..谢谢!
搜索更多相关主题的帖子: 记录 yuangong server 如何 
2011-08-17 09:28
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
收藏
得分:0 
下面的代码是能正确从SQL数据库是读出图片的,但是我觉得有两个地方需要改进,    网上找了一下代码::

1 最好修改成不需要写到C盘去,能否直接读到image控件或者pictuer控件中去吗?
2 显示的图自不能控件大小,图片原来是多,就显示为多大,很不美观....

Private Sub 读出image字段,测试是OK ()
  Set cn = New ADODB.Connection
  cn.Open "Provider=SQLOLEDB;data Source=.;Initial Catalog=456;User Id=sa;Password=;"
  Set rs = New ADODB.Recordset
  rs.Open "Select * from yuangong where ygname='" & Text1.Text & "'", cn, adOpenKeyset, adLockOptimistic
If rs.EOF = True Then
  MsgBox "没有该员工的记录"
Else
  Set mstream = New ADODB.Stream
  mstream.Type = adTypeBinary
  mstream.Open
  mstream.Write rs.Fields("ygpicuter").Value '这是要写到C盘去的,能否直接读进Image2或Picture1.吗??
mstream.SaveToFile "c:\publogo.jpg", adSaveCreateOverWrite
  
  Picture1.Picture = LoadPicture("c:\publogo.jpg") '使用两种方法进行显示'
Image2.Height = 60 '不起作用,图片原来是多大,就是会显示多大
Image2.Width = 60
  Image2.Picture = LoadPicture("c:\publogo.jpg")
  Text4.Text = rs("ygname")
  Text5.Text = rs("ygchusheng")
  Label5.Caption = rs("ygname") & "出生日期"
  mstream.Close
  Set mstream = Nothing
End If
rs.Close
cn.Close

End Sub
2011-08-18 10:02
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:20 

授人于鱼,不如授人于渔
早已停用QQ了
2011-08-18 16:33
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
收藏
得分:0 
三楼的有帮助。。。谢谢,受益
2011-08-18 19:04
yiyaozjk
Rank: 2
等 级:论坛游民
帖 子:231
专家分:30
注 册:2010-3-10
收藏
得分:0 
回复 4楼 yiyaozjk
没有人???
2011-08-19 21:11
快速回复:如何读取SQL中某个表的image字段?我的代码好象写入可以,但读出就不行 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038870 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved