Tiago Então continua valendo tudo o que eu escrevi. Remova o primeiro next_record e deve funcionar. Étore Schiavini <mailto:et...@snpti.com.br> et...@snpti.com.br 51 8116.4858 From: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] On Behalf Of Tiago de Assis Pimenta Sent: quinta-feira, 14 de julho de 2011 08:40 To: oracle_br@yahoogrupos.com.br Subject: Re: [oracle_br] [Forms] Quantidade total de registros no bloco - Milton Bastos -
Eu coloquei [Forms] no subjects realmente para ficar claro que era sobre Forms Builder que eu estava falando, mas agradeço da mesma forma ao amigo Duilio pela ajuda. - Duilio Bruniera Junior - Sem problemas cara, muito obrigado pela ajuda. - Chiappa - É isso mesmo que eu preciso, para ser mais expecificio, eu tenho um bloco master e um bloco filho, esse bloco filho é o bloco que eu preciso validar os registros. Nesse bloco eu tenho uma coluna chamada "Tipo" e ela só pode ser de um tipo. Então me pediram para fazer a verificação antes de inserir e antes de atualizar, mas como no pre-insert e no pre-update não posso usar a bult-in go_block e se não me engano a next_record também eu não posso usar, resolvi fazer a validação no on-commit. Se você achar uma maneira mais eficiente para tal, eu agradeceria se me avisasse. - Étore Schiavini - O que eu quiz dizer é o seguinte, se eu estiver inserindo novos registros, não posso fazer a verificação que eu comentei com o Chiappa ali em cima usando um select entende ? Pois eu ainda não tenho esses registros na tabela, por isso * EU ACHO * que para fazer essa verificação, só fazendo um loop no bloco antes mesmo dele gravar os registros na tabela. O commit lá no final é porque eu estou fazendo a verificação no on-commit. Galera, me desculpe se não fui claro de inicio. [ ]s ________________________________ De: Étore Schiavini <et...@snpti.com.br <mailto:etore%40snpti.com.br> > Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> Enviadas: Quarta-feira, 13 de Julho de 2011 18:11 Assunto: RE: [oracle_br] [Forms] Quantidade total de registros no bloco Tiago Só agora que outros alertaram que eu vi que era um bloco de Forms :-) Até agora não entendi o que tu quis dizer com "antes mesmo que esses registros estejam fisicamente no banco" mas vou desconsiderar essa sentença e responder a partir do resto da proposição. “Só que do jeito que está, dá pau se for um registro só.” Sim, porque aquele next_record antes do loop tá sobrando, ele impede o teste de um registro único. Suma com ele e tudo deve funcionar. Estranhei aquele commit antes da última atribuição mas deve fazer sentido no contetxo do teu forms. Abraço Étore Schiavini <mailto:et...@snpti.com.br <mailto:etore%40snpti.com.br> > et...@snpti.com.br <mailto:etore%40snpti.com.br> 51 8116.4858 From: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> [mailto:oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> ] On Behalf Of Tiago de Assis Pimenta Sent: quarta-feira, 13 de julho de 2011 14:57 To: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> Subject: Re: [oracle_br] [Forms] Quantidade total de registros no bloco Eu acho que não, pois acho que vai ser alguma bult-in do forms. Para ajudar a compreender a minha dúvida, vou por o código abaixo: /* Verificando se os tipos de dose são diferentes */ declare v_n_tipo number := 0; v_n_count number := 0; begin go_block('medicamento_protocolo'); first_record; v_n_tipo := :medicamento_protocolo.class_id_tipo_dose; next_record; loop if v_n_tipo != :medicamento_protocolo.class_id_tipo_dose then v_n_count := v_n_count + 1; end if; exit when :system.last_record = 'TRUE'; next_record; end loop; if v_n_count > 0 then msg('Não é permitido Tipos de Dose diferentes no mesmo regime!'); raise form_trigger_failure; else commit; :medicamento_protocolo.tipo_dose := pck_util.fnc_get_descricao_class(:medicamento_protocolo.class_id_tipo_dose); end if; end; Só que do jeito que está, dá pau se for um registro só. [ ]s ________________________________ De: Duilio Bruniera Junior <bruni...@gmail.com <mailto:bruniera%40gmail.com> <mailto:bruniera%40gmail.com> > Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> <mailto:oracle_br%40yahoogrupos.com.br> Enviadas: Quarta-feira, 13 de Julho de 2011 13:49 Assunto: Re: [oracle_br] [Forms] Quantidade total de registros no bloco oh bgrother é isso que voce quer por um acaso? SELECT S.blocks FROM DBA_SEGMENTS S WHERE S.owner='<OWNER>' AND S.segment_name='<NOME DA TABELA>'; Em 13 de julho de 2011 12:41, Tiago de Assis Pimenta <tiagopime...@ymail.com <mailto:tiagopimenta%40ymail.com> <mailto:tiagopimenta%40ymail.com> > escreveu: > ** > > > Senhores, boa tarde. > > Gostaria de saber como faço para pegar a quantidade toda de registros em um > bloco antes mesmo que esses registros estejam fisicamente no banco. Pois > estou rodando um loop para verificar se tem tipos de registros diferente em > uma determinada coluna, mas se tiver só um registro no bloco, não há > necessidade deu fazer tal procedimento. > > Já tentei com o query_hits mas o mesmo traz 0 mesmo eu setando a > propriedade do bloco "Consultar todos os registros" como SIM. > > Abraços > > Tiago Pimenta > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ ---------------------------------------------------------- >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ ---------------------------------------------------------- >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/ ---------------------------------------------------------- Links do Yahoo! Grupos [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]