我现在正在使用UniDac很长一段时间并决定继续使用FireDac,因为它具有良好的Asynch方法,在继续之后,我发现我的数据编辑工作不再有任何错误:
[FireDAC] [物理学] -330。无法生成更新查询。更新表未定义。
我在这里要做的是我有一个TFDStoredProc组件从数据库中获取所有数据并让我编辑它,使用unidac我可以轻松地编辑数据,没有任何问题,如下所示:
StoredProc.Edit;
StoredProcCreatedID.Value := SomeValue;
StoredProc.Post;
并且它有效,但是对于AnyDac它没有,我尝试手动指定UpdateTable导致另一个问题:
[FireDAC] [Phys] [ODBC] [Microsoft] [SQL Server Native Client 11.0] [SQL Server]无效的列名称'CreatedID'。
我正在使用Microsoft SQL Server 2012 FireDac 8.0和存储过程来获取任何想法的结果吗?
P.S。
查询看起来像这样
SELECT
CreatedBy as CreatedID,
usr.UserName as CreatedBy
FROM
Sales
LEFT JOIN
Users usr ON usr.ID = Sales.CreatedBy
看起来FireDac更新构建器无法识别字段上的别名,我们将不胜感激。
答案 0 :(得分:0)
我发现问题是什么,似乎如果在查询中为字段指定别名, Origin 属性将设置为别名而不是我下载的真实字段< strong> CNPack 对于delphi开发人员来说也是必须的,它是免费的,运行组件选择器并将所有别名字段更改为真实字段并且它可以工作,但这仍然是FireDac组件中的一个大问题,因为它无法识别别名字段,让我们希望它将来会被修复,以便为每个查询指定它应该更新哪个表,以及如果你从我的案例220+存储过程中的大项目迁移那些分配的工作字段。