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?