语句为:
(ADOTable1.FieldByName('test') as TBlobField).LoadFromFile(OpenDialog1.FileName);
ADOTable1.Post;数据库是SQL2000,字段名称TEST,类型varbinary,长度:8000
运行提示'invalid class typecast'

解决方案 »

  1.   

    image:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       if OpenPictureDialog1.Execute then
       Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
       ADOTable1.Append;
       TBlobField(ADOTable1.FieldByName('FImage')).LoadFromFile(OpenPictureDialog1.FileName);
       ADOTable1.Post;
    end;
      

  2.   

    思路:
      1、用image类型
      2、先把文件保存成文件流,然后存入数据库;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      AStream : TFileStream;
    begin  
      if OpenPictureDialog1.Execute then begin
        AStream := TFileStream.Create(OpenPictureDialog1.FileName, fmOpenRead);      
        try
          ADOTable1.Open;
          ADOTable1.Insert;
          TBlobField(ADOTable1.FieldByName('FImage')).LoadFromFile(AStream);
          ADOTable1.Post;
        finally
          AStream.Free;
        end;
      end;
    end;