Come mai non usi la notazione seguente?
codice:
Query.FieldByName('NOMECAMPO').AsInteger := MyIntegerValue;
P.S.: devi andare in Edit all'interno del ciclo e spostarti con un Next.

Ciao!