Si vas a utilizar un query, la instrucción para ejecutar un insert, o cualquier otra instrucción que no sea de consulta, se debe de realizar con ExeqSQL, sin open, sin active y sin edit.... simplemente utiliza ExecSQL y debería de funcionar.
Código Delphi
[-]
with tuQuery do
if active then close;
sql.clear;
sql.add('INSERT INTO TABLA1 (CODIGO,NOMBRE,APELLIDOS)');
sql.add('VALUES ('12', 'JUAN', 'SANCHEZ')');
ExecSQL;
end;