Does not work, know because I've tried that approach in the past, and retried your code and it does nothing. (outside of procedure, which is the important part),
What do you mean with "not working"?
The TField fields are not linked to the fields of your query?
When do you try to do the binding?
Btw, FieldByName create already an exception if the FieldName is not found. To prevent that use FindField instead.