4

我使用 UniDac 已经很长时间了,并决定继续使用 FireDac,因为在继续使用后它具有良好的异步方法,我发现我的数据编辑都不再工作了,这给了我一个错误:

[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 和存储过程来获取结果有什么想法吗?

附言

查询看起来像这样

SELECT 
    CreatedBy as CreatedID,
    usr.UserName as CreatedBy
FROM 
    Sales
LEFT JOIN 
    Users usr ON usr.ID = Sales.CreatedBy

看起来 FireDac 更新构建器无法识别字段上的别名,我们将不胜感激。

4

1 回答 1

2

好吧,我弄清楚了问题所在,似乎如果您在查询中为字段指定别名,则Origin属性将设置为别名,而不是我下载的真实字段CNPack是德尔福开发人员必须具备的,也是免费的,运行组件选择器并将我所有的别名字段更改为它们的真实字段并且它可以工作,但这仍然是 FireDac 组件中的一个大问题,因为它无法识别别名字段,希望它会在将来修复以指定在我的案例中,如果您从一个大项目中迁移 220 多个存储过程,则每个查询它应该更新什么表以及刚刚分配工作的字段。

于 2014-07-01T06:46:44.053 回答