是否有可能建立在非可视单元或内部的类对象的使用的TClientdataSet?
-
05-09-2019 - |
题
是否有可能创建并在运行时使用的TClientdataSet对象内?
我喜欢让我的表数更改,并使这些都在像路高速缓存的同时应用,和TClientDataSet让我做到这一点。知道当我想这样做,我必须建立一个TForm的。
是否有可能?
更新
是否可以使用,怎么样,没有的TDataSetProvider,没有TSQLQuery? 因为我尝试过了,它给了我一个错误没有Provider !!
解决方案
组件都只是类,你同样可以使用它们:
procedure TMyObject.DoSomeDBStuff;
var
localClientDataset: TClientDataset;
begin
localClientDataset := TClientDataset.Create( );
try
finally
localClientDataset.Free;
end;
end;
您也可以使一个ClientDataSet的属性,如果你喜欢:
type
TMyObject = class
private
FClientDB: TClientDataset;
published
property Dataset: TClientDataset read FClientDB;
end;
一些视觉组件可能需要一个视觉父虽然,但为的TClientdataSet不应该有这样的要求。
其他提示
可以在运行时创建一个TClientDataSet。 (见Vegar的答案。)而对于供应商的问题,解决的办法是定义字段,然后打开与CreateDataset方法(而不是Open方法!)的数据集,然后它会工作。
当然,你可以做到这一点。但你也可以考虑使用一个数据模块。可以拖动非可见光成分的数据模块,并使用对象检查器设置的值。
是可以做,的TClientdataSet是非可视化组件,并且不被设计成仅使用内部形式。
可以构建一个单元(.PAS而不.DFM)比具有可以使用的TClientdataSet并且还返回它作为参数。类和方法
不隶属于 StackOverflow