是否有可能建立在非可视单元或内部的类对象的使用的TClientdataSet?

StackOverflow https://stackoverflow.com/questions/569254

  •  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并且还返回它作为参数。类和方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top