Acesso ao Oracle via DbExpress

Delphi

23/06/2004

Quanto tento gravar um registro no Oracle estou obtendo o seguinte erro: ´ORA-01722: número inválido´.
Os campos já estão como TFMTBCD.

Como trabalho como o tipo Float ou numérico neste caso ?

Agradeço,


Luizbhering

Luizbhering

Curtidas 0

Respostas

Bon Jovi

Bon Jovi

23/06/2004

Já me deparei com essa msg mas não lembro bem o que era.. Como se tivesse gravando uma string nao válida pro campo number, mas as vezes não era bem isso.

Dê mais detalhes... Mostre a query, a parte do código em q vc atribui parametros e grava, e a estrutura da tabela (incluindo os tipos, com precisão no caso do NUMBER). E mais o q puder.. Dá um copy no DataSet e cola aqui pra mostrar os TFields e TParams se tiver usando eles.


GOSTEI 0
F.lunkes

F.lunkes

23/06/2004

[quote=´luizbhering´]Quanto tento gravar um registro no Oracle estou obtendo o seguinte erro: ´ORA-01722: número inválido´.
Os campos já estão como TFMTBCD.

Como trabalho como o tipo Float ou numérico neste caso ?

Agradeço,




Caro colega, basta vc colocar no evento AffterConnection do SQLConnection a seguinte linha:
sqlcnn.ExecuteDirect(´alter session set nls_numeric_characters = ´.,´´);

Isto fara com seja setado um prametro no oracle que converte ele para outro.

Att. Fábio


GOSTEI 0
Nardelli

Nardelli

23/06/2004

Olá...

Eu tive o mesmo problema quando fui executar Queryes com parâmetros(ORA-01722), ai segui o conselho de nosso colega e adicionei o evento afterconnection do meu SQLConection, ai o erro que acontece agora é o seguinte: ORA-01036 Nome/Numero de variável inválido.

Obs: SQL: ´SELECT * FROM TS WHERE COD_9 = :COD´
Passagem do Parâmetro: SQLQUERY1.PARAMS[0].ASINTEGER
Por que AsInteger ? Por que toda a minha aplicação foi escrita com Interbase e dbExpress e agora quero utilizar Oracle.

Estrutura da Table TS: COD NUMBER(38), COD_9 NUMBER(09), COD_4 NUMBER(04)

Agradeço qualquer ajuda.


GOSTEI 0
POSTAR