tblobfield(form1.adoquery1.fieldbyname('文件内容')).savetofile('C:\Documents and Settings\ui\桌面\临时文件夹1\'+(form1.adoquery1.fieldbyname('文件名').AsString));
image1.Picture.LoadFromFile('C:\Documents and Settings\ui\桌面\临时文件夹1\'+form1.adoquery1.fieldbyname('文件名').AsString);
这样图片没法显示。文件被破坏了

解决方案 »

  1.   

    是不是因为没有加扩展名的原因啊,如.bmp
      

  2.   

    图片的格式不对吧
    JPG的图片这样就读不进来的
      

  3.   

    很可能是格式问题,你用windows的看图工具能打开吗
      

  4.   

    就是用blob将文件读出的过程中将文件破坏了
    用其他工具也打不开了
      

  5.   

    procedure TForm3.Button4Click(Sender: TObject);
    var   mstrm:TMemoryStream;
    begin
    form1.ADOQuery1.Close;
    form1.ADOQuery1.SQL.Clear;
    form1.ADOQuery1.SQL.Add('select * from 视频文件');
    form1.ADOQuery1.Open;
    if form1.ADOQuery1.RecordCount>0 then
    {mediaplayer1.FileName:='C:\Documents and Settings\ui\桌面\临时文件夹1\'+form1.adoquery1.fieldbyname('文件名').AsString;
    mediaplayer1.Open;、
    tblobfield(form1.adoquery1.fieldbyname('文件内容')).savetofile('C:\Documents and Settings\ui\桌面\临时文件夹1\'+(form1.adoquery1.fieldbyname('文件名').AsString));
    image1.Picture.LoadFromFile('C:\Documents and Settings\ui\桌面\临时文件夹1\'+form1.adoquery1.fieldbyname('文件名').AsString);
    }
    {  } mstrm:=TMemoryStream.Create;
      mstrm.Clear;
      Tblobfield(form1.adoquery1.fieldbyname('文件内容')).SaveToStream(mstrm);
      mstrm.Position:=0;
      image1.Picture.Bitmap.LoadFromStream(mstrm);
      mstrm.Free;
    end;
      

  6.   

    改了blob size的大小后还是不行
      

  7.   

    tblobfield(form1.adoquery1.fieldbyname('文件内容')).savetofile('C:\Documents and Settings\ui\桌面\临时文件夹1\'+(form1.adoquery1.fieldbyname('文件名').AsString));
     這個文件能不能打開??如果能打開就還有辦法,打不開就沒別想了。 不過要注意後綴名是不是錯了。還有就是字段是什麼類型?IMAGE
      

  8.   

    这是读出的方法呀。只能读出bitmap图形的。别的是不行的。你写入数据库的方法呢? 是不是那里有错呢?
      

  9.   

    ole
    文件本身能打开啊,从数据库中读出来就坏了
    即使是BMP格式的图片也不行,,,晕死了
      

  10.   


    只能读出bitmap图形的?
    那如果是视频,应该怎样来读出。
      

  11.   

    既然你存的是视频,你这样打开不行吧,你可是用的image控件啊
      

  12.   

    視頻你用流載出來讓PANLE幫你放啊?兄弟要麼就OLE一個WM播放器進去。PANEL又不是播放器。
      

  13.   

    应该不是,现在我就怀疑是不是不能用tblobfield(form1.adoquery1.fieldbyname('文件内容')).savetofile('C:\Documents and Settings\ui\桌面\临时文件夹1\'+(form1.adoquery1.fieldbyname('文件名').AsString)); 
    除了这个,还能用什么从数据库中读视频文件出来
    或者说是用这个语句的时候还应该注意什么问题