Ist es möglich, eine Verwendung TClientDataSet in nicht visuellen Einheit oder innerhalb einer Klasse-Objekt zu erstellen?

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

  •  05-09-2019
  •  | 
  •  

Frage

Ist es möglich, eine TClientDataSet innerhalb eines Objekts zur Laufzeit zu erstellen und verwenden?

Ich mag auf einige Veränderungen in meinem Tisch machen und die habe alle zur gleichen Zeit im Cache wie Art und Weise angewandt und TClientDataSet läßt mich das tun. Wissen Sie, wenn ich dies tun, möchte ich eine TForm zu bauen.

Ist es möglich?

UPDATE

Kann es verwendet werden, und wie, ohne TDataSetProvider und kein TSQLQuery? Weil ich es versuchte, und es gab mir einen Fehler keinen Provider !!

War es hilfreich?

Lösung

Komponenten sind nur Klassen, und Sie können sie verwenden ebenfalls:

procedure TMyObject.DoSomeDBStuff;
var
  localClientDataset: TClientDataset;
begin
  localClientDataset := TClientDataset.Create( );
  try

  finally
    localClientDataset.Free;
  end;
end;

Sie können auch eine ClientDataSet-Eigenschaft, wenn Sie mögen:

type
  TMyObject = class
  private
    FClientDB: TClientDataset;
  published
    property Dataset: TClientDataset read FClientDB;
  end;

Einige visuellen Komponenten ein visuell Eltern erfordern zwar, aber für TClientDataset sollte es keine solche Anforderung sein.

Andere Tipps

Sie können eine TClientDataset zur Laufzeit erstellen. (Siehe Vegar Antwort.) Was die Anbieter Problem, die Lösung Felder ist für sie zu definieren, öffnen Sie dann den Datensatz mit der CreateDataSet Methode (nicht die Open-Methode!) Und dann wird es funktionieren.

Natürlich können Sie das tun. Aber Sie können auch prüfen, ein Datenmodul. Sie können nicht sichtbare Komponenten zu einem Datenmodul ziehen und den Objektinspektor die Werte setzen.

Ja, Sie tun können, TClientDataSet ist nicht visuelle Komponente, und zwar nicht nur innerhalb Formen verwendet werden, entworfen.

Sie können eine Einheit (.pas ohne .dfm) bauen, als Klassen und Methoden, die TClientDataSet verwendet und zurückgeben kann es auch als Parameter.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top