Utilizo oracle forms versão 6.0 e oracle 10g.
Tenho duas tabelas, A e B, sendo que tenho um campo cd_chave que liga as tabelas.
O meu problema é o seguinte, se eu aperto F7, depois F8 (consultando os dados das tabelas), e depois eu aperto em um botão, que está em uma toolbar utilizada no local que trabalho, que chama "DO_KEY(CREATE_RECORD)" aparece o erro "FRM-40102 - O registro deve ser informado ou excluído primeiro."
Esse erro não acontece, se eu apenas ficar inserindo registros na tabela A.
* No evento "When-New_Form_Instance" eu chamo uma procedure, "INSERE_REGISTROS" que faz um select, e insere registros na tabela B:
GO_BLOCK('TABELA_B');
FIRST_RECORD;
OPEN C1;
LOOP
FETCH C1 INTO R1;
EXIT WHEN C1%NOTFOUND;
IF :SYSTEM.RECORD_STATUS <> 'NEW' THEN
CREATE_RECORD;
END IF;
:TABELA_B.CD_RESPOSTA := 'N';
:TABELA_B.CD_TRIAGEM := :TABELA_A.CD_TRIAGEM;
:TABELA_B.CAMPO_X := R1.CAMPO_Y;
:TABELA_B.CAMPO_W := R1.CAMPO_Z;
[b] Set_Record_Property(:system.trigger_record, 'TABELA_A', STATUS, QUERY_STATUS);[/b]
END LOOP;
FIRST_RECORD;
CLOSE C1;
declare
id_timer timer;
BEGIN
IF :SYSTEM.RECORD_STATUS <> 'NEW' THEN
CREATE_RECORD;
END IF;
id_timer := create_timer('NOVO_REGISTRO', 1, no_repeat);
exception
when others then
controle_de_msg('ERR', sqlerrm);
END;
(...)
elsif get_application_property(timer_name) = 'NOVO_REGISTRO' then
go_block('TABELA_B');
clear_block(no_validate);
INSERE_REGISTROS;
end if;
Alguma sugestão?