我在写分布式数据库程序时碰到一个很奇怪的问题:
服务端用TADOStoredProc连接后台的SQL Server上的一个存储过程,存储过程中有定义为nvarchar的参数,用TDataSetProvider来提供服务
客户端用TClientDataSet来连接服务端,并设置参数,执行存储过程。
当定义为nvarchar的参数设置为英文时,运行存储过程,向数据库里添加数据没有问题,但是当参数为中文时,运行存储过程后,数据库里更新的数据只是之前设置的中文的一部分,总是不全,如:在程序中
  cdsStoredProc.Params.ParamValues['@Name'] := '中文中文中文';
  cdsStoredProc.Execute;
执行后,数据库中相应的字段为‘中文’,并不是‘中文中文中文'!敢问那位大侠知道这是什么原因!