Array
(
)

Quando eu em inserir o registro e automaticamente cancelado

Max.sgj
   - 04 dez 2005

Se eu tirar o Repeat funciona normal mais se eu deixar o registro e inserido e cancelado automaticamente... PQ?

IBQuery1.Open;
Repeat
IBQuery1.Insert;
IBQuery1.FieldByName(´NOME´).AsString:= edit16.text;
IBQuery1.FieldByName(´ENDERECO´).AsString:= edit17.text;
IBQuery1.FieldByName(´BAIRRO´).AsString:= edit18.text;
IBQuery1.FieldByName(´CIDADE´).AsString:= edit19.text;
IBQuery1.FieldByName(´ESTADO´).AsString:= edit20.text;
IBQuery1.FieldByName(´CEP´).AsString:= edit21.text;
IBQuery1.Post;
until Sair = ´S´;


Max.sgj
   - 04 dez 2005

Tentei ultilizar esse mesmo comando com outra tabela e deu a seguite mensagem de erro...

: Arithmetic exception, numeric overflow, or string truncation. Cannot transliterate character between character sets.
1: Exceção de aritmética, transbordamento numérico, ou mutilação de fio. Não possa transliterar caráter entre jogos de caráter


Edilcimar
   - 04 dez 2005

provavelmente vc está tentando colocar caracter acentuado ou com cedilha em bd com character set errado


Max.sgj
   - 04 dez 2005


Citação:
provavelmente vc está tentando colocar caracter acentuado ou com cedilha em bd com character set errado




Vou utilizar outra tabela...


Max.sgj
   - 04 dez 2005


Citação:
provavelmente vc está tentando colocar caracter acentuado ou com cedilha em bd com character set errado


Veja a minha DLL...


CREATE TABLE ENDERECO_2 (
CODIGO INTEGER NOT NULL,
NOME VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE PT_PT,
ENDERECO VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE PT_PT,
BAIRRO VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE PT_PT,
CIDADE VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE PT_PT,
ESTADO VARCHAR(50) CHARACTER SET ISO8859_1 COLLATE PT_PT,
CEP CHAR(10) CHARACTER SET ISO8859_1 COLLATE PT_PT


Emerson
   - 04 dez 2005

ou talvez você esteja tentando colocar num campo um valor maior do que ele comporta.
por exemplo: seu campo NOME suporta 50 e caracteres e você está digitando mais que 50 caracteres para o nome.


Max.sgj
   - 04 dez 2005


Citação:
ou talvez você esteja tentando colocar num campo um valor maior do que ele comporta.
por exemplo: seu campo NOME suporta 50 e caracteres e você está digitando mais que 50 caracteres para o nome.



Não o tamanho dos dados é inferior aos camposs


Massuda
   - 05 dez 2005

No seu loop repeat...until não tem nada que faça a condição de saída acontecer: você não atribui nada à variável Sair nem tem como o Windows processar qualquer evento.

Provavelmente você está inserindo registros duplicados. O erro de oveflow deve estar acontecendo por causa do loop infinito.


Max.sgj
   - 05 dez 2005


Citação:
No seu loop repeat...until não tem nada que faça a condição de saída acontecer: você não atribui nada à variável Sair nem tem como o Windows processar qualquer evento.

Provavelmente você está inserindo registros duplicados. O erro de oveflow deve estar acontecendo por causa do loop infinito.



Como eu resolvo esse problema...


Wiltonfenix
   - 05 dez 2005


Citação:
Como eu resolvo esse problema...


#Código

IBQuery1.Open; 
Repeat
IBQuery1.Insert;
IBQuery1.FieldByName(´NOME´).AsString:= edit16.text;
IBQuery1.FieldByName(´ENDERECO´).AsString:= edit17.text;
IBQuery1.FieldByName(´BAIRRO´).AsString:= edit18.text;
IBQuery1.FieldByName(´CIDADE´).AsString:= edit19.text;
IBQuery1.FieldByName(´ESTADO´).AsString:= edit20.text;
IBQuery1.FieldByName(´CEP´).AsString:= edit21.text;
IBQuery1.Post;
Sair=´S´;
until Sair = ´S´;



Emerson
   - 05 dez 2005

Creio que esteja faltando um Commit após o Post (e esse repeat não me parece necessário).

IBQuery1.Open;
IBQuery1.Insert;
IBQuery1.FieldByName(´NOME´).AsString:= edit16.text;
IBQuery1.FieldByName(´ENDERECO´).AsString:= edit17.text;
IBQuery1.FieldByName(´BAIRRO´).AsString:= edit18.text;
IBQuery1.FieldByName(´CIDADE´).AsString:= edit19.text;
IBQuery1.FieldByName(´ESTADO´).AsString:= edit20.text;
IBQuery1.FieldByName(´CEP´).AsString:= edit21.text;
IBQuery1.Post;


Wiltonfenix
   - 05 dez 2005

Pode ser a falta de um Commit tb.

E, aproveitando, tem um erro no código que passei:

#Código

IBQuery1.Open; 
Repeat
IBQuery1.Insert;
IBQuery1.FieldByName(´NOME´).AsString:= edit16.text;
IBQuery1.FieldByName(´ENDERECO´).AsString:= edit17.text;
IBQuery1.FieldByName(´BAIRRO´).AsString:= edit18.text;
IBQuery1.FieldByName(´CIDADE´).AsString:= edit19.text;
IBQuery1.FieldByName(´ESTADO´).AsString:= edit20.text;
IBQuery1.FieldByName(´CEP´).AsString:= edit21.text;
IBQuery1.Post;
Sair:=´S´;
until Sair = ´S´;



Massuda
   - 05 dez 2005


Citação:
Como eu resolvo esse problema...
Por que você precisa do loop?


Max.sgj
   - 05 dez 2005


Citação:

Citação:
Como eu resolvo esse problema...
Por que você precisa do loop?


Eu estou estudando Firebird e para isso estou aumentado o tamanho do banco de dados para depois ver como se faz par reduzi-lo...


Max.sgj
   - 05 dez 2005


Citação:
Creio que esteja faltando um Commit após o Post (e esse repeat não me parece necessário).

IBQuery1.Open;
IBQuery1.Insert;
IBQuery1.FieldByName(´NOME´).AsString:= edit16.text;
IBQuery1.FieldByName(´ENDERECO´).AsString:= edit17.text;
IBQuery1.FieldByName(´BAIRRO´).AsString:= edit18.text;
IBQuery1.FieldByName(´CIDADE´).AsString:= edit19.text;
IBQuery1.FieldByName(´ESTADO´).AsString:= edit20.text;
IBQuery1.FieldByName(´CEP´).AsString:= edit21.text;
IBQuery1.Post;


Obrigado funcionou...