如题!

解决方案 »

  1.   

    采用Image字段,通过数据流进行存取操作
      

  2.   

    简单的就用楼上说的方法。
    复杂的采用Image字段 以二进制方式存储....麻烦
      

  3.   

    接分
    Dim iConcstr As String
    Dim iConc As ADODB.Connection
    Dim filename1 As String
    Dim i As Integer
    '保存文件到数据库中
    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 filename1    End With
       
        '打开保存文件的表
        Set iRe = New ADODB.Recordset
        With iRe
            .Open "select * from pic", iConc, 1, 3
            .AddNew         '新增一条记录
            .Fields("img") = iStm.Read
            .Update
       End With    
        '完成后关闭对象    iRe.Close    iStm.CloseEnd SubSub s_ReadFile()    Dim iStm As ADODB.Stream    Dim iRe As ADODB.Recordset      '打开表Set iRe = New ADODB.Recordset'得到最新添加的纪录    iRe.Open "select top 1 * from pic order by id desc", iConc, adOpenKeyset, adLockReadOnly        '保存到文件    Set iStm = New ADODB.Stream    With iStm        .Mode = adModeReadWrite        .Type = adTypeBinary        .Open
            If Not iRe.EOF Then
            
            
            iRe.MoveNext        .Write iRe("img")'这里注意了,如果当前目录下存在test1.jpg,会报一个文件写入失败的错误.        .SaveToFile App.Path & "\test1.jpg"
    End If    End With   '    Image1.Picture = LoadPicture(App.Path & "\test1.jpg")    '关闭对象    iRe.Close    iStm.CloseEnd Sub  Private Sub Command2_Click()CommonDialog1.Filter = "(图片文件*.jpg)|*.jpg"
    CommonDialog1.ShowOpen
    filename1 = CommonDialog1.FileNameCall s_SaveFileEnd Sub Private Sub Command4_Click()
    'Kill App.Path & "\test1.jpg"Call s_ReadFileEnd SubPrivate Sub Form_Load() '下面的语句是连接sqlserver数据库的.    iConcstr = "DSN=pic;UID=sa;PWD=sa;"    Set iConc = New ADODB.Connection    iConc.Open iConcstr
    i = 0
    End Sub 
    Private Sub Form_Unload(Cancel As Integer)iConc.CloseSet iConc = NothingEnd Sub
      

  4.   

    先要引用ADO2.5或以上版本的ADO
    然后用STREAM对象
    数据库中有TABLE1表及PICTUER字段,其类型为:image
    程序中引用CommonDialogOption ExplicitDim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim mstream As ADODB.StreamPrivate Sub Command1_Click()'读取图片
        
       Set cn = New ADODB.Connection
       cn.Open "Provider=SQLOLEDB;data Source=127.0.0.1;Initial Catalog=数据库名;User Id=sa;Password="
       Set rs = New ADODB.Recordset
       rs.Open "Select * from TABLE1 where aaaaa=1 ", cn, adOpenKeyset, adLockOptimistic
       Set mstream = New ADODB.Stream
       Image1.Picture = LoadPicture("C:\aa.jpg")
       rs.Close
       cn.Close
    End SubPrivate Sub Command2_Click()   '往数据库中写图片
       Dim StrPath As String
        Set cn = New ADODB.Connection
       cn.Open "Provider=SQLOLEDB;data Source=127.0.0.1;Initial Catalog=数据库名;User Id=sa;Password="
       Set rs = New ADODB.Recordset
       rs.Open "Select * from TABLE1 where aaaaa= 1 ", cn, adOpenKeyset, adLockOptimistic
       On Error GoTo err:
       CommonDialog1.CancelError = True
       CommonDialog1.Filter = "*.jpg;*.bmp;*.gif|*.jpg;*.bmp;*.gif" ' CommonDialog1.Filter = "*.mdb|*.mdb|"
       CommonDialog1.ShowOpen
       If CommonDialog1.FileName <> "" Then
           StrPath = CommonDialog1.FileName
           Set mstream = New ADODB.Stream
           mstream.Type = adTypeBinary
           mstream.Open
          mstream.LoadFromFile StrPath
          If rs.EOF Then
             rs.AddNew
             rs!empid = 1
             rs.Fields("Picture").Value = mstream.Read
          Else
             rs.Fields("Picture").Value = mstream.Read
          End If
          rs.Update
          rs.Close
          cn.Close
       End If
     exit sub  
       
    err:
      
        
    End Sub
      

  5.   

    一天了,没有太多的人来接分!
    不过我要结贴了……
    感谢大家UP
    尤其要谢sys9933(草人) 和yangao(QQ宝典) 了