Hi Sakura
Ich hab mir DeddyHs Atwort zuunterst auf Seite eins nochmal angesehen. Meinst du die? Das könnte dann etwa so umgesetzt werden:
Delphi-Quellcode:
function TFDMySQLDml.GetContentmasterTables: TStringlist;
var SqlString : String; I: integer;
begin
if FContentmastertables = Nil then then
begin
FContentmastertables := Tstringlist.Create;
SqlString := 'SHOW TABLES';
FDQueryMain.Open(SqlString);
FDQueryMain.First;
while not FDQueryMain.Eof do
begin
FContentmastertables.Add(FDQueryMain.Fields.Fields[0].AsString);
FDQueryMain.Next;
end;
FDQueryMain.Close;
end;
Result := (FContentmastertables);
end;
Stimmt, so wird die Abfrage nur einmal durchgeführt, vorausgesetzt die Tabelle ändert sich nicht. Was sie allerdings zumindest zur Laufzeit nie tun sollte.
Gruss
Delbor
PS: Oder meinst du etwa dies aus Beitrag 18:
Zitat:
constructor TDingens.Create;
begin
FTablenames := TStringList.Create;
FillTablenamesFormSomewhere(FTablenames);
end;
Das gefällt nun mir nicht wirklich. Und DeddyH selbst wohl auch nicht.
Hier greift das Datenmudul nach oben*, was bei einer Trennung der Programmlogiken in verschiedene Schichten eben vermieden werden soll.
*Zumindest, wenn ich den Aufruf richtig interpretiere.