Galera preciso de uma ajudo por favor:
Tenho um campo no forms que preciso validar com algumas informaçoes. Dependendo desta validaçao eu preciso inserir alguns dados em uma outra tabela.
Já tentei usar o When_Validate_Item e o Post-Change, mas ambos dão a mensagem de uso de Commit restrito dentro delas.
Tentei tambem fazer uma procedure dentro do proprio forms que seria chamado dentro da When_Validate mas tambem dá erro no Commit;
Como posso fazer isso?
obrigado,
Marlon
Commit dentro do When Validate
-
- Rank: DBA Pleno
- Mensagens: 248
- Registrado em: Sex, 06 Fev 2009 3:02 pm
- Localização: ERECHIM - RS
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Olá Marlon.
Da para fazer assim:
No When_Validate_Item crie sua validação normal e cria uma Progan_Unit com nome (Insere_tab) para inserir os dados nas tabelas.
Por exemplo:
If :bloco.campo is null then
--> chama a progran unit
Insere_tab;
else
--> não faz nada
null;
end;
Espero ter ajudado.
Abs.
Da para fazer assim:
No When_Validate_Item crie sua validação normal e cria uma Progan_Unit com nome (Insere_tab) para inserir os dados nas tabelas.
Por exemplo:
If :bloco.campo is null then
--> chama a progran unit
Insere_tab;
else
--> não faz nada
null;
end;
Espero ter ajudado.
Abs.
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Outra coisa.
Para não mostrar mensagem de erro na hora do commit faça isso:
Abs..
Para não mostrar mensagem de erro na hora do commit faça isso:
VLEVEL:=:SYSTEM.MESSAGE_LEVEL;
:SYSTEM.MESSAGE_LEVEL:=25;
commit;
:SYSTEM.MESSAGE_LEVEL:=VLEVEL;
-
- Rank: DBA Pleno
- Mensagens: 248
- Registrado em: Sex, 06 Fev 2009 3:02 pm
- Localização: ERECHIM - RS
Olá Douglas,
justamente. Eu tentei fazer uma program_unit conforme abaixo, mas quando passa pelo When-validate-item dá a mensagem de uso restrito de commit dentro da when-validate-item.
Por enquanto eu fiz a mesma procedure direto no banco e então faço a chamada dela dentro do forms e dai funciona.
Mas fazer a procedure dentro do proprio forms continua dando erro:
------------
PROCEDURE INSERE_PENDENCIAS (P_BATCH_ID IN NUMBER,
P_BATCH_NO IN VARCHAR2,
P_ITEM_ID IN NUMBER,
P_ITEM_NO IN VARCHAR2,
P_QTDE IN NUMBER)IS
BEGIN
Begin
Insert into pcn_apontamento_sa_unallocated (BATCH_ID,
BATCH_NO,
ITEM_ID,
ITEM_NO,
UNALLOC_QTY)
VALUES (P_BATCH_ID,
P_BATCH_NO,
P_ITEM_ID,
P_ITEM_NO,
P_QTDE);
Commit;
End;
END;
justamente. Eu tentei fazer uma program_unit conforme abaixo, mas quando passa pelo When-validate-item dá a mensagem de uso restrito de commit dentro da when-validate-item.
Por enquanto eu fiz a mesma procedure direto no banco e então faço a chamada dela dentro do forms e dai funciona.
Mas fazer a procedure dentro do proprio forms continua dando erro:
------------
PROCEDURE INSERE_PENDENCIAS (P_BATCH_ID IN NUMBER,
P_BATCH_NO IN VARCHAR2,
P_ITEM_ID IN NUMBER,
P_ITEM_NO IN VARCHAR2,
P_QTDE IN NUMBER)IS
BEGIN
Begin
Insert into pcn_apontamento_sa_unallocated (BATCH_ID,
BATCH_NO,
ITEM_ID,
ITEM_NO,
UNALLOC_QTY)
VALUES (P_BATCH_ID,
P_BATCH_NO,
P_ITEM_ID,
P_ITEM_NO,
P_QTDE);
Commit;
End;
END;
- madmax
- Rank: DBA Pleno
- Mensagens: 293
- Registrado em: Qua, 13 Dez 2006 5:02 pm
- Localização: São Paulo
- Contato:
________________________________
Douglas - Madmax.
Douglas - Madmax.
Olá Marlon,
Eu faço procedure dentro de forms com insert e update sem problemas com esse esquema que passei:
1º Você de cria a variável
VLEVEL NUMBER;
2º Você deve colocar assim para não aparacer a mensagem de erro no commit;
VLEVEL:=:SYSTEM.MESSAGE_LEVEL;
:SYSTEM.MESSAGE_LEVEL:=25;
commit;
:SYSTEM.MESSAGE_LEVEL:=VLEVEL;
Espero ter ajudado.
abs.
Eu faço procedure dentro de forms com insert e update sem problemas com esse esquema que passei:
1º Você de cria a variável
VLEVEL NUMBER;
2º Você deve colocar assim para não aparacer a mensagem de erro no commit;
VLEVEL:=:SYSTEM.MESSAGE_LEVEL;
:SYSTEM.MESSAGE_LEVEL:=25;
commit;
:SYSTEM.MESSAGE_LEVEL:=VLEVEL;
Espero ter ajudado.
abs.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes