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