Hola.
Recién ayer retomé este tema.
Como dije al principio, uso el SQL Server Express 2008 R2. En la tabla
que describo, ocurre el problema.
Mi máquina es un Windows 10 (32 bits)
Probé en una notebook de 64 bits con SQL Server Express 2012. La tabla
de facturas tiene campos definidos como MONEY
Al hacer el select desde VFP9SP2 viene normalmente. Sin embargo, si
cambio los campos a NUMERIC(10,2), da el mismo error extraño.
Si cambio la tabla en el SQL 2008 de NUMERIC a MONEY persiste el error.
Ambas máquinas tienen configurado en el windows, el punto decimal como
punto, la separación de miles como una coma y las fechas como las
nuestras, o sea, dia - mes -año)
En el VFP9, probé la configuración regional igual que en windows y
también probé dejar que lea directamente la configuración
Ahora, repito, lo curioso es que esto ocurre solamente en esa base de
datos en particular, pero en otras bases de datos, todo anda perfectamente:
El campo totalfra es numérico(10,2)
Desde VFP mando:
cCmd = 'select totalfra from facturas where factid = ' + transform(nPK)
sqlexec(nHandle, cCmd,'curAux')
nTotal = curAux.totalfra
el valor en el campo es, digamos, 12345.67
Me lo trae como 12.345.67 y por supuesto el valor almacenado en nTotal
es 12.34
Si lo cambio a money, en el sql 2008 me da el mismo error. En el sql
2012 viene bien.
Supongo que tiene que ver con la configuración en alguno de los softs.
Por favor, si alguno tiene una idea.......
Gracias
Rafael Copquin
El 23/03/2016 a las 18:33, Norberto escribió:
Es la Configuración Regional muy probablemente.
Allí, el separador decimal debe ser coma, el de miles un punto y el
separador de listas un punto y coma.
SDS
NRS
------------------------------------------------------------------------
De: rafael copquin
Enviado: 23/03/2016 18:15
Para: GUFA List Member
Asunto: [GUFA] Consulta signo negativo en mysql + VFP
Yo tengo una consulta que tiene que ver con Microsoft SQL Server
Estoy usando el SQL Server Express 2008 R2
Trabaja con el SQL Server Native Client 10.0
Las tablas del SQL tienen campos numéricos;
ejemplo totalfra Numeric(18,2) not null valor o enlace
predeterminado (0.00)
Hago una consulta con VFP9SP2 y me trae el número con un punto para
separa los miles y coma para los decimales
ejemplo 12345.67 lo trae asi: 123.45,67 En algunos casos
redondea los decimales y los deja en cero.
Probé con incrementar el ancho del campo a numeric(30,6) pero es igual
También probé con cambiar el campo a money, pero da exactamente lo mismo
Finalmente encontré una solución:
cCmd='select cast(totalfra as char(20)) as totalfra from facturas
where nPK='+transform(nPK)
sqlexec(nHandle,cCmd,'curAux')
select cast(totalfra as N(10,2)) as totalfra from curAux into cursor
curFactura readwrite
O sea, traigo el campo numérico desde el SQL Server al VFP9 como
character y luego lo transformo en campo numérico en VFP9 con otro select.
Esto lo hace desde que instalé el SQL Server Express 2008 R2 en
Windows 10. Cuando usaba Windows 7 Professional esto no ocurría: los
campos numéricos entraban directamente como numéricos
¿alguien sabe lo que pasa y cómo se soluciona?
No probé de instalar el SQL Server 2012 ni el 2014, básicamente porque
tengo varios clientes con el SQL Server 2008 R2 instalado y en
producción y no me seduce la idea de tener que actualizar a todos y
migrar las bases de datos. Es mucha pérdida de tiempo y no sé hasta
qué punto me puede beneficiar, sobre todo porque los clientes eso no
lo pagan.
Felices Pascuas
Rafael Copquin
El 23/03/2016 a las 12:40, Walter Comito escribió:
[No se incluye el mensaje original completo.]
--
Rafael Copquin