Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Query als Funktionsparameter (https://www.delphipraxis.net/165834-query-als-funktionsparameter.html)

fly_singapore 18. Jan 2012 12:39

Query als Funktionsparameter
 
Hallo Allerseits,

Ich stehe hier vor ein kleineres Problem und benötige etwas Schützenhilfe:

Auf einer Form habe ich ein QueryControl gesetzt.

Ich habe dann eine Unit erstellt, die im Wesentlichen alle Funktionen und Prozeduren zu Datenbank-Operationen aufnehmen soll.

Jetzt ist es so, dass die Unit die ursprüngliche Query nicht kennt.
Ich habe versucht, die Standardunit im Abschnitt Uses einzubinden, leider ohne Erfolg.

Ich überlege mir zwei Alternativen:

1. Ich übergebe einer Funktion, die in der Datenbank-Unit definiert ist, ein Objekt der Klasse TADOquery. Die kann ich aber nicht in der Funktion nicht nutzen, da das Objekt nicht die Query-spezifischen Eigenschaften kenn.

2. Ich "veröffentliche" das QueryObjekt Anwendungsweit über alle Units und Formen.

Ich weiss, das ich die Datenbank-Controls weiterverwenden kann, aber leider fehlt mir der Weg dazu. :oops:

Danke im Voraus

Blup 19. Jan 2012 16:55

AW: Query als Funktionsparameter
 
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
Hallo Allerseits,

Ich stehe hier vor ein kleineres Problem und benötige etwas Schützenhilfe:

Hallo.
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
Auf einer Form habe ich ein QueryControl gesetzt.

Schlechter Platz, dafür gibts eigentlich Datenmodule, aber was solls.
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
Ich habe dann eine Unit erstellt, die im Wesentlichen alle Funktionen und Prozeduren zu Datenbank-Operationen aufnehmen soll.

Eine Unit soll alles können?
Was tun dieses Funktionen und Prozeduren im einzelnen.
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
Jetzt ist es so, dass die Unit die ursprüngliche Query nicht kennt.

Muss sie ja nicht, wenn du diese als Parameter übergibst.
Ob das Konzept sinnvoll ist, ist eine andere Frage.
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
Ich habe versucht, die Standardunit im Abschnitt Uses einzubinden, leider ohne Erfolg.

Was bitte ist "die Standardunit"?
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
Ich überlege mir zwei Alternativen:

1. Ich übergebe einer Funktion, die in der Datenbank-Unit definiert ist, ein Objekt der Klasse TADOquery. Die kann ich aber nicht in der Funktion nicht nutzen, da das Objekt nicht die Query-spezifischen Eigenschaften kenn.

Was sollten das für Eigenschaften sein, jede Eigenschaft die du gesetzt hast (Parameter, SQL, Felder usw.) kann man auch wieder abfragen.
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
2. Ich "veröffentliche" das QueryObjekt Anwendungsweit über alle Units und Formen.

Ganz schlechte Idee.
Zitat:

Zitat von fly_singapore (Beitrag 1146459)
Ich weiss, das ich die Datenbank-Controls weiterverwenden kann, aber leider fehlt mir der Weg dazu. :oops:

Danke im Voraus

Auf mich wirkt das alles sehr konfus.
Ohne zu wissen was du eigentlich erreichen willst und mehr Details wid dir kaum jemand helfen können.

p80286 19. Jan 2012 17:35

AW: Query als Funktionsparameter
 
Na ist doch klar was er gemacht hat:
In der Unit1 (form-unit) befindet sich die ADOQuery
In der Unit2 sind alle DB-Funktionen untergebracht.
und in Unit1 steht
Delphi-Quellcode:
Uses Unit2
...
Unit2.MyFunction(prm1);
....
und in Unit2:
Delphi-Quellcode:
Uses Unit1
...
Unit1.AdoQuery1....
...
Und das geht nicht *schnief*

Zitat:

Schlechter Platz, dafür gibts eigentlich Datenmodule, aber was solls.

So ist das!!
Gruß
K-H

fly_singapore 20. Jan 2012 12:46

AW: Query als Funktionsparameter
 
Hallo p80286 (K-H)

mit der vorgenannten

Delphi-Quellcode:

unit.ADOQuery3
ging es leider nicht so gut, jedoch habe ich noch den Formularnamen <Form1> angeben, da diese
die ADOQuery als control beinhaltete

Delphi-Quellcode:
unit.form1.ADOQuery3
So ging es. Es ging auch nur mit der <Form1>

Delphi-Quellcode:

form1.ADOQuery3
Das mit dem Datenmodul muss ich mir noch einmal durchlesen. Mit der Delphi-Programmiererei habe ich halt einige Jahre pausieren müssen.

Jedenfalls vielen Dank !!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 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