Einzelnen Beitrag anzeigen

Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
197 Beiträge
 
Delphi 11 Alexandria
 
#1

Fragen zu Entwicklung eines TDataSet Descendant

  Alt 9. Sep 2007, 18:16
Datenbank: MySQL • Zugriff über: TDataSet
Ich möchte einen simplen Descendant / Abkömmling von TDataset für MySQL entwickeln. Ziel ist es diese Komponente mit den bekannten visuellen DB-Komponenten wie z.B. TDBGrid, TDBMemo etc. nutzen zu können. Im Netz findet man so eine Komponente nur in der ZeosLib (TZQuery). Die ist aber leider alles andere als simpel, schlank und fehlerfrei. Wenn diese Komponente denn mal fertig ist, wird sie auf jeden Fall OpenSource Na jedenfalls habe ich dazu bisher 2 Komponenten halb fertig:

Delphi-Quellcode:
TMySQLConnection = class(TObject)
TMySQLQuery = class(TDataSet)
Die TMySQLConnection wird von TMySQLQuery als Property verwendet und kümmert sich um den Verbindungskram, was bereits wunderbar läuft (mithilfe der mysql.pas von Matthias Fichtner).

Die TMySQLQuery enthält bereits grundlegende Eigenschaften und soll am Ende ähnlich wie ein TQuery zu benutzen sein:

Delphi-Quellcode:
TMySQLQuery = class(TDataSet)
    private
      FSQL: TStrings;
      FConnection: TMySQLConnection;
      FRowsAffected: Int64;
      procedure SetQuery(Value: TStrings);
      procedure SetConnection(Value: TMySQLConnection);
    protected
      function GetConnection: TMySQLConnection;
    public
      constructor Create(AOwner: TComponent); override;
      procedure ExecSQL;
      property RowsAffected: Int64 read FRowsAffected;
    published
      property SQL: TStrings read FSQL write SetQuery;
      property Connection: TMySQLConnection read FConnection write SetConnection;
  end;
Das ist alles was bisher funktioniert.

Jetzt fehlt mir bei TMySQLQuery das Wissen, um die Schnittstelle zu TDataSource zu implementieren. Der Compiler nennt mir immerhin 6 abstrakte Methoden, die ich noch zu überschreiben habe:
Zitat:
W1020 constructing instance of 'TMySQLQuery' containing abstract method 'TDataSet.GetRecord'
W1020 constructing instance of 'TMySQLQuery' containing abstract method 'TDataSet.InternalClose'
W1020 constructing instance of 'TMySQLQuery' containing abstract method 'TDataSet.InternalHandleException'
W1020 constructing instance of 'TMySQLQuery' containing abstract method 'TDataSet.InternalInitFieldDefs'
W1020 constructing instance of 'TMySQLQuery' containing abstract method 'TDataSet.InternalOpen'
W1020 constructing instance of 'TMySQLQuery' containing abstract method 'TDataSet.IsCursorOpen'
Ich habe mir die entsprechenden Methoden in TBDEDataSet (TQuery) und TZAbstractRODataset (ZeosLib) angesehen und verstehe nur Bahnhof.

Kennt jemand FAQs, Starthilfen oder sonstwas mit denen ich mich in dieses Thema "reinlesen" kann?
Ansgar Becker
  Mit Zitat antworten Zitat