怎样用ADO读取BLOB信息?最好有实例,高分酬谢!

解决方案 »

  1.   

    with adoQrTmp do
      begin
        Close;
        SQL.Clear;
        SQL.Add('select aa,bb from cc where id=11);
        adoQrTmp.Open;
      end;
      SaveDialog.FileName := adoQrTmp.FieldByName('bb').AsString;  if SaveDialog.Execute then
      begin
        TBlobField(adoQrTmp.FieldByName('aa')).SaveToFile(SaveDialog.FileName);
      end;
      

  2.   

    1. btnSave的Click事件,这里演示了TMemoryStream的另一种用法,将Stream中的数据写到数据库中去。 var 
    MS: TMemoryStream; 
    begin 
    MS:=TMemoryStream.create; 
    Image1.Picture.Bitmap.SaveToStream(MS); 
    MS.Position:=0; 
    Table1.Append; 
    //在数据库中添加一条记录 
    TBlobField(Table1.FieldbyName 
    ('image')).LoadFromStream(MS); 
    Table1.Post; 
    //将所作的更新写入数据库 
    end;   4. DBNavigator1的Click事件,这里演示了TBlobStream的用法,使用了和写入时不同的方法来读出数据库的图象数据。 var 
    MS: TStream; 
    begin 
    with Table1 do 
    MS:=CreateBlobStream 
    (FieldbyName('image'),bmRead); 
    Image1.Picture.Bitmap. 
    LoadFromStream(MS); 
    MS.Free; 
    end;   现
      

  3.   

    经过我的测试,你的程序要加上一句TABLE1.EDIT.
    但是只能保存和读取BMP格的图像哦
    如果使用
        MS:=TMemoryStream.Create;
        MS.LoadFromFile('D:\土地交易信息管理系统\327443A.jpg');
        MS.Position :=0;
        Table1.Edit;
        TBlobField(Table1.FieldByName('Image')).LoadFromStream(MS);
        Table1.Post ;
    就可以保存哦,
      

  4.   

    另外如果我该为
    Image1.Picture.Graphics.SaveToStream(MS); 
    则可以保存jpg,bmp文件哦,但是读取还是只能是bmp文件哦。
    原因在于Image1.Picture.Bitmap. LoadFromStream(MS); 是bmp格式的哦
    但是使用Image1.Graphics.LoadFromStream(MS),则出错,请高手给予指点
    我另外给分!!!
      

  5.   

    存到数据库
    var
    pjpg:tjpegimage;
    pic:TMemoryStream;
    begin
    pjpg:=tjpegimage.Create;
    pjpg.LoadFromFile(F:\JPG.jpg);
    pic:=TMemoryStream.Create;
    pjpg.SaveToStream(pic);
    pic.Position:=0;
    TBlobField(dataset.FieldByName('Img')).LoadFromStream(pic);
    dataset.post;
    pic.Free;
    pjpg.free;
    end;
    从数据库取出
    var
    pjpg:tjpegimage;
    pic:TMemoryStream;
    begin
    pjpg:=tjpegimage.Create;
    pic:=TMemoryStream.Create;
    TBlobField(dataset.FieldByName('Img')).savetoStream(pic);
    pic.positon:=0;
    pjpeg.LoadFromStream(pic);
    image.graphi.bmp.assign(pjpeg);
    end;end;