Há o comando dtml-let que define uma variável. Outra possibilidade seria chamar o insert direto sendo que sem definir variável x INSERT INTO telefone (id, idpessoa, numero) VALUES (0,chamaa função
type=int>,<dtml-sqlvar numero_telefone type=int>); Outra seria colocar o valor dessa função num request ou contexto e pegar no próximo componente a se exeutado via call. Abraços TOM 2007/1/18, Paul Eipper <[EMAIL PROTECTED]>:
Olá, Preciso pegar o último ID inserido ou atualizado em um ZSQL Method para que eu possa usá-lo em outras tabelas relacionadas. Existe essa possibilidade usando-se DTML ? Como fazê-lo? O mySQL retorna o último ID inserido com a função LAST_INSERT_ID(), que deve ser executada logo após o INSERT, logo preciso que ela seja colocada na mesma transaction. Como passar isso em uma variável a ser usada pelo método ZSQL? Algo assim: BEGIN; INSERT INTO pessoa (id,nome) VALUES ( 0,<dtml-sqlvar nome_pessoa type=string>); <dtml-setvar x = LAST_INSERT_ID();> # Existe alguma coisa assim?!? INSERT INTO telefone (id, idpessoa, numero) VALUES (0,<dtml-sqlvar x type=int>,<dtml-sqlvar numero_telefone type=int>); COMMIT; Existe alguma possibilidade de se fazer isso? Ou melhor, como normalmente é feito esse tipo de operação no Zope/Plone? (usar ID's auto-incrementais em suas tabelas relacionadas). []'s -- Paul Eipper
-- Cordialmente, Wilton Souza Alencar www.tom.pro.br