I observed something last week that I did not expect, and will describe below. I am curious as to why this happens. Is it something internal to the TDataSet class, an artifact o
Cary I think I've found a solution for this problem. Instead of using VCL wrapper Fields we need to use an internal Fields property of the Recordset COM object.
Here is how it should be referenced:
qry.Recordset.Fields.Item[0].Value
Those fields are NOT affected by the behaviour you have described earlier. So we can still refer to the fields by their index.
Test this out and tell me what was the result. It worked for me.
Edit:
Of course it will work only for ADO components, not for the TClientDataSet...
Edit2:
Cary I do not know if this is answer for your question, however I've been pushing folks on the embarcadero forums and Wayne Niddery gave me quite detailed answer about all this Fields movement.
To make a long story short: If you define your columns in TDBGrid explicitly, field indexes are not moving! Have a bit more sense now, hasn't it?
Read full thread here: https://forums.embarcadero.com/post!reply.jspa?messageID=197287