if  DataModule2.ClientDataSet1.FieldValues['bmppicture']<>nil then  //49行
  Image1.Picture.Bitmap.Assign(TBLOBField(DataModule2.ClientDataSet1.FieldValues['bmppicture'])); //50行系统提示:
[Error] Unit1.pas(49): Incompatible types
[Error] Unit1.pas(50): Invalid typecast

解决方案 »

  1.   

    if not(DataModule2.ClientDataSet1.FieldByName('字段名').isNull) then
      

  2.   

    ClientDataSet1没有FieldByName属性。
      

  3.   

    你改成:
    if  DataModule2.ClientDataSet1.FieldValues['bmppicture']<>nil then
    begin
      Image1.Picture.Assign(TBLOBField                    (DataModule2.ClientDataSet1.FieldValues['bmppicture'])); 
    end;
    试一试看行不行
      

  4.   

    补充一点,你可以用流或文件的方法来试一试。比如:
    TBlobField(DataModule2.ClientDataSet1.FieldValues['bmppicture']).SaveToFile(MapFileName);
    Image1.Picture.LoadFromFile(MapFileNam);
    或者:
    TBlobField(DataModule2.ClientDataSet1.FieldValues['bmppicture']).SaveToFile(TempStream);
    Image1.Picture.LoadFromStream(TempStream);
      

  5.   

    if  DataModule2.ClientDataSet1.FieldValues['bmppicture']<>null then  //49行
      Image1.Picture.Bitmap.Assign(TBLOBField(DataModule2.ClientDataSet1.FieldValues['bmppicture'])); //50行
      

  6.   

    TClientDataSet是有FieldByName属性的。判断是否存了图片,使用:
    ClientDataSet.FieldByName('fPicture').IsNull来判断。