环境:Win8.1 + XE8 up1 + SQLServer
一个项目以前用 UniDAC ,现在改成 FIreDac ,碰到个问题。
使用 FDQuery 的时候,比如
qry1.sql.append('select KeyId as 标识 , userName as  用户名 from tablename');
qry1.open;
在对应的 Grid 中编辑 或 使用语句
qry1.fieldByName('标识').asInteger := 100; 
修改,在保存的时候 SQL Server 会抛出 无效的列'标识'的异常,使用SQLServer 监视器跟踪语句,发现 FireDac 更新的时候 使用了类似 update table set 标识=100 where 标识=1 这样的语句进行更新。 
这个有什么解决办法吗?

解决方案 »

  1.   

    建议
      FDQuery1.SQL.Text := 'select KeyId  , userName  from tablename';
      FDQuery1.FieldByName('KeyId').DisplayLabel := '标识';//DisplayName;    DisplayText
      FDQuery1.FieldByName('userName').DisplayLabel := '用户名';
      

  2.   

    xe8 up1都出了? 给个链接
      

  3.   

    database 都没有“标识”这个字段,肯定出错,先不用AS之类的试一下,有可能是bug