Opa,

Valeu pela dica!
Mas apesar de stored procedures e functions ajudarem na performance, não
ajudam em nada no tempo de desenvolvimento ;D

O código em Python é bem mais fácil de desenvolver, escrever e ler do que
código SQL. Além disso, não tenho problemas de performance para esta
aplicação, pois a edição dos dados será feita por 1 pessoa e apenas
ocasionalmente, portanto a relação entre ganho de desempenho vs tempo de
desenvolvimento não vale a pena.

Mas com certeza se fosse uma aplicação com diversos acessos concorrentes de
escrita/atualizações seria bem mais interessante usar functions.

[]'s

--
Paul Eipper


Em 09/02/07, Fernando Paiva <[EMAIL PROTECTED]> escreveu:

  Acredito ser mais fácil, mais produtivo, mais seguro e, menos sujeito a
problemas de performance se você fizer isso no próprio SGBD, usando
"Functions".
Com script python, daria para fazer isso tranquilamente, mas antes você
precisa dar um select no banco, pegar os valores e comparar com suas
variaveis causando problema de performance.
No seu algoritmo ficaria assim:
informacoes para o script python -> 1 select ZSQL retornando informacoes
para o script python -> compara variaveis com o return do select no
script python-> retira as que naum foram alteradas -> ZSQL grava as
alteradas

Agora se fizer isso no próprio banco é a function criada que irá fazer
todo o processamento para você e retornar o resultado.
Com isso quem faz todo o processamento é o próprio SGBD, e não o Zope. É
como os antigos Client/Server da vida.
No meu algoritmo ficaria assim:
informacoes para script python -> ZSQL que envia as informacoes para a
function no SGBD -> function que compara/grava no SGBD -> retorno para
script python

[]'s
Fernando Paiva

Paul Eipper escreveu:

>
> Olá!
>
> Estou fazendo um formulário para atualizar os dados no banco de dados.
> O form passa as alterações para um script Python que por sua vez deve
> chamar os métodos ZSQL adequados.
>
> O problema é que não estou conseguindo flexibilizar os métodos ZSQL
> como eu queria.
>
> Algo assim:
>
> A pessoa altera os campos nome e endereço em uma tabela com diversos
> campos. Eu queria fazer a comparação no Python para ver que estes
> campos foram alterados e mandar o ZSQL alterar somente eles, algo
> assim:
>
> orig = dados do formulário originais
> dados = dados novos
>
> for key in orig.keys():
> if not dados[key] == orig[key]:
> dados['campo'] = key
> context.zsql_update_campo(dados)
>
> Mas não consigo fazer um ZSQL que faça UPDATE no campo variável ali.
> Alguém tem alguma idéia?
>
> Algo como:
> UPDATE tabela SET <dtml-var campo> = <dtml-sqlvar <dtml-var campo>
> type=string>
>
> Mas acho que não funciona assim, heh.
>
> A alternativa de ter um ZSQL para cada campo é horrível e, portanto,
> impensável :-P
>
> --
> Paul Eipper
>
>


_______________________________________________________
Yahoo! Mail - Sempre a melhor op��o para voc�!
Experimente j� e veja as novidades.
http://br.yahoo.com/mailbeta/tudonovo/

Responder a