While dealing with SQL statements, the complexity of these statements tends to grow. Aside from academic examples, the average SQL statement consists of a quite large fields list, some joins, filter criteria listed in the where clause, sorting, and possibly grouping.
For decades, in every programming forum I've been in, I have seen people manually concatenating SQL statements as strings in order to provide values for filter criteria or similar tasks. This is bad for a number of reasons, starting from some evident opening up to SQL injection vulnerabilities, down to possible performance penalties. However, basically, often there is the need to dynamically build (parts of) SQL statements, and FireDAC comes to the rescue with two handy functionalities: parameters and macros.
Parameters are quite a common feature among modern DBMSes and FireDAC correctly provides an interface to access them and populate them with values (as other DAC libraries do);...