hola, no es necesario hacer un open y luego un execsql porque es practicamente lo mismo, y estas haciendo un close luego de abrir:
Código:
Query.Close;
Query.SQL.Clear;
Query.SQL.Text := 'Select Producto from Productos order by Producto asc';
Query.Open;
Query.first;
if not Query.eof then
Begin
Combo.Items.Add(Query.Fields[0].AsString);
Query.next;
end;
Saludos.