Acesso ao Oracle via DbExpress
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,
Os campos já estão como TFMTBCD.
Como trabalho como o tipo Float ou numérico neste caso ?
Agradeço,
Luizbhering
Curtidas 0
Respostas
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.
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
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,
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
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.
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