每年我都会收到一个新的Delphi版本作为SA所有者,这就是我所做的:
现在认真。几年前我发现TDatasetprovider产生了一个非常简单的错误:TFMTBCDField(Delphi中的money字段表示)为SQL Server 2000和以前的版本生成了不兼容的insert / update sql命令。问题很简单,数据集提供程序为这些sql服务器不接受的货币字段产生报价值。
实施例: 带有varchar字段和money字段的表。 您可以使用以下更新:
UPDATE testtable set MYMONEYFIELD ='1',其中MYVARCHARFIELD ='A'
对于以前版本的SQLServer,您需要使用:
UPDATE testtable set MYMONEYFIELD = 1其中MYVARCHARFIELD ='A'
有人为此问题找到了解决方法吗?
答案 0 :(得分:0)
Borland / CodeGear / Embarcadero对此不以为然,但如果这仅适用于您自己的应用程序,则可以追溯到VCL源并对源进行必要的更改,以确保获得正确的SQL生成。每次获得新版本或修复版本时都需要进行此更改,但这样可以解决您的问题。
您可以将更改提交给codegear,看看是否会将其插入。