Both Ted and Richard, thank you for replying.

However, the resulting cursor has the fields as numeric.

In the case of the table belonging to the database that behaves normally, the sql column is numeric(10,2) and vfp brings it as a numeric(12,2) field.

In the case of the one that behaves crazily, the sql column is numeric(18,2) and vfp brings it as numeric(20,2)

If I browse the first cursor (both are saved to disk to deal with after the queries) it shows the amount in the invtotal column as 12345.67 which is correct

The weird one, even though it is showing the structure as numeric(20,2) shows as 12.345,67 and when the cursor is on the record it shows as 123.45, which is completely wrong. Note the dot separating the thousands, which does not appear in the first case.

I solved the issue temporarily by casting the fields as character in the select from the sql server and the resulting cursor is then CASTed to numeric(12,2).

However, I want to know why the behavior is so wrong in the second case. Because I can't trust the queries if I do not tweak them as described.

El 25/03/2016 a las 12:40, Ted Roche escribió:
Have you taken a look at the structure (LIST STRU) of the resultant
cursor when you get the incorrect result? Perhaps there's a clue
there.

On Fri, Mar 25, 2016 at 11:00 AM, rafael copquin
<[email protected]> wrote:
A few months ago I posted the following:

quote

I am selecting a bunch of invoices from a MS SQL Server table. I just want
to add the total of all
invoices.
  In the management studio I do this:
  Select sum(total) as total from terbo.dbo.invoices
  I get 212649.17
  When I do the same calculation in VFP
  cCmd = ‘Select sum(total) as total from terbo.dbo.invoices’
sqlexec(thisform.nHandle,cCmd,’curTotals’)
  nTotal = curTotals.total
  nTotal  is 212.65
  How can I get the correct amount?
  unquote

I would still know the answer to this problem, because the weird thing is
that it only happens with the tables
of just one database. That  is, I have two similar databases, with similar
tables. However, the vfp cursor obtained
from this particular database table gives the above error where a similar
table in another database does not.

In both my Windows 10 and VFP9 SP2 the regional settings are a dot as a
thousands separator, a comma as
  a decimal point and a semicolon as lists separator. These are the Spanish
language settings for numbers

The numerical fields in the tables are defined as numerical (18,2) not null
with a default value of 0

A select statement such as this:

cCmd = 'select invtotal from mydatabase.dbo.invoices where invid =
'+transform(nPK)
sqlexec(nHandle,cCmd,'curInvTotal')

brings a cursor where a browse shows  12.256,85 (note the dot shown as a
thousands separator. It should show as
12256,85)  If I place the mouse over the invtotal column on the browse, the
number shows as 12.25

I am really baffled and do not know what to do.

Any leads on where to tweak the database on SQL Server, or configure the
software would be appreciated

Any help?

Happy Easter

Rafael Copquin







   Rafael Copquin


[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to