Delphi: Delphi и Microsoft SQL Server 2005 неверные вычисления из значений функций - PullRequest
1 голос
/ 07 марта 2011

Когда я отправляю этот запрос на SQL Server 2005 с помощью Microsoft SQL Server Management Studio

SELECT dbo.MOV('Hi',10,2) + dbo.MOV('Hi2',8,2)

Запрос возвращает 400

В результате чего-либо, отправленного в функцию, будет возвращено 200, кромеесли в двух последних параметрах, где 0, значение return будет равно 100, а тип значения возврата из функции его Decimal (12,2)

проблема, возникает, когда я делаю запрос на Delphi

Query.SQL.Add('SELECT dbo.MOV(''Hi'',10,2) + dbo.MOV(''Hi2'',8,2)');
Query.Open;
Query.Next;
ShowMessage(Query.Fields[0].AsString);

Запрос возвращает 200 (в диалоговом окне сообщения), как если бы SQL Server просто брал первую функцию и игнорировал вторую, так что я мог бы получить из SQL Server 2005 правильный расчет в Delphi.Спасибо.

1 Ответ

5 голосов
/ 07 марта 2011

Попробуйте очистить Query.SQL перед Query.SQL.Add.

Query.SQL.Clear
Query.SQL.Add('SELECT dbo.MOV(''Hi'',10,2) + dbo.MOV(''Hi2'',8,2)');

Если у вас уже есть запрос, сохраненный в SQL, вы увидите только результат первого.

...