[firebase-br] erro no execute statement!!!!
Kléber Caneva
kdcc em terra.com.br
Seg Jun 26 10:33:24 -03 2006
Você não especificou me metadata dos campos da tabela, e eu nunca usei o
Execute Statement, mas olhando para o codigo da SP posso dar um chute.
Se os campos nota1, faltas1, nota2, faltas2 forem de tipos numericos, deve
estar causando problemas com as variaveis tmp_opcaoX que são do tipo
varchar(10)
[]´s
Kléber Caneva
----- Original Message -----
From: "NIlton" <nilton em idesa.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Monday, June 26, 2006 7:38 AM
Subject: [firebase-br] erro no execute statement!!!!
Por favor me ajudem!!!!!!
Estou montando um sp para inserir registros em uma tabela, tenho que passar
parâmetros do delphi para a sp montar um select, quando executo a sp retorna
o seguinte erro:
Unsuccessful execution caused by an unavailable resource.
Variable type (position 3) in EXECUTE STATEMENT 'select
turma,nome,numero,nota1,faltas1,nota2,falta' INTO does not match return.
Ou seja a string executada pelo for execute statement é truncada.
A seguir mando o código da minha sp.
CREATE PROCEDURE SP_PLANILHAS (
cod_turma integer,
exercicio integer,
datahora varchar(19),
titulo varchar(95),
opcao1 varchar(15),
opcao2 varchar(15),
opcao3 varchar(15),
opcao4 varchar(15))
as
declare variable sql2 varchar(1024);
declare variable sql1 varchar(1024);
declare variable sql varchar(1024);
declare variable materia integer;
declare variable old_numero integer;
declare variable tmp_nome varchar(45);
declare variable tmp_turma varchar(40);
declare variable tmp_num_cham integer;
declare variable tmp_opcao1 varchar(10);
declare variable tmp_opcao2 varchar(10);
declare variable tmp_opcao3 varchar(10);
declare variable tmp_opcao4 varchar(10);
declare variable tmp_conteudo varchar(20);
declare variable tmp_discip varchar(7);
declare variable tmp_lsql varchar(500);
begin
old_numero=0;
sql1='';
sql2='';
sql='';
tmp_lsql='select turma,nome,numero,'|| :opcao1 ||','|| :opcao2 || ',' ||
:opcao3 || ','
|| :opcao4 ||',nome_res from vavaliaetapas where cod_turma = '
||:COD_TURMA ||' and ano_letivo = '|| :exercicio ||
' order by numero';
for execute statement :tmp_lsql
into :tmp_turma, :tmp_nome, :tmp_num_cham, :tmp_opcao1, :tmp_opcao2,
:tmp_opcao3,
:tmp_opcao4, :tmp_discip
do
begin
if (old_numero <> :tmp_num_cham) then
begin
materia = 1;
if (old_numero <> 0) then
begin
sql1 = 'insert into tmp_lst_planilhas
(turma,exercicio,datahora,titulo,nome,numero'||sql1;
sql2 = 'values (''' || :tmp_turma || ''',' || :exercicio ||
',''' || :datahora || ''','''
||:titulo || ''',''' || :tmp_nome || ''',' ||
:old_numero||sql2;
sql = sql1 || ') ' || sql2 || ');';
execute statement :sql;
sql1='';
sql2='';
end
else
begin
tmp_conteudo=:tmp_opcao1||'/'||:tmp_opcao2||'/'||:tmp_opcao3||'/'||:tmp_opca
o4;
sql1 = sql1 || ',discip' || cast(materia as char(1)) ||
',conteudo' ||
cast(materia as char(1));
sql2 = sql2 || ',''' || :tmp_discip || ''',''' || :tmp_conteudo
|| '''';
materia = materia + 1;
old_numero = :tmp_num_cham;
end
end
else
begin
tmp_conteudo=:tmp_opcao1||'/'||:tmp_opcao2||'/'||:tmp_opcao3||'/'||:tmp_opca
o4;
sql1 = sql1 || ',discip' || cast(materia as char(1)) || ', conteudo'
||
cast(materia as char(1));
sql2 = sql2 || ',''' || :tmp_discip || ''',''' || :tmp_conteudo ||
'''';
materia = materia + 1;
end
suspend;
end
end
se tiver alguém par me dar uma luz eu agradeço imensamente.
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1151318357.873657.30923.sotovento.hst.terra.com.br,6657,Des15,Des15
Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 23/06/2006 / Versão:
4.4.00/4792
Proteja o seu e-mail Terra: http://mail.terra.com.br/
Mais detalhes sobre a lista de discussão lista