Earlier in this chapter, we looked at the concept of scope, which is tied to the ability of the LiveBindings expression engine and helps it deal with specific identifiers (such as constant names, variable names, functions, and other constructs that have a role in the expression). BindSource components can be used to implement a scope for the LiveBindings engine, thus making new identifiers available in expressions.
Let's say you have a TDataSet descendant and you want to show data from the dataset in the UI. What you are likely willing to do is write expressions involving the dataset and a certain UI element. As we mentioned previously, we need to make the dataset available to the expression engine through a specific scope. However, we are not talking about the static properties of the dataset itself.
Here, we need a more dynamic way to inspect the dataset and its specific structure in terms of data fields. Here's where TBindSourceDB comes to the rescue...