自定义“TB_定位访问”子类
在很多应用中,经常需要通过某个“特征值”从给定的数据对象(前台的数据集或后台的物理表)中得到一条(或一组)满足约束的记录,并在此基础上实现某种给定的后续功能,“TB_定位访问”就是要以最简洁的操作并经过标准化的封装设计实现这一系列的连续动作。
4.3.1.1 命题提出
对数据库的访问是实现过程中必不可少的实现过程,由于物理表可能是个庞大的记录集合,要想从中找到某个需要的目标记录并不是件容易的事。一般会通过某些事先知道的“特征值”并形成恰当的逻辑表达式,然后再通过逻辑条件达到记录搜索的目的。在项目的设计过程中,类似的数据方位需求太多了,所以就有必要封装一个专用的控件类来支持这种普遍存在的操作模式。
由于目标对象可能不同、访问方式不同、对速度的关注程度不同、得到数据后的处理方式不同等,我们首先要分析需求在应用场景中的表现形态与实现目标。
1)特征值与搜索方式:
1.使用的数据意义会随机变化,如助记码、编号、名称等;
2.执行搜索的方式会有所不同,如左匹配、精确匹配、模糊查找等。
2)关心的侧重点的要求不同:
1.关心反映速度,比如超市的收银台系统对速度就比较关心;
2.关心查找范围,在特征值模糊不清时对识别范围与匹配方式会更感兴趣。
3)搜索结果所存在的可能性:
1.对应的记录不存在:可能会导致操作的重复或改变操作逻辑等不同的后果;
2.记录唯一:操作目的达到;
3.一条以上的记录集:一般会导致记录选择的操作,可能从中选一,也可能从中选出一组。
4)实现数据方位的目的性:
1.通过特征值把指针定位到当前数据集中的一条记录,并作为操作对象;
2.通过被访问的数据刷新屏幕上的一个或一组控件,为操作员提供引用环境;
3.同步刷新其他可能存在的关联关系的数据集;
4.通过得到的数据集改写另外一个数据集或是插入到另外一个数据集。
5)数据源对象的类型不同:
1.本地化的数据集DateTabel;
2.Grid数据容器DataGridView。
这里提出的每个问题一般不会独立存在,所以不能进行粒度级别更小的封装,因为这些需求经常会以相关、连续的组合形态出现。因为命题所涉及的变化因素较多,所以每个问题的解决都需要“自定义属性”的配合,才有可能满足适应性方面的要求。
提示:我们可以把上述问题分解成两个不同的层次,一个层次以“定位访问”为实现目标,它所派生的子类“定位插入”则会在此基础上提供后续的数据处理过程。
4.3.1.2 设计构思
这个构思的路径较长,叙述起来比较麻烦,不便于理解。我们可以给出几个应用中的实际命题来说明这个设计所要达到的目的。
1)在维护或查阅大数据量的数据集时,希望能够通过简约的特征值快速实现指针定位;
2)在创建一张往来票据的时候,希望快速查阅往来法人并确定对方单位,同时需要用法人数据刷新屏幕上的相关的控件。
这个控件的设计主题大约包括四个构思阶段:
1)接收录入值:分析录入值的特征字,确定数据访问的相关参数与实现方式;
2)数据访问:根据录入的特征值及确定的方式实现对参照物理表的访问;
3)处理返回值:根据返回的记录数确定处理方式,最终得到其中一条记录;
4)实现操作目的:用得到的数据进行记录定位或数据刷新。
因为该控件继承了“ITF_绑定”接口,所以同样能够与字段实现绑定,还能够支持数据录入的有关功能。
分享到:
相关推荐
B27A_Fortis_Flash_512Gb_1Tb_2Tb_4Tb_Async_Sync_NAND_Datasheet
海思HI3519AV100LPDDR4TB_VER_B_PCB官方参考设计,转Altium Designer版本
资源来自pypi官网。 资源全名:tb_nightly-2.2.0a20200217-py3-none-any.whl
资源分类:Python库 所属语言:Python 资源全名:tb_nightly-2.7.0a20210810-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
K3 V21.6.14,,K3官方固件
撤出= tb_optparse(OPT,阿格列斯)是一个广义的期权分析器工具箱函数。选项是一个包含名称和选项的默认值,而阿格列斯是细胞数组的选项参数,通常它来自VARARGIN。它支持选项具有赋值值、布尔值或枚举类型(字符串...
python库,解压后可用。 资源全名:tb_nightly-2.4.0a20201027-py3-none-any.whl
CREATE TABLE `tb_spec_param` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', `cid` bigint(20) NOT NULL COMMENT '商品分类id', `group_id` bigint(20) NOT NULL, `name` varchar(256) NOT NULL ...
资源分类:Python库 所属语言:Python 资源全名:tb_nightly-1.14.0a20190521-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
leyou.sql 完整数据库+tb_spec_group+tb_spec_param 直接数据库运行sql文件或使用记事本打开文件复制命令
tb_nightly-1.15.0a20190825-py3-none-any.whl
INSERT INTO tb_work_day(id, work_day, week_num, work_day_type) VALUES ('20211001', '2021-10-01', 5, '1'); INSERT INTO tb_work_day(id, work_day, week_num, work_day_type) VALUES ('20211002', '2021-10-02...
全国省市区字典表
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:tb_nightly-0.4.0a0-py2-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
配合博客使用,http://blog.csdn.net/zyq527758142/article/details/48574929
资料分享optimizationtoolboxUsersGuideforR2013b-optim_tb_old.pdf 本帖最后由 wereineky 于 2014-1-18 20:25 编辑 matlab官网提供的优化工具箱 用户手册,对应最新2013b版本,讲解的很详细,比查看help文档...
这是2019年05月28号收集的,最新全国行政区域编码数据,数据库是mysql的,区域编码精确到乡镇街道
2020年中国各省市县地区代码(行政代码) mysql数据库 sql版 可以一键创建数据表,导入数据库
说一下字段含义 areacode:区划代码 areaname:地区名称简称 haschilder:是否含有子级 areaallname:地区名称全称 parentcode:父级区划代码(省级的父级为000000) shengcode:地区所在省的区划代码 ...
tpyrced_tb_client_log_dm.sql