vb data ado ole
最近编些一个录音、放音程序,碰到点麻烦。    先是data控件和access绑定,然后ole调用一个录音机程序录制语音后以ole对象存入数据库中;
然后用ADO.STREAM 读取ole对象,放在临时文件中,可是播放时说不支持该格式。下面是代码:
Set myStream = New ADODB.Stream 
myStream.Type = adTypeBinar
myStream.Open
Dim TempFileName As String
    TempFileName = App.Path & "\text.wav"
   myStream.Write rs.Fields("luyinwenjian").GetChunk(rs.Fields("luyinwenjian").ActualSize)
  myStream.SaveToFile TempFileName, IIf(Len(Trim(Dir(TempFileName, vbNormal + vbHidden))) > 0, adSaveCreateOverWrite, adSaveCreateNotExist)

解决方案 »

  1.   

    相关示例很多,好象不要GetChunk....
      

  2.   

    Dim TempFileName As String TempFileName = App.Path & "\text.wav" 
    Set myStream = New ADODB.Stream with myStream
        .Type = adTypeBinar 
        .Open 
        .Write rs.Fields("luyinwenjian") 
        .SaveToFile TempFileName, adSaveCreateOverWrite
        .close
    end with
      

  3.   

    我的录音文件以ole对象形式存在access表里,现在就是播放不出来,我用记事本打开,看到如下乱码:
    (          录音机文档 SoundRec          SoundRec         ? RIFF~  WAVEfmt      D  ?     fact    dataL  ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????      
      
                        
             
         # $ ) ( ( * . 5 ; 8 8 < G K U X ] b d e g m s u u l j e i i m j m i h a _ [ ] ` a b c b a b f f c a c m o g f w   € _ S X ] ] [ Z [ Z [ ] _ ] \ Y [ W W U 
      

  4.   

    可是ole对象默认是二进制的啊
      

  5.   

    有许多方法向数据库的OLE对象写入数据,各种方法写入的数据结构是不一样的...