Bugs que não devem ser transferido para versão 6

Ta haroldo e desde quando a nm avisa alguma coisa, eu estou esperando uma resposta sobre duas solicitacoes que abri na epoca que tinha suporte ha mais de 6 meses hoje nem tenho mais acesso para ver tais tickets …

Acabei de fazer um teste aqui… e ele faz o seguinte

Dados originais (Exemplo)
Nome da Mãe = “Maria”
Nome do Pai = “João”

b Estação 1 [/b]
Localiza o registro

b Estação 2[/b]
Localiza o registro

b Estação 1[/b]
Altera o nome da mãe para “Maria da Silva”

b Estação 2[/b]
Altera o nome do pai para “João Gomes”

b Estação 1[/b]
Salva o registro

b Estação 2[/b]
Salva o registro

b Situação do registro após os eventos[/b]
Nome da Mãe = “Maria”
Nome do Pai = “João Gomes”

Resumindo, o que ficou valendo foram os dados salvos por último, descartando as alterações realizadas pela estação 1.

Agora fica a pergunta, existe uma forma de controlar isso pelo scriptcase??? avisando no momento em que a segunda estação for atualizar o registro, que ele sofreu alteração por outro usuário???

Abs

Foi exatamente o que eu disse.
Eu resolvo isso desenvolvendo uma app de formulário com controle e colocando evento ajax em cada campo para detectar se foi alterado ou não.

Oque eu faço, é algo das antigas do inicio do visual basic, quando se utilizava-se controles do tipo datasource que amarrava o registro do banco ao componentes.

Eu crio um campo na tabela tipo char, com 0 ou 1 entao é simples em um app de grid ao inves de usar a edicao padrao do SC eu coloco um botão do tipo imagem e faço o direcionamento antes de trazer o registro para a tela eu gravo o valor no campo = 1, os proximos que tentarem acessar esse registro ja bloqueio o botao update … até que o form que abriu inicialmente seja descarregado … voltando o valor do campo para 0

Weber, matou a pau a questão… é muito simples dessa forma e garante integridade dos dados, uma função publica anexada nas apps resolve.

Eu não vejo isso como um bug mas também não vejo como um erro, muitas vezes para garantir a integridade de nossa base de dados temos que implementar soluções caseiras, mas para resumir uma forma de não ter este tipo de problema é deixar o processamento de banco ser feito pelo próprio banco com procedures, isso seria perfeito pois aí vc estaria trabalhando com transações identificadas pelo banco, ele trava o registro até o mesmo esteja concluido e somente depois libera.

Me corrijam se estiver errado!

Eu sempre disse que não vejo vantagem alguma em formularios carregando todos os registros (navegacão de registros). Agora além de não ver vantagem, vejo desvantagem. Eu sempre filtro o id da tabela base do formulário com uma comparação com zero ( id = 0), assim o não carrega a tabela inteira.

Também uso o bloqueio do registro em nível de usuário. Ou seja, um usuário (aplicacao) bloqueia o registro que esta trabalhando no momento. Como o amigo disse, é uma técnica dos tempos em que banco algum trabalhava com transação. Uso pq é mais comodo, mas o mysql consegue tratar isso.

e se o usuário fechar pelo Browser?

Vai na gambiarra. A aplicacao que abre o registro testa o bloqueio. Se o registro estiver bloqueado por mais de dez minutos bloqueia para ela e acessa a tupla.

Entào teria que ter um controle de data e hora tb?
E essa espera de 10 minutos? Não atrapalharia o uso do sistema?

Sim mestre Haroldo. É uma gambiarra.

O tempo de 10 minutos foi um exemplo. Tipo se o registro estiver bloqueado por 10 minutos o usuário pode ter fechado o browse, deixando assim o registro bloqueado. Não significa que o registro tem que ficar bloquado por 10 minutos.

Como você tem feito o controle de transação em suas aplicações? Usa o controle do BD?

Algumas telas, as mais concorrentes não uso app de formulário, uso controle.
Verifico os campos que foram alterados e execute o update só neles.

Espero que a versão 6 não venha com essa deficiência!


Assim que sair a versão 6, vou tentar comentar todos os pedidos/bugs passado para nm, antes do lançamento versão 6!

Por que mais que novas funcionalidades, queremos que seja uma ferramenta prática e que realmente atenda as necessidades sem essas deficiências…

Então,

Eu utilizo aplicação formulário mas filtrando pelo registro sempre. Com isso o formulário nunca traz a tabela inteira. Assim não preciso escrever os comandos de commit do banco nem testar alterações nos campos. Vai prevalecer sempre o último update, sem perder campos pois em tabelas do tipo innoDB ocorre um bloqueio de registro automático.

Agora eu gostaria de tirar uma dúvida Haroldo. Suas tabelas no teste que vc fez, onde detectou que perdeu dados de campos são MyISAM?

Innodb. Mas a questão não eh o engine da tabela, nem o commit, ou o tipo de banco de dados a utilizar, quando falo de mult usuario não eh a nivel de registro e sim a nivel de coluna.

Outro bug:
Peguem uma app de formulario, adicionem manualmente um campo do tipo upload de imagem.
Primeiro bug: cliquem em atualizar no formulario. Da erro de update.
segundo: o sc renomeia o arquivo no upload e joga na pasta temp, tentem pegar o nome desse arquivo num evento ajax qualquer, supostamente o campo teria que ter o nome do arquivo, mas esta vazio.

Duro eh fazer o humilde suporte do fabricante entender isso.

O Script Case continua sem gerar o arquivo nm_rodape_css.html quando criamos templates para Rodapé.

O erro ocorre quando usamos o template no rodapé do Filtro de uma aplicação Consulta.

Erro já reportado há mais de ano e não levado em consideração pela NM.

Template Error: filename: file C:/Program Files (x86)/NetMake/v5/wwwroot/scriptcase/devel/conf/grp/BomGosto/tpl/footer/rodape_mensa3/nm_rodape_css.html does not exist.
Halted.

Quando vamos importar um Template / Rodapé também ocorre o erro secular:

file(C:/Program Files (x86)/NetMake/v5/wwwroot/scriptcase/devel/conf/scriptcase/tpl/footer/default/nm_rodape.html) [function.file]: failed to open stream: No such file or directory | Script: C:\Program Files (x86)\NetMake\v5\wwwroot\scriptcase\devel\class\page\nmPageAppTemplate.class.php linha: 178

A NM deve achar bonito a exibição do erro, não faz nada para corrigir.

Na release liberada hoje, o changelog informa a correção desse Bug que relatei aqui, não testei ainda.

Já encontrei tantos bugs novos, que dá para grava uma coletânea de videos NOVOS… assim que tiver um tempinho vou postar novos videos…

Mais tem um que nem precisa gravar vídeo!

Menu = Configurações/Administração em “Valores Padrões”, “BOTÕES DA BARRA DE FERRAMENTAS DO FORMULÁRIO”

Uma idéia muito boa, mais que não funciona!

Aqui no meu sc, os valores padrão não funciona!..

Só eu que que fui premiado?

Alguém mais está com esse problema?

Só eu que que fui premiado?

regis,

não acredito que você consiga receber o prêmio sozinho, por mais que se esforce…

abraços