怎样将影音文件以二进制的形式上传到数据库中?
 也就是像电影,flash文件以二进制的形式上传到数据库中,并对其进行添加,修改,删除等操作!  请高手帮忙了

解决方案 »

  1.   

    任何文件都可以以文件流的形式存入数据库中二进制的blob类型字段中,添加,删除都可以,修改就不清楚了
      

  2.   

    function BFileToDB(tableName: string; filename: string): boolean;
    var ms: TMemoryStream;
    begin
      if not fileExists(filename) then
      begin
        showmessage('file error or unknown error');
        result := false;
        exit;
      end;
      DM.DSTTEMP.Active := false;
      DM.DSTTEMP.CommandText := 'select * from ' + tableName;
      DM.DSTTEMP.Active := true;
      if DM.DSTTEMP.RecordCount = 0 then
        DM.DSTTEMP.Append
      else if DM.DSTTEMP.RecordCount = 1 then
        DM.DSTTEMP.Edit
      else
      begin
        showmessage('bsf error');
        result := false;
        exit;
      end;
      DM.DSTTEMP.FieldByName('ext').AsString := extractFileExt(filename);
      DM.DSTTEMP.FieldByName('Name').AsString := extractFileName(filename);
      DM.DSTTEMP.FieldByName('bsf').AsString := self.dataBSF;
      ms := TMemoryStream.Create;
      ms.LoadFromFile(filename);
      (DM.DSTTEMP.FieldByName('Data') as TBlobField).LoadFromStream(ms);//Data字段的数据类型为OLE对象
      DM.DSTTEMP.Post;
      result := true;
    end;
      

  3.   

    上面的是添加,删除就执行 dm.CONN.Execute('delete from tablename where ......');便可以实现。要修改的话可以把当前数据重新再添加一遍,把原来的覆盖掉,我没有更好的办法。