如何将一个EXE文件放到数据库里呀?想用的时候又将它还原出来?

解决方案 »

  1.   

    建一个二进制字段,将文件内容全部装进去,再建一个varchar字段,保存文件名,以后调出来存入磁盘.具体用Delphi的二进制字段类型操作.TBlob.LoadFromFile和TBlob.SaveToFile
      

  2.   

    1.建表(用oracle,其它数据库类同)
        create   table   test1   (   id   integer,exe   blob);   
    2.写入:
    procedure   TForm1.Button1Click(Sender:   TObject);   
      begin   
      ADOQuery1.Close;   
      ADOQuery1.SQL.Text:='insert   into   test1   values(:id,:exe)';   
      ADOQuery1.Parameters[0].Value:=1;   
      ADOQuery1.Parameters[1].LoadFromFile('d:\temp\aaa.exe',ftBlob );   
      ADOQuery1.ExecSQL;   
    end;
    3.读出:
    procedure   TForm1.Button2Click(Sender:   TObject);   
          VAR   
          MS:   TMemoryStream;   
      begin   
      MS   :=   TMemoryStream.Create;   
        
      ADOQuery1.Close;   
      ADOQuery1.SQL.Text:='select   id,pic   from   test1   where   id=1';   
      ADOQuery1.Open;   
      Edit1.Text:=IntToStr(ADOQuery1.FieldValues['id']);   
      (ADOQuery1.FieldByname('exe')   AS   TBlobField).SaveToStream(ms);   
      MS.Position   :=0;   
      ms.SaveToFile('d:\temp\bbb.exe');
      MS.Free;   
      end;