Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TADOConnection auf anderem Datenmodul wie TADOQuery (https://www.delphipraxis.net/182991-tadoconnection-auf-anderem-datenmodul-wie-tadoquery.html)

HolgerCW 3. Dez 2014 07:53

AW: TADOConnection auf anderem Datenmodul wie TADOQuery
 
Sowas war ich mir auch gerade am basteln:

Delphi-Quellcode:
procedure TDM_Systemoptionen.DataModuleCreate(Sender: TObject);
var
 ADOQuery: TADOQuery;
 I: Integer;
begin

 inherited;
 DM_Systemoptionen := Self;

 For I := 0 to DM_Systemoptionen.ComponentCount - 1 do
 begin

  if DM_Systemoptionen.Components[I] is TADOQuery then
  begin

    ADOQuery := TADOQuery(DM_Systemoptionen.FindComponent(DM_Systemoptionen.Components[I].Name));

    ADOQuery.Connection := DM_Menu.ADO_Con_SYSDBP;

  end;

 end;

 //ADOQueryTreeView.Connection := DM_Menu.ADO_Con_SYSDBP;

end;

Aber besser ist es natürlich in eine Funktion zu packen damit ich das für alle Datenmodule nutzen kann, wie bei Dir.

Aber warum das bei TADO so ist ?

Jumpy 3. Dez 2014 08:11

AW: TADOConnection auf anderem Datenmodul wie TADOQuery
 
Hätte statt

Delphi-Quellcode:
ADOQuery := TADOQuery(DM_Systemoptionen.FindComponent(DM_Systemoptionen.Components[I].Name));
nicht auch

Delphi-Quellcode:
ADOQuery := TADOQuery(DM_Systemoptionen.Components[I]);
gereicht?

Davon abgesehen ist das schöne an Sir Rufos Methode, dass sie mehr entkoppelt ist, d.h. das ursprüngliche Datenmodul "DM_Menu" muss in den folgenden nicht bekannt sein, es wird einfach über den Setter die Connection übergeben. GGf. könnte man doch auch das create des Datenmoduls überschreiben (oder?) und da direkt die Connection übergeben?
Da man da ggf. auch bereits weiß wie alle Querys heißen, muss man dann auch nicht durch alle Komponenten nach den Querys suchen.
Umgekehrt ist die Setter-Funktion natürlich in anderen Datenmodulen wiederverwertbar egal wie die Querys dsa heißen.

Sir Rufo 3. Dez 2014 08:21

AW: TADOConnection auf anderem Datenmodul wie TADOQuery
 
Das tut doch schon beim Schreiben weh, oder?
Delphi-Quellcode:
procedure TDM_Systemoptionen.DataModuleCreate(Sender: TObject);
var
 ADOQuery: TADOQuery;
 I: Integer;
begin

 inherited;
 DM_Systemoptionen := Self;
Wie kann man nur auf dieses schmale Brett kommen? :wall:

HolgerCW 3. Dez 2014 08:41

AW: TADOConnection auf anderem Datenmodul wie TADOQuery
 
Jetzt bekomme ich Sie aber richtig hier ;)

Daher hatte ich diese Schmuddellösung:

http://www.delphipraxis.net/170594-f...stellen-3.html

Vielleicht gibt es ja was besser, aber es konnte nichts besseres gefunden werden ...

Die Lösung von Sir Rufos habe ich nun auch so übernommen ;)

Sir Rufo 3. Dez 2014 09:26

AW: TADOConnection auf anderem Datenmodul wie TADOQuery
 
Natürlich gibt es was Besseres und das wurde dort auch genannt.

Diese Lösung wurde als Schmuddelnotlösung bezeichnet und ist eigentlich noch schlimmer.

HolgerCW 3. Dez 2014 09:57

AW: TADOConnection auf anderem Datenmodul wie TADOQuery
 
Dennoch danke. Werde mal schauen wenn ich dazu komme mich mit dem Thema nochmal zu befassen, da es ja eigentlich stabil läuft ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz