项目迭代开发手记--文件分割存储用例的实现过程(1)

2016-02-19 13:22 4 1 收藏

下面是个简单易学的项目迭代开发手记--文件分割存储用例的实现过程(1)教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

摘  要 本文详细描述了在尝试使用极限编程在软件开发中的一个实现例子,在小步迭代开发中逐步的实现用例需要的功能,同时每个迭代都能集成实现的功能。关键字 极限编程 在一次项目开发中我们开发组遇到了一个需求,该需求的要使用的技术是我们所不熟悉的,就是说在开发过程中我们必须逐步的掌握该项技术,同时希望能够尽可能的保持代码有好的结构,因为在不断增加功能的过程中,会让代码逐渐的变得复杂降低可阅读性。 该需求的用例很简单,就是把图档文件保存到数据库中,同时在需要时提取出来显示。但是有的图档文件会比较大,在向数据库提交过程中可能会有性能问题,还有图档文件格式的问题,(.bmp,.Jpeg)小组讨论的时,大家提出了首先要对要保存的数据进行压缩,同时对较大的文件要分割成合适的块,这样提交到数据库中才不会有性能问题。这样提取图档文件过程中就得对分割压缩的数据进行解压和拼接才能获得原始数据,还有就是文件格式的转换问题。该项功能我想对于熟悉的开发人员来说可能很简单,但是由于我们组的开发人员没有类似的开发经验,就不可能在一开始获得优良的设计,只能在不断的开发进程中改进你的设计,在以往的开发中我们尝试过小步迭代开发的好处,就是在不断累积中实现需求的功功能,同时减少过程中的挫折感——你的每一步都很好的实现了需求的功能,还能每日集成你的软件,实时掌握你的开发进度。每次迭代实现认为优先级高的功能。我们认为图档文件的保存和提取在开发中是优先级最高的,我们首先保证可以向数据库提交图档,同时可以提起图档。这样在我们完成这个功能后其它开发组就可以使用这项功能了(虽然会有因为图片太大保存和提取的效率问题,但是它是可以使用的功能了)。我们使用的开发工具是Delphi数据库是Oracle 迭代1:文件以二进制的形式保存到数据库中,然后再以二进制的形式从数据库中提取出来。       通过查找资料后我们决定Oracle数据库使用Long Raw 类型的字段来保存二进制数据,Delphi里面使用TBlobField来把流装载都字段中向数据库提交。本文的例子简化了表的设计和使用简化后的代码 表的设计字段名字段类型字段长度字段说明 FIDNumber 主键 F_NAMEVarChar250文件名称 F_BINARY_DATALong Raw 二进制图档数据          procedure TForm1.Button2Click(Sender: TObject);var  OpenDialog: TOpenDialog;  lFileFullName: string;  lBlobStream: TMemoryStream;begin  lFileFullName := '';       OpenDialog := TOpenDialog.Create(Self);  lBlobStream := TMemoryStream.Create;  try    OpenDialog.InitialDir := extractfilepath(Application.ExeName);    if OpenDialog.Execute then      lFileFullName := OpenDialog.FileName;      if lFileFullName '' then    begin      lBlobStream.LoadFromFile(lFileFullName);      ClientDataSet1.Append;      ClientDataSet1.FieldByName('F_ID').Value := 2;      ClientDataSet1.FieldByName('F_NAME').Value := lFileFullName;      (ClientDataSet1.FieldByName('F_BINARY_DATA')
   as TBlobField).LoadFromStream(lBlobStream);      ClientDataSet1.Post;    end;  finally    OpenDialog.Free;    lBlobStream.Free;  end;end; 这样就可以在向数据库提交图档数据了,这里图档文件先装载成流然后以二进制流的形式提交到数据库中的。提取的方式就是(ClientDataSet1.FieldByName('F_BINARY_DATA')
   as TBlobField). SaveToStream(lBlobStream);这样就完成图档文件的保存和提取功能。由于对该项技术不熟悉实现该功能花了我们3小时时间。在下午下班的时候我们提交了可以使用的保存图档文件的程序。 

来源:http://www.tulaoshi.com/n/20160219/1603999.html

延伸阅读
标签: Web开发
ASP开发中存储过程应用详解|调用,参数,存储,数据库,输出,编译,mycomm,输入,userid,代码 ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过。我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事。对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇...
    立项是软件开发的首要步骤,但常常被开发者轻视。立项主要目的是开发正确的产品,是软件开发成功的第一前提。“良好的开端是成功的一半”,那么错误的开端将是什么样的结局呢?结果可想而知了。我在立项过程中很多思想来源于林锐先生的“软件工程与项目管理解析”一书,在此向我的偶像表示敬意。 一、产品构思、立项调查与形...
标签: Web开发
     我不是一个很有经验的程序员,在做项目的过程中会遇到很多的问题,在数据库中使用分页就是我做项目中遇到的一个问题.我从网上查了很多资料,有很多种方法.但我觉的创建临时数据表是最简单的方法,在我做Membership扩展时发现原来微软也是这样用的,你可一随便打开一个Membership的存储过程看看.    &nbs...
    人们常问:“需求、设计、编程、测试四者究竟哪个重要?” 这个问题不好回答。四者都是软件开发过程中必不可少的环节,光做好其中一个环节并不能产生好的系统,但是做坏了其中任何一个环节,必定对系统产生坏的影响。若站在风险管理的角度讲,也许需求开发与管理是最重要的环节。因为需求是产品的根源,对产品需求的认识是...
    当立项建议经评审通过后,软件公司的机构领导接着会任命项目经理,由项目经理去筹备项目。财务部门、人力资源部门为新团队的组建提供必要的财力和人力资源。 作为以合作的形式开发共享软件,人力和财力的筹备就成为项目组织者一个人要操心的事了。粗略计算一下如果以聘用的形式组建开发团队,普通成员需3人,每人每月工资200...

经验教程

675

收藏

72
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部