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

Reply via email to