Arithmetic Exception, Numeric Overflow or String Truncation. Já peguei esse erro, outras vezes, e percebi que eu passava valores numericos no lugar de strings e vice-versa. Acontece que agora eu minuciosamente obeservei minha tabela e minha SP, e só tem campo string(varchar e char), somente um campo integer(disparado por uma trigger através de im gerador). Continua dando a mensagem. Eis os meus scripts.
O código da SP
create procedure sp_cadfornec(op char(1),cod integer,razao varchar(50),
fantasia varchar(35),endereco varchar(75),cidade varchar(35),
uf char(2),cep varchar(10),fone1 varchar(12),fone2 varchar(12),
ramal1 varchar(5),ramal2 varchar(5),fax varchar(12),contato varchar(35),
email varchar(50),email_contato varchar(50),cel_contato varchar(12),web_site varchar(50),cnpj varchar(18),
ie varchar(18))as begin
if(op = ´I´) then begin
cod = gen_id(´gen_spcadfornec´,1);
insert into cadfornec(razao,fantasia,endereco,cidade,
uf,cep,fone1,fone2,ramal1,ramal2,fax,contato,cel_contato,
email,email_contato,web_site,cnpj,ie)
values(:razao,:fantasia,:endereco,:cidade,
:uf,:cep,:fone1,:fone2,:ramal1,:ramal2,:fax,:contato,:cel_contato,
:email,:email_contato,:web_site,:cnpj,:ie);
end
if (op=´A´) then begin
update cadfornec set razao=:razao,fantasia=:fantasia,endereco=:endereco,cidade=:cidade,
uf=:uf,cep=:cep,fone1=:fone1,fone2=:fone2,ramal1=:ramal1,ramal2=:ramal2,
fax=:fax,contato=:contato,cel_contato=:cel_contato,
email=:email,email_contato=:email_contato,web_site=:web_site,cnpj=:cnpj,ie=:ie where cod = :cod;
end
if (op=´D´) then begin
Delete from cadfornec where cod =:cod;
end
end
Minha tabela
create table cadfornec(cod integer not null primary key,
razao varchar(50),fantasia varchar(35),endereco varchar(75),
cidade varchar(25),cep varchar(10),uf char(2),fone1 varchar(12),
fone2 varchar(12),ramal1 varchar(5),ramal2 varchar(5),fax varchar(12),
contato varchar(35),cel_contato varchar(12),email varchar(35),
email_contato varchar(35),web varchar(35))
Meu código de inserção:
p
rocedure TfrmCadFornec.btGravarClick(Sender: TObject);
begin
btGravar.Caption:=´&Gravar´;
try
with Dm.CadFornec do begin
Parambyname(´op´).Value:=op;
Parambyname(´razao´).Value:=edrazao.Text;
Parambyname(´endereco´).Value:=edEnd.Text;
Parambyname(´cidade´).Value:=edCidade.Text;
Parambyname(´cep´).Value:=edCep.Text;
Parambyname(´uf´).Value:=edUf.Text;
Parambyname(´cnpj´).Value:=edCpf.Text;
Parambyname(´ie´).Value:=edIe.Text;
Parambyname(´fone1´).Value:=edFone1.Text;
Parambyname(´fone2´).Value:=edFone2.Text;
Parambyname(´ramal1´).Value:=edRamal1.Text;
Parambyname(´ramal2´).Value:=edRamal2.Text;
Parambyname(´fax´).Value:=edFax.Text;
Parambyname(´contato´).Value:=edContato.Text;
Parambyname(´cel_contato´).Value:=edCel.Text;
Parambyname(´email´).Value:=edEmail.Text;
Parambyname(´email_contato´).Value:=edEmail_Contato.Text;
Parambyname(´web_site´).Value:=edWeb.Text;
execproc;
liga;
end;
Dm.SGC_Conect.Commit(Transacao);
except
on Exc:Exception do
begin
ShowMessage(´Ocorreu um erro na tentativa de inclusão do registro: ´ + Exc.Message);
Dm.SGC_Conect.Rollback(Transacao);
liga;
end;
end;
end;