Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Komponenten über Variablen ansprechen (https://www.delphipraxis.net/206134-komponenten-ueber-variablen-ansprechen.html)

oltrop.de 22. Nov 2020 12:10

Komponenten über Variablen ansprechen
 
Hallo Zusammen,

ich habe 3 Datenbankabfragen, die 3 verschiedene Connections (Mandanten) nutzen.
qryGetBestand
qryGetBestandF02
qryGetBestandF08


Im Code steht jezt z.B.

with DMServer.qryGetBestand do
begin
....
end;

Kann ich das irgendwie ersetzen, das er über eine Variable die richtige Abfrage nutzt?
Ich will den Code nicht 3x schreiben, sondern je nach Situation eine der 3 Abfragen aufrufen.

So klappt es nicht:

var
Abfrage : String;

begin
Abfage := 'DMServer.qryGetBestandF02';

with Abfrage do
begin
....
end;


Zum Hintergrund: Es handelt sich hier um ein Server-Programm, welches von mehreren Scannern angesprochen wird.
Je nach Mandant muss ich verschiedene Datenbanken ansprechen. Ich regel das jetzt über verschiedene Connections und verschiedenen Queries.
Ich will nicht jedesmal die Connection innerhalb der Abfrage umbiegen. Könnte zu Problemen bei mehreren gleichzeitigen Anfragen kommen.
Jemand eine Idee?

Ich hoffe ihr versteht was ich möchte :)

Gruß Christian

Delphi.Narium 22. Nov 2020 12:32

AW: Komponenten über Variablen ansprechen
 
Delphi-Quellcode:
var
Abfrage : TQuery; // bzw. der Typ, von dem qryGetBestand, ... sind.

begin
  Abfrage := DMServer.qryGetBestandF02;
  with Abfrage do
  begin
    ....
  end;

oltrop.de 22. Nov 2020 12:42

AW: Komponenten über Variablen ansprechen
 
Eigentlich ganz einfach :-)

Vielen Dank für Deine Hilfe.
Habs schon ausprobiert. Klappt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:26 Uhr.

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