GARANTIR DESCONTO

Fórum Erro ao incluir um registro(Arithmetic,numeric etc...) #53177

04/10/2005

0

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;



Paulo

Paulo

Responder

Posts

04/10/2005

Bruno Belchior

Tente inserir campos sem acentos... caso tenha sucesso pode ser que seu problema seja algum collate...


Responder

Gostei + 0

04/10/2005

Gandalf.nho

Vc está usando o CHARACTER SET correto na conexão com o banco?


Responder

Gostei + 0

04/10/2005

Paulo

Uso ANSI_CHARSET


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar