环境: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 这样的语句进行更新。
这个有什么解决办法吗?
一个项目以前用 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 这样的语句进行更新。
这个有什么解决办法吗?
FDQuery1.SQL.Text := 'select KeyId , userName from tablename';
FDQuery1.FieldByName('KeyId').DisplayLabel := '标识';//DisplayName; DisplayText
FDQuery1.FieldByName('userName').DisplayLabel := '用户名';