Very often queries to a database are not known at the time of application development. A typical example - using a complex grid to display data. Such grid can include all the features that we talked about, namely pagging, sorting and filtering (grouping, we consider separately). In fact, the number of possible queries is so large that you can easily lose control of them. The situation gets worse is that sometimes you have to build queries dynamically. Are you familiar with it?