轮播图1
轮播图2
轮播图3
轮播图4
轮播图5

联系方式

联系电话:15110196166

QQ:826249686

联系地址:北京市海淀区中关村东路18#财智国际大厦c511

网址:http://www.runqihuamei.com


当前位置:首页 > 开发文档 > rhstudio基础模型库 > 数据库模型 > 高级查找(Advanced Find)

高级查找(Advanced Find)

点击次数:更新时间:2020-05-10 20:05:36【打印】【关闭】

高级查找(Advanced Find) - 从数据库表或视图中检索指定条件的记录。 该模型从数据库表(或视图)中检索与特定选择条件匹配的所有记录,并返回多个数据模型对象, 每个数
高级查找(Advanced Find) - 从数据库表或视图中检索指定条件的记录。
该模型从数据库表(或视图)中检索与特定选择条件匹配的所有记录,并返回多个数据模型对象,
每个数据模型对象都包含一条检索到的记录内容。
数据库表/视图由<Records>的数据类型的tableName属性标识(也可以提供<Table>触发器指定表/视图 )。
该模型用来处理复杂的查询情况。 如果需要从表/视图中选择所有记录,
  或特定字段包含完全指定值的记录,请使用<查找(find)>模型。 另外,
  当需要更多复杂的检索条件时,需要使用< Database Query>模型。
了解更多数据插入数据库的方法,请参阅<插入(insert)>。
 
 
触发器(Triggers):
<Match>,<From>,<To>(单记录触发器[非必须]):指定检索的条件。
这3个触发器中的每个触发器的数据类型(如果提供)应与<Records> 退出连接器的数据类型相同(重新调用相同的模型)。
它们的每个非空数据元素指定相应元素的条件值。
作为检索条件 - 仅检索具有<Match>中指定的值的记录,
大于或等于<From>中指定的值,小于或等于<To>中指定的值。
 空的数据元素将被忽略,因此只将值设置为要用作约束的元素。
 如果仅提供一个<Match>触发器,那么就类似于在<Find>模型中通过触发器指定查询条件所实现的查询效果。
<Match>可以指定基于通配符的匹配(在SQL中使用LIKE子句)。
如果数据元素包含“%”字符,则会创建一个LIKE子句。例如,具有值'J'的数据元素'X'创建条件X ='J',
而具有值“J%”的数据素“X”创建如“J%”的条件X。
 
<Filter>(单记录触发器[非必须]):另外一个过滤条件,指定应检索哪些记录。
在最简单的形式中,<Filter>包含对记录中特定字段值的约束。例如。
如果输出是一个带有“Name”,“Family Name”和“Age”的结构,而<Filter>是“Name ='John'AND Age> 21”
 那么该操作仅检索Name字段的值为“John”,Age字段大于21的记录。
技术上,<Filter>包含在SQL“Select语句”的“WHERE子句”中,
但是对于简单的过滤条件不必熟悉SQL就可以实现。
<Filter>中提到的记录字段的名称应该是数据库中的表的字段名称,
其匹配输出数据结构对应数据元素的名称(例如,字段Family_Name对应<Family Name>的内容)。
为了实现更灵活的过滤条件,可以配合使用其他的触发器。
 例如,您可以添加触发器<Minimal Age>,并将<Filter>更改为"age> = $ {Minimal Age}"。
 在这种情况下,该操作仅检索“Age”字段的值至少为大于“Minimal Age”触发器接收的值的记录。更复杂的过滤条件可以是“Age”= $ {My Age} -3 AND Age <= $ {My Age} +3“(在这种情况下,预计会有额外的触发器My Age)。
 
<Start From>(单记录触发器[非必须]):返回记录结果的第一条记录
<Start From>的行为类似于<From>模型,但是它限制了返回的记录,而不是检索到的记录条数。
因此<From>可以减少匹配记录的数量(并相应减少通过<Number of Matches>返回的值),
<Start From>可能只会减少返回的记录数但是<Number of Matches>返回的记录条数不受此条件约束有可能此数字会大于实际返回的条数。
同时该触发器的数据类型(如果提供)应与<Records> 退出连接器的数据类型相同(重新调用相同的模型)。
数据模型中指定的字段值作为数据过滤的条件,同时这些过滤字段必须在<Order By>触发器中同时指定 否则<Start From>触发器过滤无效。
<Order By>存在的排序字段如果在<Start From>触发器的数据模型中未指定相应字段的值则分为两种情况:
1.如果<Order By>中的字段在<Start From>数据模型中都未设置值那么该触发器对查询没有过滤效果。
2.如果<Order By>中的字段在<Start From>数据模型中有任何一个字段没有设定值那么只要其中任意一个未设置值的字段不为空即满足
查询条件。或者未设置值的字段都为空且已经设置值的字段>='设定值'也能满足查询条件。
3.如果<Order By>中的字段在<Start From>数据模型中都设置有值时查询存在问题不建议使用
 
 
<Offset>(单记录数字触发器[非必须]):返回第一条记录之前要跳过的记录数。
这通常是<Start From>的替代方法(虽然可以一起指定,但在这种情况下,<Offset>记录将被跳过,
从<Start From>开始计算。如果没有提供该触发器,则不会跳过记录(相当于<Offset> = 0)。
 
<Backward>(单记录布尔触发器[非必须]):是否返回匹配记录的反向排序记录(sql的"desc"作用一致)。
仅当指定了<Number of Records>时才有效。如果<Backward>存在并且接收到"Yes"值,
 返回反向排序后的<Number of Records>触发器指定条数的记录(而不是返回正向排序(sql的"asc"作用一致)后的<Number of Records>触发器指定条数的记录)。
如果在<Order By>触发器中包含"desc"或者"asc",那么如果同时使用该触发器将使结果出现相反的情况。
 
<Order By>(单记录触发器[非必须]):可选的排序条件,指定返回的数据结构的顺序。
排序条件是以逗号分隔的数据库的表字段名称集合(例如“Age”指定以递增的年龄顺序对返回的记录进行排序)。
如果需要按降序排列,则字段名称后面应该是“DESC”(例如“Age DESC”指定按年龄降序排列;
“Age DESC,Family_Name,name”指定按年龄的降序排序,并且对于每个年龄,
 根据姓氏按字母顺序排列,然后按名字排序。
从sql的实现技术而言,<Order By>是SQL的"Select"语句的"ORDER BY"子句
但是使用模型以后,不需要熟悉SQL就可以进行简单的排序。与<Filter>一样,
<Order By>中提到的记录字段的名称应该是它们在数据库中的名称(例如,Family_Name,对应于每个输出数据结构的Family Name数据元素)。
 
<Number of Records>(单记录数字触发器[非必须]):返回指定数量的记录。
 
<Optimization>(多记录触发器[非必需]):一组指令用来处理一些功能的特定情况(提高性能)的,参数字符串:
"No Number of Matches" - 避免执行额外的SELECT语句来计算<Number of Matches> 退出连接器的值。
"No Position" -避免执行额外的SELECT语句来计算<Position>退出连接器的值。
"No Records" - 避免执行"SELECT语句(因此不会通过<Records>退出连接器输出查询结果)。
 
<Data Source>(单记录触发器[非必须]):要使用的数据源的名称(如果与默认数据源不同)
请参阅连接到外部数据库)。
 
<Table>(单记录触发器[非必须]):要使用的表/视图的名称(如果与数据类型为<Records>的tableName属性不同,
或当<Records>的类型为Map时)。
还支持参数化表(例如,返回表的SQL Server函数)。
 
<Columns>(单记录触发器[非必须]):需要查询的字段,<Records>中对应的表字段。
<Columns>是以逗号分隔的记录字段名称的字符串(当<Records>的类型为Map时,该触发器有效)。
 
<Auto Commit>(单记录布尔触发器[非必须]):指示是否在自动提交模式下与数据库进行交互。
如果<Auto Commit>存在并且接收到"Yes"值,则数据库操作将以自动提交模式执行,
不管任何活动的事务(参见RHStudio中的数据库事务支持)。
 
退出连接器(Exits):
<Records>(多记录退出连接器[必须]):检索到的记录(每个输出项是包含检索到的一条记录的数据结构)。
退出连接器的数据类型应该是具有指定数据库表/视图的名称的<tableName>属性的<Database Record>模型,
该触发器可以定义需要检索的表字段。
或者退出连接器的数据类型也可以是Map,然后<Table>触发器是必需的。
 
<None>(单记录的<空>退出连接器[非必须]):表示没有找到匹配的记录。
 
<Number of Matches>(单记录数字退出连接器[非必须]):与过滤条件匹配的记录数。
计算此数字需要执行一个额外的查询。
仅当存在该退出连接器且未指定"No Number of Matches"优化指令时才执行额外的查询以统计匹配的记录条数,
 
<Number of Records Returned>(单记录数字退出连接器[非必须]):实际返回的记录条数。
 
 
<More>(单记录的<空>退出连接器[非必须]):指示是否有额外的匹配记录(超出指定返回值)。
这在做分页时很有用,
以了解我们是否已经达到数据记录集的结尾(例如,相应地动态地启用或禁用"下一条"或其他多个按钮)。
<Position>(单记录数字退出连接器[非必须]):作为返回结果的第一条记录的索引位置。
索引根据指定的过滤和排序条件计算,
考虑到<Start From>和<Offset>(例如,如果<Start From>未指定,并且<Offset>为20,则<Position>应该为20)。
计算此值需要额外执行其他的查询。
只有存在退出连接器的情况下,并且未指定"No Position"优化指令才执行附加查询。
 
<Output Columns>(多记录退出连接器[非必须]):<Records>中包含的列的名称和类型。
每个返回的值都是一个列描述符结构,其名称和类型是返回的一个字段(当<Records>的类型为Map时)相关。
注意:<Records>和<None>表示两种相互排斥的可能性:
仅当已经检索到至少一个记录时才会激活多记录的<Records>退出连接器;
仅当没有检索到记录时才激活空出口<None>。
数据库高级查找模型.png

 

地址:北京市中关村东路18#财智国际大厦c511  联系电话:010-86398936  邮箱:857749491@qq.com

北京润启华美信息系统有限公司始终致力于IT信息技术的研发与应用

powerd by 润启华美

客服

工作时间

周一至周日

8:00 - 18:00

在线客服

点击这里给我发消息 客服咨询