str:=Tmemorystream.Create;
   str.LoadFromFile(Edit_FName.Text);
   str.Position:=0;   Data_Form.ClientData_ADO.Close;
   Data_Form.ClientData_ADO.CommandText:='select * from file_doc';
   Data_Form.ClientData_ADO.Open;
   Data_Form.ClientData_ADO.Append;
   //Data_Form.ClientData_ADO.FiledByName('mkxh').AsString:=max_file_id;
   Data_Form.ClientData_ADO.FieldByName('MKXH').AsString:=max_file_id;
   TblobField(Data_Form.ClientData_ADO.FieldByName('file_doc')).loadfromstream(str);
   try
     Data_Form.ClientData_ADO.Post;
    // Data_Form.ClientData_ADO.ApplyUpdates(-1);
   finally
     str.Free;
   end;

解决方案 »

  1.   

    你直接试一下看看:
       Data_Form.ClientData_ADO.Close;
       Data_Form.ClientData_ADO.CommandText:='select * from file_doc';
       Data_Form.ClientData_ADO.Open;
       Data_Form.ClientData_ADO.Append;
       Data_Form.ClientData_ADO.FieldByName('MKXH').AsString:=max_file_id;
       TblobField(Data_Form.ClientData_ADO.FieldByName('file_doc'))..LoadFromFile(AFileName);
       Data_Form.ClientData_ADO.Post;可以不用Tmemorystream。
      

  2.   

    多了一个点,更正
    TblobField(Data_Form.ClientData_ADO.FieldByName('file_doc')).LoadFromFile(AFileName);
      

  3.   

    var
      BlobStream: TFileStream;with dmGSPReport.cdsReport do
          begin
            if Active then
              Active := False;
            CommandText := 'SELECT * FROM GSPReport WHERE Type=2';
            Active := True;
            Append;        FieldValues['Name'] := FormReportEdit.edtName.Text;
            FieldValues['Type'] := 2;
            FieldValues['FatherID'] := TypeID;
            FieldValues['Memo'] := FormReportEdit.Memo1.Lines.Text;
            BlobStream := TFileStream.Create(FormReportEdit.edtFile.Text,
              fmOpenRead);        (FieldByName('TemplateFormat') as
              TBlobField).LoadFromStream(BlobStream);
            FieldValues['Ext'] := RightStr(FormReportEdit.edtFile.Text, 3);        Post;
            ApplyUpdates(0);前一段时间写的一段代码,有点乱,但测试过没有问题,用的sql server数据库,保存文件的字段的类型为image,试过text类型的不行