首页 > 其他分享 >delphi FireDAC中的动态参数,宏参数,宏指令,宏变量(:!&{id})(不建议深入学习)

delphi FireDAC中的动态参数,宏参数,宏指令,宏变量(:!&{id})(不建议深入学习)

时间:2023-02-07 15:56:23浏览次数:51  
标签:物料 AsRaw delphi FireDAC TFDQuery 参数 where id

宏参数 &

第一步: 我们先在TFDQuery组件中写个SQL模板,内容为(不要点[执行]或者active,不会成功的):

SELECT &Fields FROM &Table  &WhereWords

上面一共使用了三个宏参数,它们分别表示 字段(s),表名,以及条件语句.TFDQuery组件下的Macros宏属性,会自动添加以上三个参数(有几个就建几个)

 第二步,调用.参考下面的举例,你甚至可以写出更复杂的多表联合查询,分组查询等.

procedure TForm1.搜索Click(Sender: TObject);
begin
  with FDQuery1 do
  begin
  //关闭
    Active := False;
  //设置动态参数 ,下面的赋值语句,等价于: MacroByName('(你设置的参数名)').AsRaw :=  XXX
    Macros[0].AsRaw := '物料代码,物料名称,规格型号,参考库存';//注意这里是可以添加多个字段的.  等价于 MacroByName('FIELDS').AsRaw:='xxxx';
    Macros[1].AsRaw := '物料信息';  //等价于 MacroByName('TABLE').AsRaw:='xxxx';
    Macros[2].AsRaw := 'WHERE 参考库存>0 AND 物料代码 like ' + ('%' + dxBarEdit1.Text + '%').QuotedString;    //等价于 MacroByName('WHEREWORDS').AsRaw:='xxxx';
  //激活 Active := True; //下面这两句看情况用 IcxCustomGridDataController(cxGrid1DBTableView1.DataController).DeleteAllItems; //CXGRID删除所有字段 IcxCustomGridDataController(cxGrid1DBTableView1.DataController).CreateAllItems(False); //CXGRID创建所有字段 end; end;

说白了,它就是在TFDQuery组件中先写个SQL模板,然后后期再完善这条SQL语句,使它能正常工作!

效果:

 

-------------------动态参数( : )------------------------------

SELECT 物料代码,物料名称 FROM 物料信息 where [物料代码] =:WHEREWords    //注:有些数据库对中方字段不好友的情况下,需要加中括号

 说明:

1.这个动态参数只能在where子句中使用(就我目前的认知,欢迎大佬指正.因为网站的资源太少了)

 

 

2.只适用于 where  XXX= :XXXX  这种格式,不能像宏参数一样拼接字符串

 

3.不用加引号(QuotedString)  ,NND就这个特性,玩得我不要不要的,一度怀疑自己写用法有问题!!

 

4.如果不是初次设置动态参数,你最好再确认一下params里面的参数是否对应得上,因为TFDQuery组件修改过后,里面的内容会变动.或者这样,先把params里的数据清空,然后双击打开TFDQuery组件,再修改,确定.这样就保证不会有问题了.

 

 

调用:

procedure TForm1.搜索Click(Sender: TObject);
begin
  with FDQuery1 do
  begin
  //关闭
    Active := False;
    Params[0].Value := dxBarEdit1.Text;
//    Params.ParamByName('WHEREWords').Value := dxBarEdit1.Text; //与上面一句等价
    Active := True;
  //下面这两句看情况用
    IcxCustomGridDataController(cxGrid1DBTableView1.DataController).DeleteAllItems;
    IcxCustomGridDataController(cxGrid1DBTableView1.DataController).CreateAllItems(False);
  end;
end;

 

宏指令{id}

 这个指令适用于字段上面,比如下面这条SQL

SELECT  物料代码,物料名称,参考库存 FROM 物料信息   where [物料代码]= :WHEREWords

有些数据库要求字段要加单引号,有些数据库要求加双引号,有些则不要加引号........如果你不了解的话,直接写成下面这样,包你没问题(事实上这种情况很少)

SELECT {id 物料代码 },{id 物料名称},{id 参考库存} FROM 物料信息 where 物料代码= :WHEREWords

FireDAC的宏指令,按功能大致上分上五种:字符宏,数值宏,日期宏,系统宏,转换宏 这些文档可能只有在官网才能找到了.只能说,能用,但基本上不会用(想用,但不会用; 会用,但有其他更好的方案),所以网上这方面的资料是相当少的!

标签:物料,AsRaw,delphi,FireDAC,TFDQuery,参数,where,id
From: https://www.cnblogs.com/yoooos/p/17097465.html

相关文章

  • MySQL配置参数
    配置参数解释:[client]#设置字符集default-character-set=utf8mb4#设置端口号port=3306#设置socket连接文件位置socket=/home/mysql/data/mysqldata1......
  • django后台定制化展示参数
    list_display 可显示的数据库字段 list_display=['id','name']list_filter 右边栏过滤器 list_filter=['name']search_fields 可根据什么搜索 search_fields=['name......
  • nginx通过参数代理到其他站点
    http{includemime.types;default_typeapplication/octet-stream;resolver8.8.8.8;##Nginx0.6.18以后的版本中启用了一个resolver指令,在使用变量来构造某个server......
  • mybatis的xml文件的传入参数不同的写法
    1、如果是传入多个字符串的参数。parameterType="java.lang.String"<selectid="getMaxNum"parameterType="java.lang.String"resultType="java.lang.Integer">se......
  • 我常用的delphi 第三方控件
     有网友问我常用的控件及功能。我先大概整理一下,以后会在文章里面碰到时再仔细介绍。     DevexpressVCL这个基本上覆盖了系统界面及数据库展示的方方面面,......
  • delphi FireDAC学习笔记
    以下内容均摘转载于【麦麦提敏】:https://www.cnblogs.com/karkash/   第一章 FireDAC数据库开发笔记 开发数据库应用应用程序第二章 FireDAC数据库开......
  • Maven常用参数及其说明
    Maven常用参数及其说明-h,--helpDisplayhelpinformation-am,--also-make构建指定模块,同时构建指定模块依赖的其他模块;-amd,--also-make-dep......
  • Knn-Python网格化搜索超参数及数据归一化处理
    #将数据分为测试集和训练集fromsklearn.model_selectionimporttrain_test_splitX_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_st......
  • 天天都接触的以太网接口,你知道有哪些类型和参数吗?
    新的一年新的征程新的课程开班等你来学!以太网接口简介以太网接口是一种用于局域网组网的接口,包括:以太网电接口、以太网光接口。为了适应网络需求,设备上定义了以下几种以太网......
  • JVM参数:带你认识-X和-XX参数
    摘要:JVM参数分为三类:标准参数、非标准参数(-X参数)和高级选项(-XX参数)。本文主要为大家讲解-X参数和-XX参数。本文分享自华为云社区《JVM运行参数之-X和-XX参数》,作者:共饮一......