zoukankan      html  css  js  c++  java
  • 将二进制数据导出本地文件

      将文件以二进制文件的形式存放到数据库中,需要时再将其导出来,首先看下实现代码:

    方法1:直接以文件形式导出:

    Procedure ExportAttachment(AdoConn: TADOConnection);
    var
      pAdoQry: TADOQuery;
      sSQL, sFileName: string;
    begin
      pAdoQry := TADOQuery.Create(nil);
      pAdoQry.Connection := AdoConn;
      
      try
        sSQL := 'SELECT * FROM TUXKNR';
        if not OpenSQL(pAdoQry, sSQL) then Exit; // OpenSQL:公共函数
    
        sFileName := 'D:	mp	mp.dwg';
        if FileExists(sFileName) then
          DeleteFile(sFileName);
          
        if pAdoQry.FieldByName('TUNR').IsNull then Exit;
        TBlobField(pAdoQry.FieldByName('TUNR')).SaveToFile(sFileName);  // TBlobField /r:DB
      finally
        FreeAndNil(pAdoQry);
      end;          
    end;
    

     方法2:以流的形式导出: 

    Procedure ExportAttachment(AdoConn: TADOConnection);
    var
      pAdoQry: TADOQuery;
      pStream: TMemoryStream;   //r:classes
      pJpg: TJPEGImage;         //r:jpeg
      sSQL: string;
    begin
      pAdoQry := TADOQuery.Create(nil);
      pAdoQry.Connection := AdoConn;
      
      try
        sSQL := 'SELECT * FROM TUXKNR';
        if not OpenSQL(pAdoQry, sSQL) then Exit; // OpenSQL:公共函数
          
        if pAdoQry.FieldByName('TUNR').IsNull then Exit;
    
        pStream:= TMemoryStream.Create;
        pJpg := TJPEGImage.Create;
        try
          TBlobField(pAdoQry.FieldByName('TUNR')).SaveToStream(pStream);
          pStream.Position := 0;
          pJpg.LoadFromStream(pStream);
          imgSign.Picture.Assign(pJpg); // imgSign:图片控件(为了显示效果)
        finally
          pJpg.Free;
          pStream.Free;
        end;
      finally
        FreeAndNil(pAdoQry);
      end;          
    end;
    
  • 相关阅读:
    MyISAM 和 InnoDB 索引的区别
    iOS crash日志
    。。。
    redis的缓存测试
    job测试
    笔记
    Android获取启动页面Activity方法
    UI自动化框架-一个小demo
    mitmproxy-java 的尝试
    monkey
  • 原文地址:https://www.cnblogs.com/hachun/p/4434711.html
Copyright © 2011-2022 走看看