TSQLQUERY和数据感知组件的更新

TSQLQuery and update of data aware components

本文关键字:更新 组件 感知 数据 TSQLQUERY      更新时间:2023-10-16

我有一个sqlite数据库,其中包含'注释'的客户。数据库设计非常简单,涉及一张表格,"链接"表,链接,将客户和注释名为customer_note和客户表的注释。注释表具有一个ID字段,customer_note具有customer_id和note_id(一对数),并且客户表也具有ID。

获取选定客户注释的查询是:

SELECT * FROM note n 
INNER JOIN customer_note cn 
ON (cn.note_id = n.id) 
WHERE customer_id = :customerID 
ORDER BY created_on ASC

查询是在客户客户端数据集(即

)的事件中执行的。
customersCDSAfterScroll()
{
int cID = customerCDS->FieldByName("id")->AsInteger;
customerNotesQ->Params->ParamByName("customerID")->AsInteger = bID;
customerNotesQ->Open();
//Get notes
string note = stdstr(customerNotesQ->FieldByName("note")->AsString);
Log(lInfo) << "Note is: "<<note;
customerNotesQ->Close();

}

该查询由数据集提供者,客户端数据集和数据源组件引用。在UI上,tdblookuplistbox正在接收数据。

问题是,TDBlookPlistBox向所有客户显示所有注释。在日志消息中,从上面的代码中,我可以看到查询似乎正确地完成了其作业。

对出了什么问题有任何想法吗?

由于查询结果仅包含由参数正确过滤的注释,因此该查询不可能是将数据提供到列表框的一个。

因此,答案可能是您对dblookuplistbox进行了错误配置,并将另一个数据源分配给了它,一个指向没有过滤笔记的查询。

也看不到当您分配param值并打开查询时,CustomerNotesq是否真的关闭。但是如果没有,参数将没有效果。