¿Y cual es el error en cada una?
Esta línea:
Código Delphi
[-]
if fModulo.qCaja.FieldByName('estado_caja').AsInteger=0 then
No puede provocar este error:
"SQL Error Column idcaja cannot be null"
Salvo que tengas código en otro lugar (evento, triggers,...) que no estás poniendo aquí.