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