[QDB] 更新-TQSQLConverter 新增多个属性

【更新内容】

1、新增 PrimaryKeyOnly 属性,如果为 True ,则生成的 SQL 脚本的 where 表达式中将只包含主键相关的字段。

2、新增脚本模板相关的属性:

  • InsertTemplate 用于指定生成插入脚本时的模板,注意插入模板中,使用的是 “字段名.New” 这个宏来代表要插入的指定字段的新值;
  • DeleteTemplate 用于指定生成删除脚本时的模板,注意删除模板中,使用的是 “字段名.Old” 这个宏来代表要删除的记录的某个字段的原始值;
  • UpdateTemplate 用于指定生成更新脚本时的模板,注册更新模板中,使用 “字段名.Old” 来代表字段的原始值,使用 “字段名.New” 来代表字段的当前值(如果相应的字段值未改变,则等值于 “字段名.Old”)。
  • MacroStart 属性用于指定宏定义的起始标记字符,默认为 “{”;
  • MacroEnd 属性用于指定宏定义的结束标记字符,默认为“}”;

上面的三个模板,如果不指定,那么就会使用默认的规则生成脚本,如果指定了,就会按指定的模板来生成脚本。宏的名称不区分大小写,以便和 VCL 中字段相关的规则保持一致。

下面是一个模板的简单的示例:

AConverter.InsertTemplate:='insert into babies (id,name,enabled) values ({id.new},{name.new},1);';
AConverter.DeleteTemplate:='delete from babies where id={id.old};';
AConverter.UpdateTemplate:='update babies set name={name.new} where id={id.old};'

【更新级别】

可选

【特别感谢】

幽灵 的建议

分享到: