Delphi利用数据库实现文件打包
来源:互联网 发布:大数据金融有哪些风险 编辑:程序博客网 时间:2024/05/19 14:16
以下代码出自http://blog.csdn.net/hellogv/,引用请注明出处!
Delphi利用数据库实现文件打包的基本思路分析:
【1】在Delphi中,把文件读取为文件流,再以流的形式保存在数据库的OLE 对象的字段中;
【2】当要释放文件包时,可以直接读取数据库的OLE 对象字段,另保存为文件。
以下为具体代码的实现过程:
【1】打开Delphi,去到“File”=》“New”=》Application,新建一个应用程序工程;
【2】在Form1新建1个Edit控件(用于输入被打包的文件的文件名),命名为FileName;新建两个Button控件,其一命名为Import,其二命名为Export;新建ADOTable1,新建DataSource1;
【3】打开ACCESS新建一个数据库db1.mdb,只有两个字段,其一为filename(字符,主键),其二为filestream(OLE 对象),最后,就是把程序跟数据库连接起来(这里就不细说Delphi如何连接数据库,其实很简单)。
正式开始编写代码,这里只需要给两个BUTTON控件的CLICK事件写代码即可:
procedure TForm1.ImportClick(Sender: TObject);//这是打包文件的代码,这里只打包一个文件,具体的循环过程就靠你自己搞定了varstream:TFileStream;beginstream:= TFileStream.Create(FileName.Text,fmShareExclusive);ADOTable1.Append();TBlobField(ADOTable1.FieldByName('filestream')).LoadFromStream(stream);//保存文件流ADOTable1.FieldByName('filename').Value:=FileName.Text;//保存文件名ADOTable1.Post;stream.Free;DeleteFile(FileName.Text);end;procedure TForm1.ExportClick(Sender: TObject);//这是释放文件的代码,这里只释放第一个文件,具体的循环过程就靠你自己搞定了varstream:TMemoryStream;beginstream:=TMemoryStream.Create;ADOTable1.First;FileName.Text:=ADOTable1.FieldByName('filename').Value;TBlobField(ADOTable1.FieldByName('filestream')).SaveToStream(stream);stream.SaveToFile(FileName.Text);stream.Free;end;
附:由于文件的打包释放都是用流,因此可以利用流来压缩、加密文件!
- Delphi利用数据库实现文件打包
- delphi 实现数据库读取图片文件。
- delphi 实现数据库读取图片文件
- 利用Delphi实现两层C/S数据库应用程序设计
- Delphi 实现文件从Oralce数据库 Blob 字段的读写
- delphi三层数据库实现
- 利用Gradle实现多包名打包
- 利用SVN实现增量打包
- .:::::利用Delphi实现两层C/S数据库应用程序设计简介 :::::.
- Delphi 利用TStringList 构建简单数据库
- Delphi 利用 SybaseOleDBProvider 连接 SYBASE 数据库
- 利用windows脚本实现Oracle数据库定时导出文件
- 利用windows脚本实现Oracle数据库定时导出文件
- 利用windows脚本实现Oracle数据库定时导出文件
- 利用INI文件实现界面无闪烁多语言切换(Delphi)
- delphi利用ini文件实现界面无闪烁多语言转换
- 利用数据库存取文件
- 利用jenkins+ant实现编译前修改文件和批量打包签名
- javascript入门·向函数传递表单数据和元素(赠送一小技巧) .txt
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数 .txt
- javascript入门系列演示·三种弹出对话框的用法实例 .txt
- js入门·表单详解一(修改表单属性,修改表单元素值) .txt
- VC++中进程间相互通信的多种方法
- Delphi利用数据库实现文件打包
- js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航 .txt
- 怎样使程序只运行一个实例
- TDD简介
- 总觉得自已过分将时间用于细节,写的程序整体上无棱无角
- CodeProject.com上微软BizTalk平台技术文章集锦
- 收集的英语听力网站
- UNICODE编程资料(转贴)
- SAP的SYSTEM的函数列表和代码示例