Hi zusammen
Mit folgender Klasse speichere ich die von einem SQLStatement von
MySQL zurückgegeben Daten zwischen:
Delphi-Quellcode:
type
TQueryResultClass = Class(TPersistent)
private
FidBild: Integer;
FThumbnail : TMemorystream;
FBitmap: TMemorystream;
FBildDescribeTabelle : TBildDescribeTabelle;
FKategoryTabelle : TKategoryTabelle;
FPass: String;
FUser: String;
procedure SetBitmap(Value: TMemoryStream);
procedure SetThumbnail(Value: TMemoryStream);
function GetBitmap: TMemoryStream;
function GetThumbnail: TMemoryStream;
function FillThumbnail(var Thumbnail: TMemoryStream): TMemoryStream;
public
constructor Create(AOwner: TComponent); //
destructor Destroy; override;
procedure Assign(Source:TPersistent); override;
property IdBild :integer read FidBild write FidBild;
property Thumbnail: TMemoryStream read GetThumbnail write SetThumbnail;
property Bitmap: TMemoryStream read GetBitmap write SetBitmap;
property BildDescribeTabelle : TBildDescribeTabelle read FBildDescribeTabelle write FBildDescribeTabelle;
property KategoryTabelle : TKategoryTabelle read FKategoryTabelle write FKategoryTabelle;
end;
Nun arbeite ich daran, die AnwendungsDB auf SQLite umzustellen. Leider (?) habe ich Kritik von
hier wegen unsäglich langer Taellennamen befolgt und zu diesem Zweck ein neues Datenbankmodell, analog dem mit
MySQL benützten, aber mit deutlich gekürzten Tabellennamen erstellt.
Das heisst, ich kann obige Klasse nicht verwenden, sondern muss eine neue, grundsätzlich gleich aufgebaute Klasse erstellen - ein e Anforderung an die Klasse ist, dass deren Felder und Propertys so heissen, wie die Tabellen, deren Inhalte sie übernehmen sollen. Allees andere gäbe früher oder später ein unentwirrbares Chaos.
Die neue, noch nicht fertig erstellte Klasse mit den neuen Tabellennamen:
Delphi-Quellcode:
type
TCMQueryClass = Class(TPersistent)
private
FidBild: Integer; // FidBild: Integer;
FThumbnail : TMemorystream; // FThumbnail : TMemorystream;
FBitmap: TMemorystream; // FBitmap: TMemorystream;
FTblBildText : TTblBildText; // FBildDescribeTabelle : TBildDescribeTabelle;
FTblAlbum : TTbl_Album; // FKategoryTabelle : TKategoryTabelle;
FPass: String; // FPass: String;
FUser: String; // FUser: String;
procedure SetBitmap(Value: TMemoryStream); // procedure SetBitmap(Value: TMemoryStream);
procedure SetThumbnail(Value: TMemoryStream); // procedure SetThumbnail(Value: TMemoryStream);
function GetBitmap: TMemoryStream;
function GetThumbnail: TMemoryStream;
function FillThumbnail(var Thumbnail: TMemoryStream): TMemoryStream;
public
constructor Create(AOwner: TComponent); // override;
destructor Destroy; override;
procedure Assign(Source:TPersistent); override;
property IdBild :integer read FidBild write FidBild;
property Thumbnail: TMemoryStream read GetThumbnail write SetThumbnail;
property Bitmap: TMemoryStream read GetBitmap write SetBitmap;
property TblBildText : TTblBildText read FTblBildText write FTblBildText;
property TblAlbum : TTbl_Album read FTblAlbum write FTblAlbum;
end;
Ich habe mir lange darüber Gedanken gemacht, wie man dieses Problem mit
OOP-Miteln lösen könnte, aber bislang keine befriedigende Lösung gefunden.
Hat jemand einen Vorschlag?
Gruss
Delbor