Desabilita o ParamCheck que vai funcionar...

[]s Filipe.
  ----- Original Message ----- 
  From: Marcos André 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Thursday, June 08, 2006 10:37 AM
  Subject: [delphi-br] Crear stored procedure em run time


  Olá pessoal,

              Estou precisando jogar um comando SQL para um TIBQuery, e dar um
  execSQL para ele criar uma stored procedure em run time, mas está dando erro
  e no ibExpert roda, incluse eu peguei o meta data, alguém poderia me ajudar?



              O comando que estou usando é o seguinte:





  CREATE PROCEDURE CONS_A7 (

      PDTINI DATE,

      PDTFIM DATE,

      PISPRIMEIRAVEZ INTEGER)

  AS

  DECLARE VARIABLE VPACIENTE INTEGER;

  DECLARE VARIABLE VPESOPRE DOUBLE PRECISION;

  DECLARE VARIABLE VPESOPOS DOUBLE PRECISION;

  DECLARE VARIABLE VDIAUSO VARCHAR(25);

  DECLARE VARIABLE VPAPOS VARCHAR(15);

  DECLARE VARIABLE VPAPRE VARCHAR(15);

  DECLARE VARIABLE VBID VARCHAR(10);

  DECLARE VARIABLE VDHF TIMESTAMP;

  DECLARE VARIABLE VDHI TIMESTAMP;

  DECLARE VARIABLE VTEMPOHEMODIALISE INTEGER;

  DECLARE VARIABLE VCOD_FMC_REG VARCHAR(6);

  DECLARE VARIABLE VUNIDADE VARCHAR(6);

  DECLARE VARIABLE VDTULTEXAME TIMESTAMP;

  DECLARE VARIABLE VDTULTTRANSF TIMESTAMP;

  DECLARE VARIABLE VTRANSFUNDIDAS DOUBLE PRECISION;

  DECLARE VARIABLE VUNIDADESTRANSFUNDIDAS DOUBLE PRECISION;

  DECLARE VARIABLE VDTULTPRESCRICAO TIMESTAMP;

  DECLARE VARIABLE VPESO DOUBLE PRECISION;

  DECLARE VARIABLE VBANHO_CALCIO DOUBLE PRECISION;

  DECLARE VARIABLE VBANHO_GLICOSE DOUBLE PRECISION;

  DECLARE VARIABLE VDTTMP TIMESTAMP;

  BEGIN

    /* Corrigir a tabela de tratamentos */

    update tratamentos set papre = '000'||papre where papre like '/___';

    update tratamentos set papre = papre||'000' where papre like '___/';



    /* EXCLUINDO REGISTROS ANTERIORES */

    DELETE FROM tmp_consulta;



    FOR select Paciente, Unidade

          from Pacientes

         where (((DataAlta is null) AND (:pisPrimeiraVez = 0))

            or ((DataAlta BETWEEN :pDtIni AND :pDtFim ) AND (:pisPrimeiraVez =
  1)))

    into :vPaciente, :vUnidade DO

    BEGIN

       /* CLINICAS  */

       select c.cod_fmc_reg from clinicas c where c.unidade = :vUnidade into
  :vcod_fmc_reg;



       /* TRATAMENTOS */

       select Max(dhi) from Tratamentos where paciente = :vPaciente into
  :vDtTmp;



       select PesoPre, PesoPos, DiaUso, PaPos, PaPre, Bid,

              dhf, dhi, cast((((dhf-dhi)*24)*60+.1)as integer) as
  tempohemodialise

         from Tratamentos

        where paciente = :vPaciente and dhi = :vDtTmp

         into :vPesoPre,            :vPesoPos,

              :vDiaUso,             :vPaPos,

              :vPaPre,              :vBid,

              :vdhf,                :vdhi,

              :vTempoHemodialise;



       /* TRANSFUSOES */

       SELECT Max(Data) FROM Transfusoes WHERE paciente = :vPaciente into
  :vDtTmp;



       SELECT Max(Data),

              sum(capacidadebolsa * qtdbolsa) as TRANSFUNDIDAS,

              sum(qtdBolsa * CapacidadeBolsa) as UNIDADESTRANSFUNDIDAS

         FROM Transfusoes

        WHERE Data = :vDtTmp and Paciente = :vPaciente

       group by paciente

         INTO :vdtUltTransf, :vTransfundidas, :vUnidadesTransfundidas;



       /* PRESCRICAO */

       SELECT Max(Data) FROM Prescricao where paciente = :vPaciente INTO
  :vDtTmp;



       SELECT Data, Peso, Banho_Calcio, Banho_Glicose

         FROM Prescricao

        WHERE Data = :vDtTmp and paciente = :vPaciente

         INTO :vdtUltPrescricao,            :vPeso,

              :vBanho_calcio,               :vBanho_glicose;



       /* INSERINDO DADOS NA CONSULTA */

       INSERT INTO  tmp_consulta (

           Paciente,

           PesoPre,     PesoPos,

           DiaUso,      PaPos,

           PaPre,       Bid,

           dhf,         dhi,

           TempoHemodialise,

           cod_fmc_reg,     unidade,

           dtUltExame,

           dtUltTransf,     Transfundidas,

           UnidadesTransfundidas,

           dtUltPrescricao,

           Peso,

           Banho_calcio,

           Banho_glicose

         )

         VALUES (

           :vPaciente,

           :vPesoPre,     :vPesoPos,

           :vDiaUso,      :vPaPos,

           :vPaPre,       :vBid,

           :vdhf,         :vdhi,

           :vTempoHemodialise,

           :vcod_fmc_reg,     :vunidade,

           :vdtUltExame,

           :vdtUltTransf,     :vTransfundidas,

           :vUnidadesTransfundidas,

           :vdtUltPrescricao,

           :vPeso,         :vBanho_calcio,

           :vBanho_glicose

         );

    END

    SUSPEND;

  END



  Obrigado.



  Um Abraço



        __    __
       /  \ /| |'-.
      .\__/ || |   |
  _ /  `._ \|_|_.-'
  | /  \__.`=._) (_   Marcos André
  |/ ._/  |"""""""""| 
  |'.  `\ |         | Analista de Sistema 
  ;"""/ / |         | Easy Corporation
  ) /_/| |.-------.|  <http://www.e-easy.com.br/> www.e-easy.com.br |
  <http://www.eassyxp.com.br/> www.eassyxp.com.br  
  '  `-` ' "       "  msn:  <mailto:[EMAIL PROTECTED]>
  [EMAIL PROTECTED] 

  Desenvolvimento e hospedagem de sites apartir de R$ 4,00
  Planos profissionais com qualidade. 
  Consulte nossos planos:  <http://www.e-easy.com.br/> www.e-easy.com.br
  Desenvolvimento de sistemas e sistemas prontos para comercializar,
  ferramentas para desenvolvedores e muito mais:  <http://www.easyxp.com.br/>
  www.easyxp.com.br.





  [As partes desta mensagem que não continham texto foram removidas]


[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a