控件开发怎样判断使用tclientdataset?
怎样判断使用哪种数据控件?
是这样的,要开发一种数据库控件,前面两层只要如下代码
DataSource.DataSet.Edit;
DataSource.DataSet.FieldByName(a).AsString := mya;
DataSource.DataSet.FieldByName(b).AsString := myb;
DataSource.DataSet.Post;
如果用三层的
tclientdataset(datasource.DataSet).ApplyUpdates(-1);要加多这句
那假设用户是用两层的ado或者bde开发,上面多的这句就使程序不能更新数据而提示出错
怎样判断datasource.DataSet是不是用clientdataset,
不要说if datasource.DataSet=clientdataset1 then,因为clientdataset的名字不一定为clientdataset1,
有什么好的办法吗?
[解决办法]
直接用程序判断好像不行吧,换种思路,在控件中加个属性
private
FISCDS: Boolean;
published
property ISCDS: Boolean read FISCDS write FISCDS;
然后
uses dbclient
if 自制控件.ISCDS then
tclientdataset(datasource.DataSet).ApplyUpdates(-1);
让程序员使用该控件前,自己选择好属性
[解决办法]
if datasource.DataSet is Tclientdataset then
begin
showmessage('Cds');
end;