formulario para atualizar 3 tabelas

(system) #1

Boa tarde, tudo bem???
Estou com 3 tabelas no oracle: - uma contendo a descrição simplificado do material, unidade, dimensões, …

  • outra contendo a descrição completa com 400 caracteres.
  • outra contendo a foto do material.
    Pergunto: como criar um formulario que atualize as 3 tabelas simultaneamente???
    Grato.
    Francesco Molinaro.
(system) #2

Olá Francesco, boa noite…

Você pode adicionar os campos desejados no formulário e utilizar a macro sc_exec_sql() no evento onValidate.

Exemplo:

// Evento onValidate do formulário

if (sc_btn_update)  // ocorre quando o botão 'atualizar' for clicado
{
     sc_exec_sql("UPDATE tabela2 SET descricao = '{descricao}' WHERE material_id = '{material_id}'");
     sc_exec_sql("UPDATE tabela3 SET foto = {foto} WHERE material_id = '{material_id}'");
}
elseif (sc_btn_insert)  // ocorre quando o botão 'inserir' for clicado
{
     sc_exec_sql("INSERT INTO tabela2 (material_id,descricao) VALUES {material_id}, '{descricao}'");
     sc_exec_sql("INSERT INTO tabela3 (material_id,foto) VALUES {material_id}, '{foto}'");
}
elseif (sc_btn_delete) // ocorre quando o botão 'excluir' for clicado
{
     sc_exec_sql("DELETE FROM tabela2 WHERE material_id = '{material_id}'");
     sc_exec_sql("DELETE FROM tabela3 WHERE material_id = '{material_id}'");
}

obs.: coloquei os comandos com base no mysql, não sei se no oracle é igualzinho…

Espero ter ajudado…

Att.
Robson

(system) #3

Obrigado, Robson.
Estou começando agora a desenvolver em scriptcase.
Um abraço.
Francesco.

(Rodrigo Lins) #4

Bom Dia,

Em vários casos, também, é possível utilizar o recurso “Mestre/Detalhe” para criar isto, porém, ele tem um relacionamento 1-N que provavelmente não é o seu caso.
Existe a solução de Robson que seria criar novos campos no formulário e tratar manualmente isto (inserts, updates, etc…) ou uma outra forma seria, de fato, criar 3 novos formulários (cada um baseado na tabela correspondente) e trabalhar com a macro sc_redir e variável global.

A variável global seria para estar passando parametro para o outro formulário (fazer o filtro também) e o sc_redir, para por exemplo, no momento em que incluir (evento onAfterInsert do formulário) um Material ele já ser redirecionado para a Descrição… etc.

Acho que seria uma forma mais simples (por nào precisar fazer inserts, etc) porém pode ser que não fique interessante utilizar uma aplicaçào desta maneira.

Acho que seria mais uma coisa para você analisar…
Rodrigo Lins.