Array
(
)

Aritmethic excepito

Pereiramarcos
   - 26 dez 2005

Aritmethic excepiton numeric overflow or string truncation.
Ja cadastrei. quando altero a data numa tabela, so que ja existem datas e ja alterei algumas uso um Datetimerpicker.

como posso solucionar isso


obrigado


Edilcimar
   - 26 dez 2005

mostre o código, senão não dá para achar o erro


Pereiramarcos
   - 26 dez 2005


Citação:
mostre o código, senão não dá para achar o erro


DtsPaciente.DataSet.FieldByName(´dt_nasc´).AsDateTime := DateTimePicker1.Date;
Dtspaciente.DataSet.Post;
(Dtspaciente.DataSet as Tclientdataset).ApplyUpdates(-1); <-----
(DtsPaciente.DataSet as TClientDataSet).Refresh ; <-----
desabilitaCampos;


obrigado edilcimar


Edilcimar
   - 26 dez 2005

o campo é datetime e vc está mandando só date?


Pereiramarcos
   - 26 dez 2005

o campo é somente Date, no firebird acabei de confirmar, tb achei que fosse isso, mas tem registros que consigo alterar.


Edilcimar
   - 26 dez 2005

então troque para
DtsPaciente.DataSet.FieldByName(´dt_nasc´).AsString := DateToStr(DateTimePicker1.Date);


Pereiramarcos
   - 26 dez 2005

Funcionou mas quando vou alterar o sewgundo registro da o mesmo erro.
a impressao e que nao esta commitando, pode ser isso ?

:(


Pereiramarcos
   - 26 dez 2005

este campo e um dominio

CREATE DOMAIN DATA AS
DATE

e o campo e do tipo Date dominio DATA


Edilcimar
   - 26 dez 2005

então tente fechar e abrir novamente a tabela após o post


Pereiramarcos
   - 26 dez 2005

acontecewu o que eu imaginava ele nao commita fechando apos o post
e abrindo novamente. . .
o que pode ser isso, pra quem e iniciante no Delphi como eu da maior desespero.


Edilcimar
   - 26 dez 2005

tente dar um forcewrite após o comit


Pereiramarcos
   - 26 dez 2005

pode dar um exemplo.


obrigado, pela forca.


Pereiramarcos
   - 26 dez 2005

algum dado interessante, no registros iniciais nao da erro.

estou procurando este maudito erro.

que conversao e esta que so faz apos algum registros.

estou usando SQLTable será que tem algum problema.


Edilcimar
   - 26 dez 2005

Será que vc não tem algum campo que deveria ter sido preenchido e não foi? Pode ser o formato da data de americano para brasileiro, só vai acontecer em determinados meses!


Pereiramarcos
   - 26 dez 2005

no registro que gravei 01/09/1968 gravou sem erro, este registro e o numero 1 e o registro 2 tb nao da erro


no outro registro que tentei gravar 04/04/1935 deu este erro, este registro e o registro de numero 233, sera que tem alguma coisa haver.


como verificar o padrao americano ?
estou perdendo a linha de raciocinio. isso e ruim

Valeu cara


Edilcimar
   - 26 dez 2005

padrão americano mm-dd-yyyy
nosso padrão dd-mm-yyyy
se grava o registro 1 e 2 e há problema com o 233 então o problema pode ser em algum outro campo pois a data está compatível


Martins
   - 26 dez 2005


Citação:
no registro que gravei 01/09/1968 gravou sem erro, este registro e o numero 1 e o registro 2 tb nao da erro


no outro registro que tentei gravar 04/04/1935 deu este erro, este registro e o registro de numero 233, sera que tem alguma coisa haver.


como verificar o padrao americano ?
estou perdendo a linha de raciocinio. isso e ruim

Valeu cara


Acho q não tem nada a ver, qual o seu banco e o dialeto?

Mostre a estrutura de sua tabela por favor!


Pereiramarcos
   - 26 dez 2005

CLIENTE (
CD_CLIENTE CODIGO NOT NULL /* CODIGO = INTEGER NOT NULL CHECK (VALUE > 0) */,
NM_CLIENTE NOME COLLATE PXW_INTL850 /* NOME = VARCHAR(70) NOT NULL */,
LOGRADOURO DESCRICAO COLLATE PXW_INTL850 /* DESCRICAO = VARCHAR(80) NOT NULL */,
NUMERO VARCHAR(10),
COMPLEMENTO VARCHAR(20) DEFAULT ´ ´,
BAIRRO VARCHAR(30) COLLATE PXW_INTL850,
CIDADE VARCHAR(30) COLLATE PXW_INTL850,
UF UF DEFAULT ´RJ´ NOT NULL /* UF = CHAR(2) NOT NULL CHECK (VALUE = UPPER(VALUE)) */,
CEP CHAR(8),
MALA CHAR(1) DEFAULT ´ ´,
ENDERECO_COMPLETO COMPUTED BY ((LOGRADOURO||´, ´||NUMERO||´ ´||COMPLEMENTO)),
DT_NASC DATA /* DATA = DATE */
);


FIREBIRD 1.5 DIALETO 3


Edilcimar
   - 26 dez 2005

agora está explicado, vc está tentando colocar Ç ou acento em um campo nome ou endereço, usando um set de caracteres que não permite isto, portanto o erro não é no campo data


Pereiramarcos
   - 26 dez 2005

ENTEDI E ATE CONCORDO PQ NAO INCLUSAO ISSO NAO OCORRE, COMO ENTAO COLOCO o collate nesta opcao de gravação ??


Edilcimar
   - 26 dez 2005

faça a conecção com o bd usandoo win1952 (acho que é este o n°)