Mensagem de Erro!

Firebird

03/03/2004

Oi pessoal,

Quando estou dando um open na storedprocedure dá o seguinte erro:

´General SQL error. Arithmetic overflow during implicit conversion on INT ´5000´ to a TINYINT field.´

Estou sem saber que conversão de tipos está sendo realizada de forma errada gerando o erro...

Já tentei em vez de abrir a storedprocedure (open), executá-la (execproc), mas continua dando o mesmo erro.

Aguardo sugestões para solucionamento do problema!


Cmel

Cmel

Curtidas 0

Respostas

Marcos Fernando

Marcos Fernando

03/03/2004

Quais as linhas em SQL de sua SP,,


GOSTEI 0
Cmel

Cmel

03/03/2004

[b:67371bb859]Bem o código do sistema onde está dando o erro é o seguinte:[/b:67371bb859]

procedure InsereDados;
var x: integer;
begin
with DataModule do
begin
try
qr_MaxCodDados.Close;
qr_MaxCodDados.Open;
spDadosIncluir.Close;
spDadosIncluir.ParamByName(´@Cod´).AsInteger := qr_MaxCodDados.FieldByName(´MaxCod´).AsInteger +1;
spDadosIncluir.ParamByName(´@Processo´).AsInteger := StrtoInt(sCodProcesso);
spDadosIncluir.ParamByName(´@Codigo´).AsInteger := StrtoInt(Trim(frDados.cb_Nivel.Text[1]+frDados.cb_Nivel.Text[2]+frDados.cb_Nivel.Text[3]+frDados.cb_Nivel.Text[4]));
spDadosIncluir.ParamByName(´@TipoLei´).AsString := frDados.cb_TipoLei.Text;
spDadosIncluir.ParamByName(´@NumLei´).AsString := frDados.ed_NumLei.Text;
spDadosIncluir.ParamByName(´@Ano´).AsString := frDados.ed_Ano.Text;
spDadosIncluir.ParamByName(´@Artigo´).AsString := frDados.ed_Artigo.Text;
spDadosIncluir.ParamByName(´@Paragrafo´).AsString := frDados.ed_Paragrafo.Text;
spDadosIncluir.ParamByName(´@Inciso´).AsString := frRefLeg.ed_Inciso.Text;
spDadosIncluir.ParamByName(´@Letra´).AsString := frRefLeg.ed_Letra.Text;
spDadosIncluir.ParamByName(´@Sigla´).AsString := frRefLeg.ed_Sigla.Text;
spDadosIncluir.ParamByName(´@Item´).AsString := frRefLeg.ed_Item.Text;
spDadosIncluir.Open; [b:67371bb859]// O erro está acontecendo aqui!!![/b:67371bb859]
qr_MaxCodRefLeg.Close;
except x:=1;
end;
spDadosIncluir.Close;
frListaDados.AtualizaSgDados;
end;
end;


[b:67371bb859]E a storedprocedure spDadosIncluir é a seguinte:[/b:67371bb859]

( --@Cod CodNumLongo,
@Processo CodNumLongo,
@Codigo CodNumCurto = NULL ,
@TipoLei char(5) = NULL ,
@Ano char(4) = NULL ,
@Artigo char(5) = NULL ,
@Paragrafo char(10) = NULL ,
@Inciso char(10) = NULL ,
@Letra char(1) = NULL ,
@NumLei char(6) = NULL ,
@Sigla char(12) = NULL ,
@Item char(5) = NULL
)
as

declare @MaxCod CodNumLongo
--begin transaction

select @MaxCod = max(Cod)+1 from Dados

insert intoDados
(Cod , Processo , Codigo , TipoLei , Ano , Artigo , Paragrafo , Inciso , Letra , NumLei , Sigla , Item )
values (@MaxCod, @Processo, @Codigo, @TipoLei, @Ano, @Artigo, @Paragrafo, @Inciso, @Letra, @NumLei, @Sigla, @Item)

if @@transtate = 2 or @@transtate = 3
begin
if @@transtate = 2 rollback tran
raiserror 80000 /* Erro atualização. */
return
end
--commit transaction[/code]


GOSTEI 0
POSTAR