VFP SPT запрашивает SqlServer 2008 R2 - PullRequest
0 голосов
/ 26 октября 2011

Я должен поддерживать бэкэнд SqlServer2008 R2.В следующем операторе SQL

lcSql = "SELECT field1, field2, 00000.00 as CalcField FROM myTable"
SqlExec(lnHandle,lcSql,"csrMyTable")

в предыдущих версиях (включая 2008) CalcField будет возвращен как N (8,2), но с R2 он будет возвращен как N (4,2).

Я использую это поле для дальнейших вычислений, а затем помещаю значение calc в CalcField.Теперь это проблема, когда CalcField слишком мал, чтобы содержать значение.

Я подумал о выдаче

lcSql = "SELECT field1, field2, 99999.99 as CalcField FROM myTable"
SqlExec(lnHandle,lcSql,"csrMyTable")

SELECT csrMyTable
REPLACE ALL CalcField WITH 0

Интересно, есть ли у кого-нибудь другое решение.Я использую это во всей своей системе для отчетов, дисплеев и т. Д., Так что это потребует довольно серьезных изменений.

Спасибо!

1 Ответ

2 голосов
/ 26 октября 2011

Попробуйте с CAST (0,00 AS N (8,2)) как CalcField

lcSql = "SELECT field1, field2, CAST(0.00 AS N(8,2)) as CalcField FROM myTable"
SqlExec(lnHandle,lcSql,"csrMyTable")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...