[firebase-br] FW: Criar procedure generica para update - reduzido

Rodrigo Teodoro rodrigo_teodoro em hotmail.com
Seg Fev 12 11:12:48 -03 2007




  


Galera,Muita hora nesta calma....Por um exemplo no livro de firebird 2 montei usando "Execute block" instruções que fazem update e insert dependedo do registros lido. Ficou show. E ainda fiz uma procedure genérica para gerar o bloco de acordo com cada tabela que tenho. Fino.Só tem um problema, quando mando um "execute statement" no ddl gerado dá os seguinte erro:"Unsucessful execution caused by a system erro that precludes sucessful execution of subsequent statements.Dynamic SQL Error.SQL error code = -902.Wrong request type in EXECUTE STATEMENT 'EXECUTE BLOCK RETURNS(R_CODCLIENTE INTEGER, R_CODC'.At procedure 'COPIAATUALIZAREGISTROS'."//Modelo de  execute block que estou criandoEXECUTE BLOCKRETURNS (R_CODCLIENTE INTEGER,R_NOME VARCHAR(50))AS BEGIN    FOR        SELECT CODCLIENTE,NOME FROM TMP_CLIENTE        INTO            :R_CODCLIENTE,            :R_NOME    DO BEGIN        IF (EXISTS (SELECT * FROM CLIENTE WHERE CODCLIENTE=:R_CODCLIENTE)) THEN            UPDATE                CLIENTE            SET                CLIENTE.NOME = :R_NOME            WHERE                CLIENTE.CODCLIENTE = :R_CODCLIENTE;        ELSE            INSERT INTO                CLIENTE                (CODCLIENTE,NOME)            VALUES                (:R_CODCLIENTE,:R_NOME);        SUSPEND;    ENDEND;Obrigado,



Rodrigo Teodoro

_________________________________________________________________
Obtenha o novo Windows Live Messenger!
http://get.live.com/messenger/overview


Mais detalhes sobre a lista de discussão lista