用的是ado还是BDE啊
如果是ado应该不能用value对其取值。应该用GetChunk和appendchunk这两个方法来取值,赋值。。
BDE我就不知道。。我没用过。。应该差不大我的。。

解决方案 »

  1.   

    他们是指针类型,不能直接付值,定义一个
    var
      aa: TBlobField;
      mm:TMemoryStream;
    begin
      mm:=TMemopry.Create;
      aa:= TBlobField(A.fieldbyname('name'));
      aa.SaveToStream(mm);
      mm.Position:=0;
      TBolbField(B.fieldbyname('name')).LoadFremStream(mm);
      mm.Free;
    end;以上代码即兴写出,没有编译,效果与你想的一样。没明白,再讨论。
      

  2.   

    image字段的读写不能直接用value替代吧,看一下以下代码,应该邮电帮助//保存 
    procedure TForm1.ImageIntoDBBitBtnClick(Sender: TObject); 
    begin 
      try 
        with Query1 do 
          begin 
            close; 
            sql.clear; 
            sql.add('insert into img (imga) values(:imag)'); 
          end; 
        try 
          if FileName<>'' then 
            ParamByName('Img').LoadfromFile(FileName,ftGraphic) 
          else 
            ParamByName('Img') .asBlob:=''; 
          Query1.ExecSQL; 
        except 
          ShowMessage('图片保存出错!'); 
          exit; 
        end; 
      except 
      end; 
    end; 
     
    //读取 
    procedure TForm1.ImageFromDBBitBtnClick(Sender: TObject); 
    var 
      m_jpegstream:tmemorystream; 
    begin 
      with Query1 do 
      begin 
        close; 
        sql.clear; 
        sql.Add('select imga from img'); 
        try 
          Open; 
        except 
          exit; 
        end; 
      end; 
      if (Query1.FieldByName('imga') as tblobfield).asstring='' then 
      begin 
        exit; 
      end 
      else 
      begin 
        try 
        try 
          m_jpegStream:=TMemoryStream.Create; 
          (Query1.fieldbyname('imga') as TBlobField).SaveToStream(m_JpegStream); 
          m_JpegStream.Position:=0; 
          try 
            image2.Picture.Graphic:=nil; 
            image2.Picture.Graphic:=TJpegImage.Create; 
            image2.Picture.Graphic.LoadFromStream(m_JpegStream);  //读Jpeg 
          except 
            Image2.Picture.Bitmap.LoadFromStream(m_JpegStream);   //读Bmp 
          end; 
        except 
        end; 
        finally 
          m_JpegStream.Free; 
          Query1.Close; 
          Query1.UnPrepare; 
        end; 
      end; 
    end; 
      

  3.   

    // 我定义一过程实现你要求的功能。
    procdure Fform1.intoimagefield(var a:tblobfield,var b:tblobfield);
    begin
      a.savetofile('c:\windows\temp\temp.bmp');//根据你库中的图片格式
     b.loadfromfile('c:\windows\temp\temp.bmp');
    end;
    //调用时可看如下。
    如果是table1中的字段‘image'转入table2中的字段'image'中。
    intoimagefield(tblobfield(table1.fieldbyname('image')),tblobfield(table2.fieldbyname('image')));
    table2.post;
    至此,功能实现,具体你可以多试一下。