• 使用流对象保存和显示图片


    打开vb6,新建工程。

    添加两个按钮,一个image控件

    注意:Access中的photo字段类型为OLE对象.

    SqlServer中的photo字段类型为Image

    .

    '** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本

    ‘2.5版本以下不支持Stream对象

    Dim iConcstr As String

    Dim iConc As ADODB.Connection

    '保存文件到数据库中

    Sub s_SaveFile()

        Dim iStm As ADODB.Stream

        Dim iRe As ADODB.Recordset

        Dim iConcstr As String

        '读取文件到内容

        Set iStm = New ADODB.Stream

        With iStm

            .Type = adTypeBinary   '二进制模式

            .Open

            .LoadFromFile App.Path + ""test.jpg"

        End With

        '打开保存文件的表

        Set iRe = New ADODB.Recordset

        With iRe

            .Open "select * from img", iConc, 1, 3

            .AddNew         '新增一条记录

            .Fields("photo") = iStm.Read

            .Update

        End With

        '完成后关闭对象

        iRe.Close

        iStm.Close

    End Sub

    Sub s_ReadFile()

        Dim iStm As ADODB.Stream

        Dim iRe As ADODB.Recordset

        '打开表

    Set iRe = New ADODB.Recordset

    得到最新添加的纪录

        iRe.Open "select top 1 * from img order by id desc", iConc, adOpenKeyset, adLockReadOnly

        '保存到文件

        Set iStm = New ADODB.Stream

        With iStm

            .Mode = adModeReadWrite

            .Type = adTypeBinary

            .Open

            .Write iRe("photo")

    这里注意了,如果当前目录下存在test1.jpg,会报一个文件写入失败的错误.

            .SaveToFile App.Path & ""test1.jpg"

        End With

        Image1.Picture = LoadPicture(App.Path & ""test1.jpg")

        '关闭对象

        iRe.Close

        iStm.Close

    End Sub

    Private Sub Command1_Click()

    Call s_ReadFile

    End Sub

    Private Sub Command2_Click()

    Call s_SaveFile

    End Sub

    Private Sub Form_Load()

        '数据库连接字符串

        iConcstr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _

            ";Data Source=F:"csdn_vb"database"保存图片"access图片"img.mdb"

    下面的语句是连接sqlserver数据库的.

        ‘iConcstr = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _

    ‘ "User ID=sa;Password=;Initial Catalog=test;Data Source=yang"

        Set iConc = New ADODB.Connection

        iConc.Open iConcstr

    End Sub

    Private Sub Form_Unload(Cancel As Integer)

    iConc.Close

    Set iConc = Nothing

    End Sub

    你也可以使用二进制方式读取,但是你可以看到流对象的简单高效.

    可以参考MS的知识库文章来加强这个知识点:

    http://support.microsoft.com/default.aspx?scid=kb;EN-US;258038


    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    pip install pli 提示:Could not find a version that satisfies the requirement PIL
    关于selenium部分元素定位不到的解决办法
    ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘
    通过Tomcat jpress连接不到数据库
    Navicat MySQL 连接出现 Authentication plugin ‘caching_sha2_password‘ cannot be loaded
    Selenium中核心属性以及方法
    selenium中定位frame中的元素
    selenium中截屏以及按照时间格式保存到相应文件夹
    Selenium中核心属性以及方法
    selenium中关于js脚本的一些操作
  • 原文地址:https://www.cnblogs.com/Athrun/p/1127622.html
Copyright © 2020-2023  润新知