当前位置:C++技术网 > 资讯 > 工作日记:数据库管理工具实现全面总结(四次重写代码)

工作日记:数据库管理工具实现全面总结(四次重写代码)

更新时间:2015-06-25 15:12:17浏览次数:1+次

2013年9月17日  星期二  晴 

    今天上午,帮王总搬了一下沙发,楼上楼下的搬。办公室这么多人,而只叫我们C++组的,这是什么意思呢。我们还真是公司的核心啊,技术当然我们是核心,这种苦力帮忙也找我们,真是无语。当然,这不是抱怨帮忙的事情。我还是很愿意帮忙的,不过,这好像不应该是我们的工作哦。当然,也是他们对我们经理熟吧,然后自然而然就是我们了呗。当然不是来记录此事,就是顺便记录一下今天上午的工作。主要还是下面的技术的问题。
    直到昨天,虽然中途帮经理处理一些事情,包括制作图标,测试他的软件,等等,但是还是一直在不断的编写代码,所以也完成了基本代码的编写。期间,经历了四次重大改写。第一次就是最原始的做法:将数据一条条取出来,一条条添加到列表控件。这是没考虑到后来的增删改数据的功能,只是实现查询的功能。然而,朱念的建议让我重新改写了这个。第二次就是转存方式:首先将表的所有数据查出来,存放。然后再一次性写入控件中显示。经过多次测试,查询就没有问题了。接着就是增删改数据的功能。但是有一个问题,那就是每个方法都是用单独的函数来写的,多个函数有很多地方是相同的代码,写起来繁琐。所以又重写了一次。每次重写会将整个结构全部整理一遍,将新的思想应用其中。第三次重写:函数封装。这次重写是很重要的。为了不将以前的代码毁掉,拷贝了一份项目,然后再进行改写。这样也是防止出现意外,可以恢复项目。函数封装做到了强内聚低耦合,这样,每个函数都可以独立运行,只要传入的参数符合,就可以正确的运行。这是一组数据库查询函数封装,本身就是基于ADO的,这就是二次封装。这样封装好后,然后对整个项目进行重新整理,做好后,代码看起来简洁多了。思路也很明确。运行查询也可以完全通过。然后在写代码时,原来的思路就是将连接数据库和操作数据库的函数分离开,每次操作时都要先连接。操作完后自动释放连接。不过在经常出现操作的地方,会有很多次连接数据库函数要写,这样看起来又繁琐了,因而进行了第四次重写。第四次重写:将连接数据库封装到操作内部,用一个连接数据库的参数结构体来传递参数。之前这样做就是不想参数太多,不过后来想起了结构体,然后就将一组参数分类封装到一个结构体,这样就减少了参数的个数。同时也可以将两个函数封装到一起。这样,操作函数就可以真正独立了。需要查询就直接用查询函数就行了,连接和释放在函数内自动执行。原始数据和修改后的数据都用一个独立的vector容器装。需要被修改的变量就使用引用进行传递,不需要的且很小的变量就直接传递变量。而修改表直接在表中进行,修改完后进行一次性提交,而提交时只对最后的表的数据进行检查比对,看是否被修改。修改了就进行提交。提交前将数据库中的数据清空,然后批量插入,如果插入失败,则用原始数据恢复。整个项目思想就是这样的。
    到昨天为止,基本代码就实现完毕了。但是现在在数据提交方面还有问题。所以主要就是将问题调试好就基本实现了通用数据库编辑的功能。在最近几天主要就是进行调试和优化。完成后就进行数据库的分类导出和导入。
    今天上午的调试成果有:

已修复的问题
1.插入行时插入的位置不对,因为原先没有对最大行号进行保存。
    插入的位置不对,是因为原先没有对最大行数进行保存,然后每次获取最大行号实在插入时进行的,所以就始终是同一个位置,而不是设想的末尾插入。
2.插入时使用默认的初始化数据,因为没有获取列表的数据类型。
    原先都是初始化为0.但是考虑到类型问题,初始化的内容应该不同,所以应该按类型初始化一个显眼的值。原先设置背景色效果不太好。在按数据类型进行数据初始化时发现数据表类型查询函数没有使用导致在判断列数时提示越界,修复了这个错误。而这个类型获取的是数据库中的类型,然后就进行相应的初始化。
3.单击双击使列表焦点失去而使列表选择自动跟踪失效。
    在双击时将焦点设置为了编辑框。编辑完后,双击非单元格能隐藏编辑框,单击其他单元格能隐藏编辑框。但是双击效果不好,所以取消启动编辑框时设置编辑框焦点。这样除非真的要编辑,单击是就会自动设置焦点。这样,未进入编辑状态,单击非单元格区域就可以隐藏编辑框,并且单击其他单元格是鼠标热跟踪和单击都是可以的。
4.回车键只是默认连接,取消默认按钮,通过重写基类的void OnOK()函数就可以了。原先设置为连接按钮,但是连接完后在编辑时习惯上是用回车键确定的,这样就会导致重新连接数据库导致编辑的东西丢失。现在取消连接为默认按钮时按回车键会直接退出程序。这是因为基类的OnOK函数的作用。之前就是因为这个所以才设置默认按钮为连接。现在重写这个函数将其覆盖,将回车键用作完成编辑。
5.启动软件的焦点TAB不在第一个编辑框中,通过将资源文件的控件出现顺序改变即可调整位置。或者按Ctrl+D键就可以显示索引顺序,然后依次点击标签,从一开始依次按点击的顺序设置