Unexpected end of command

15/04/2014

0

Pessoal, tenho uma SP, quando compilo ela no IBExpert não dá erro nenhum mas quando vou chamá-la no delphi com Execute Procedure SP_Animal_Salvar (...................) da o erro unexpected end of command.
Alguém pode me dizer o que está faltando?
Segue SP
Obrigado desde já pela ajuda
SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_ANIMAL_SALVAR (
    wp_idanimal integer,
    wp_idcatanimal integer,
    wp_idpropriedade integer,
    wp_idprocedencia integer,
    wp_idmatriz integer,
    wp_idraca integer,
    wp_brinco varchar(20),
    wp_idsituacao integer,
    wp_sexo varchar(1),
    wp_idpelagem integer,
    wp_dtentrada date,
    wp_idtipoentrada integer,
    wp_dtnascimento date,
    wp_dtpesagemini date,
    wp_pesoinicial float,
    wp_precokilo float,
    wp_precototal float,
    wp_idtiposaida integer,
    wp_pesovenda float,
    wp_precovenda float,
    wp_dtsaida date,
    wp_iddestino integer,
    wp_idcausamortis integer,
    wp_idanimaltransf integer,
    wp_idpropriedadetransf integer,
    wp_ehmatriz integer)
as
declare variable novoid integer;
declare variable dtentrada date;
declare variable dtnascimento date;
declare variable dtpesagemini date;
declare variable dtsaida date;
begin
    IF (:wp_dtentrada < cast('01/01/1900' as date)) then
    BEGIN
        dtentrada = NULL;
    END
    else
    begin
        dtentrada = :wp_dtentrada;
    end

    IF (:wp_dtNascimento < cast('01/01/1900' as date)) then
    BEGIN
        dtNascimento = NULL;
    END
    else
    begin
        dtNascimento = :wp_dtNascimento;
    end

    IF (:wp_dtPesagemIni < cast('01/01/1900' as date)) then
    BEGIN
        dtPesagemIni = NULL;
    END
    else
    begin
        dtPesagemIni = :wp_dtPesagemIni;
    end

    IF (:wp_dtSaida < cast('01/01/1900' as date)) then
    BEGIN
        dtSaida = NULL;
    END
    else
    begin
        dtSaida = :wp_dtSaida;
    end

    IF ((:wp_idAnimal = 0) OR (:wp_idAnimal is NULL)) then
    BEGIN
        select first 1 idAnimal from tb_animal order by idAnimal desc into :novoId;
    
        novoId = novoId + 1;
    
        if ((novoId is null) or (novoId <= 0)) then
        begin
          novoId = 1;
        end

        Insert into 
            tb_animal
            (                    
                IDANIMAL,        
                IDCATANIMAL,
                IDPROPRIEDADE,
                IDPROCEDENCIA,
                IDMATRIZ,
                IDRACA,
                BRINCO,
                IDSITUACAO,
                SEXO,
                IDPELAGEM,
                DTENTRADA,
                IDTIPOENTRADA,
                DTNASCIMENTO,
                DTPESAGEMINI,
                PESOINICIAL,
                PRECOKILO,
                PRECOTOTAL,
                IDTIPOSAIDA,
                PESOVENDA,
                PRECOVENDA,
                DTSAIDA,
                IDDESTINO,
                IDCAUSAMORTIS,
                IDANIMALTRANSF,
                IDPROPRIEDADETRANSF,                
                EXCLUIDO
            )
            values 
            (
                :wp_idAnimal,
                :wp_idCatAnimal,
                :wp_idPropriedade,
                :wp_idProcedencia,
                :wp_idMatriz,
                :wp_idRaca,
                :wp_brinco,
                :wp_idSituacao,
                :wp_sexo,
                :wp_idPelagem,
                :dtEntrada,
                :wp_idTipoEntrada,
                :dtNascimento,
                :dtPesagemIni,
                :wp_pesoInicial,
                :wp_precoKilo,
                :wp_precoTotal,
                :wp_idTipoSaida,
                :wp_pesoVenda,
                :wp_precoVenda,
                :dtSaida,
                :wp_idDestino,
                :wp_idCausaMortis,
                :wp_idAnimalTransf,
                :wp_idPropriedadeTransf,
                0
            );
            IF (:wp_ehmatriz = 1) THEN
            BEGIN
                execute procedure SP_Matriz_Salvar (0, :wp_idPropriedade, :wp_idCatAnimal, :novoId, 'V', '');
            END  
    END
    ELSE
    BEGIN
        UPDATE
            tb_animal
        SET
            IDCATANIMAL                = :wp_idCatAnimal,
            IDPROPRIEDADE              = :wp_idPropriedade,
            IDPROCEDENCIA              = :wp_idProcedencia,
            IDMATRIZ                   = :wp_idMatriz,
            IDRACA                     = :wp_idRaca,
            BRINCO                     = :wp_brinco,
            IDSITUACAO                 = :wp_idSituacao,
            SEXO                       = :wp_sexo,
            IDPELAGEM                  = :wp_idPelagem,
            DTENTRADA                  = :dtEntrada,
            IDTIPOENTRADA              = :wp_idTipoEntrada,
            DTNASCIMENTO               = :dtNascimento,
            DTPESAGEMINI               = :dtPesagemIni,
            PESOINICIAL                = :wp_pesoInicial,
            PRECOKILO                  = :wp_precoKilo,
            PRECOTOTAL                 = :wp_precoTotal,
            IDTIPOSAIDA                = :wp_idTipoSaida,
            PESOVENDA                  = :wp_pesoVenda,
            PRECOVENDA                 = :wp_precoVenda,
            DTSAIDA                    = :dtSaida,
            IDDESTINO                  = :wp_idDestino,
            IDCAUSAMORTIS              = :wp_idCausaMortis,
            IDANIMALTRANSF             = :wp_idAnimalTransf,
            IDPROPRIEDADETRANSF        = :wp_idPropriedadeTransf,
            EXCLUIDO                   = 0
        WHERE
            (IDANIMAL                  = :wp_idAnimal);



  END

end^

SET TERM ; ^

GRANT SELECT,INSERT,UPDATE ON TB_ANIMAL TO PROCEDURE SP_ANIMAL_SALVAR;

GRANT EXECUTE ON PROCEDURE SP_MATRIZ_SALVAR TO PROCEDURE SP_ANIMAL_SALVAR;

GRANT EXECUTE ON PROCEDURE SP_ANIMAL_SALVAR TO SYSDBA;
Jason Mello

Jason Mello

Responder

Posts

05/05/2014

Emerson Nascimento

possivelmente o erro está na chamada da procedure.

publique também a linha exata utilizada na chamada da sp.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar