Delphi:Delphi和Microsoft SQL Server 2005从函数值计算错误

ale*_*zm1 1 delphi string sql-server-2005 decimal

当我使用Microsoft SQL Server Management Studio在SQL Server 2005上发送此查询时

SELECT dbo.MOV('Hi',10,2) + dbo.MOV('Hi2',8,2)
Run Code Online (Sandbox Code Playgroud)

查询返回400

发送到函数的任何结果将返回200,除非最后两个参数,其中0表示返回值为100,值函数返回函数为十进制(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);
Run Code Online (Sandbox Code Playgroud)

查询返回200(在消息对话框中),就像SQL Server只是第一个函数并忽略第二个函数一样,所以我可以从SQL Server 2005中获得正确的Delphi计算.谢谢.

Mik*_*son 5

尝试在Query.SQL.Add之前清除Query.SQL.

Query.SQL.Clear
Query.SQL.Add('SELECT dbo.MOV(''Hi'',10,2) + dbo.MOV(''Hi2'',8,2)');
Run Code Online (Sandbox Code Playgroud)

如果您已经在SQL中存储了查询,则只能看到第一个查询的结果.