AnyDac aka FireDac cannot generate update query

孤街醉人 提交于 2019-12-13 15:13:35

问题


I was using UniDac for a long time now and decided to move on to FireDac as it has good Asynch methods after moving on i saw that none of my data editing works anymore it gives me an error:

[FireDAC][Phys]-330. Cannot generate update query. Update table undefined.

What I am trying to do here is i have a TFDStoredProc component who gets all the data from the database and lets me edit it, with unidac I could easily edit the data without any problem like this:

StoredProc.Edit;
StoredProcCreatedID.Value := SomeValue;
StoredProc.Post;

and it worked, but with AnyDac it doesn't, I tried specifying manually the UpdateTable which leads to another problem:

[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0][SQL Server]Invalid column name 'CreatedID'.

I am using Microsoft SQL Server 2012 FireDac 8.0 and stored procedures for getting back results any ideas?

P.S.

The query looks like this

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

it looks like the FireDac update builder doesn't recognize the aliases on the fields, any help would be appreciated.


回答1:


Well i figured out what was the issue, it seems that if you specify a alias in the query for a field the Origin property will be set to the alias and not the real field i downloaded CNPack a must have for a delphi developer also its free, ran the component selector and changed all my aliased fields to their real fields and it works, but this is still a big issue in FireDac component because it doesnt recognize the aliased fields, lets hope it will be fixed in the future as to specify for every query what table it should update and what fields that just allot of work if you are migrating from a big project in my case 220+ stored procedures.



来源:https://stackoverflow.com/questions/24497288/anydac-aka-firedac-cannot-generate-update-query

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!