![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Yo tenia el mismo problema, y resulta que la configuracion regional por default es español España y por lo tanto te devuelve en los valores decimales una ,
el valor del campo te lo devuelve asi "34,56" y ese no es un valor decimal valido para la base. Lo que tienes que hacer es: Despues de iniciar tu aplicación (en el DPR) escribe esto: Application.Initialize; ShortDateFormat := 'dd/MM/yyyy'; DecimalSeparator := '.'; ThousandSeparator := ','; Y despues continuas creando los objetos. Bueno lo siguiente que hice para evitar el error en caso de que persista es crear una funcion que me devuelva el valor correctamente: Function aDecimal(vValor: string):Real; var vPValor: String; vEnDonde: integer; begin if vValor <> '' then Begin vPValor:= vValor; if pos(',',vPValor) > 0 then begin vEnDonde:= pos(',',vPValor); delete(vPValor,vEnDonde,1); insert('.',vPValor,vEnDonde); end; Result:= strtofloat(vPValor); End else Result:= 0.000; End; Y despues para usar la función solo escribo esto: qryRecibosMercanciaEI_PESOBRUTO.value := aDecimal(cdsTxt.FieldValues['CAMPO14']); Espero te ayude. A mi me resolvio el problema satisfactoriamente Estamos en contacto. Bye |
|
#2
|
||||
|
||||
|
Gracias por tu respuesta, ensaye esto y me funciono correctamente.
Te informo que tambien habia encontrado otra solucion que funciona, resulta que el regedit del cliente de oracle, LOCAL_MACHINE -> SOFTWARE -> ORACLE -> HOME(#Version) Hay un campo llamado NLS_LANG y descubri que en algunos pc's estaba configurado para españa y en otros para colombia, de hay se generaban las diferencias. para arreglar este error se podian poner todos los pc's en la misma configuracion. Luego buscando un poco mas, xq pense que no era conveniente cambiar la configuracion de los usuarios, encontre que al iniciar la conexion podia ejecutar la siguiente consulta. ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ",." y esta permitia tener unos u otros separadores decimales segun como se asignaran. Espero haber sido claro en mi explicacion y q esta le sea de utilidad a alguien mas. Cualquier duda, lo pueden informar
__________________
Código PHP:
|
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Tengo un problema con la libreria | ElDioni | Varios | 0 | 15-07-2005 13:27:04 |
| tengo un problema con el comando VAL | perudelphi | OOP | 8 | 08-12-2004 03:31:30 |
| Ayuda, tengo un problema | fmonte | Varios | 5 | 06-10-2004 18:14:47 |
| decimalSeparator y windows XP | miquelm | API de Windows | 0 | 11-02-2004 11:25:39 |
| Tengo un problema con la conexión al servidor | subzero | Firebird e Interbase | 3 | 27-01-2004 18:25:14 |
|