记录一:常量值插入中文后,数据库该字段(中文)显示乱码
环境:win7(64位)、DataFactory5.6版本(32位)、myodbc5.3.11(32位)
问题:DataFactory执行后,往数据库插入中文字段,该中文字段出现乱码
解决办法:odbc添加数据源时,选择MYSQL ODBC 5.3 ANSI Driver,且连接数据库时,detail中字符集选项默认为空
记录二:同一张表中,字段生成顺序
若一个字段是由其他字段组合成的,则该字段应位于其他字段的下方,晚于其他字段生产,否则会出现错误(生成字段值与其他字段不对应)
Eg.ND为2019,YD为1,RD为1~31的随机数;RQ值为RD10000+YD100+RD
则RQ位置应于ND、YD、RD的下方(否则生成的RQ与ND、YD、RD计算出来的值不对应)
记录三:外部txt文件的引入
(1)右击项目名称选择Insert Create Datatable
(2)选择文件并导入
(3)字段设置,选择Insert value from a data table
其中Retrieval Method方法包括:
Select a record at random
(随机选择)
Select records sequentially
(顺序选择)
Synchronize with other fileds from the same table
(与相同数据表其他字段采用同步方式)
记录四:多张表放在同一个脚本中
多张表放在一个脚本进行数据模拟的时候,会顺序执行数据生成,因此在设置表数据引用时需要注意表顺序。
记录五:设置主从表
(1)右键点击主表,选择Add Child Table
(2)选择子表(PS:一次只能选一张)后,可直接选择主从表需要一一对应的字段
PS:其中Records 1 to 5
是指一个范围,随机生成1到5条数据(并不是指1条主表的数据对应生成5条从表的数据),所以,若是要使主表的一条数据对应生成从表5条数据,则应填入Records 5 to 5
记录六:同一张表中,一次生成多条数据,其中表中B字段的取值是生成的A的求和
同一张表中,一次生成多条数据,其中表中B字段的取值是生成的A的求和,则B字段取值可选择Insert value from an arithmetic expression
,表达式为{f:A}+{f:B}
(PS:B字段option中的Insert sequential values
的start
值应选择0,若start
值选择为1,第一个B取值会等于A+1
)。
PS:在生成第1条数据,B字段未生成但又需要用到时,取的值为Insert sequential values
中的start值;当生成第1条以后,第2条数据的B字段未生成但又需要用到时,取的值为上一条的B字段的值
记录七:两张表中,A表.A字段(一条数据)是B表.B字段(多条数据)的总和
Eg.B表生成12个月份的每月酒店入住人数数据(共12条数据,每个月份1条),A表只需要生成1条该年份的数据,其中该年酒店入住人数为B表中的每月酒店入住人数总和,则A表的酒店入住人数求和为Insert value from an SQL database
SQL语句为:
Select sum(每月酒店入住人数)
From B表
Where ND={f:ND}
记录八:引用{f:VALUE}格式注意
使用Insert value from an SQL database
编辑SQL语句时,引用{f:VALUE}
格式,需注意该格式只适用于VALUE
字段是numeric
格式