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

2016-02-19 13:22 1 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小时时间。在下午下班的时候我们提交了可以使用的保存图档文件的程序。 

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

延伸阅读
标签: ASP
  在  网上 讨论 如何 实现 分页  有很多程序,我在这里向大家  介绍一种实现分页的新的方法,使用 存储过程 来实现分页    由于 这段程序写的 比较早,那个时候 还没有 SQL 7,每一个 Varchar 只能 支持 255 个字符,所以 采取了一种比较笨的办法,如果大家有兴趣,请去  http:/...
标签: Web开发
     我不是一个很有经验的程序员,在做项目的过程中会遇到很多的问题,在数据库中使用分页就是我做项目中遇到的一个问题.我从网上查了很多资料,有很多种方法.但我觉的创建临时数据表是最简单的方法,在我做Membership扩展时发现原来微软也是这样用的,你可一随便打开一个Membership的存储过程看看.    &nbs...
    立项是软件开发的首要步骤,但常常被开发者轻视。立项主要目的是开发正确的产品,是软件开发成功的第一前提。“良好的开端是成功的一半”,那么错误的开端将是什么样的结局呢?结果可想而知了。我在立项过程中很多思想来源于林锐先生的“软件工程与项目管理解析”一书,在此向我的偶像表示敬意。 一、产品构思、立项调查与形...
   现在很多网站都提供了站内的搜索功能,有的很简单在SQL语句里加一个条件如:where names like ‘%words%’就可以实现最基本的搜索了。    我们来看看功能强大一点,复杂一点的搜索是如何实现的(在SQL SERVER200/2005通过存储过程实现搜索算法)。    我们把用户的搜索可以分为以下两种: ...
标签: Web开发
Java在编写一些图形化的小程序时,有时也要去存储少量的数据,如果用JDBC来连接数据库,就会使程序速度减慢,而且及不方面,我们可以用Java中的文件来代替数据库保存数据,这样不但可以实现存储的功能,而且不用考虑数据频繁的存取,可以把文件定义成为HTML文件,并将存储的数据以表格的方式显示,这样就可以直接在网页中看到数据,下面是...

经验教程

950

收藏

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