Hola.
Date cuenta que el sql que se ejecuta es
Código Delphi
[-]
query1.sql.text:='select max(codigo) AS CONTADOR from lineasventa';
Ahí no devuelve ningún campo que se llame
codigo, mientras que en
Código Delphi
[-]
query1.sql.text:='select * from lineasventa';
devuelve todos los campos de la tabla, que probablemente contendrá
codigo.
Saludos,