![]() |
Datenbank: MySQL • Version: 5.7.11 • Zugriff über: MyDac
Übergabe der Connection
Hallo zusammen,
ich habe mehrere Units die ich in verschiedenen Programmen nutze, ich habe noch keine Lösung gefunden die Connection der Haupt-Form an die Units zu übermitteln. Ich verwende MyDac für die Verbindung zur Datenbank. Auf der Haupt-Form wird TMyConnection und TMyConnectDialog plaziert. In allen anderen Units mit Datenbankverbindung wird die Haupt-From in die Uses aufgenommen und es kann dann die Connection in TMyQuery eingebunden werden. Und hier habe ich ein Problem da die Haupt-Form immer eine andere ist. Möchte ich ein Programm kompilieren müsste ich jedes Mal die Units anpassen :wall: Wie macht ihr das? Gibt es hier eine elegante Lösung?? Gruß Sidi |
AW: Übergabe der Connection
Erstmal, warum liegt die Connection auf der Hauptform und nicht z.B. auf einem Datenmodul, welches jede Unit kennt?
Andererseits kann man sich auch fragen, warum überhaupt jeder etwas Globales kennen muß, anstatt er es am Anfang, bzw. bei Aufruf, übergeben bekommt? Vorallem wenn man daran denkt, dass man Units/Module in mehreren Programmen verwendet und auch in Hinblick auf Wartbarkeit und Testbarkeit. |
AW: Übergabe der Connection
Zitat:
Gruß Sidi61 |
AW: Übergabe der Connection
Das Datenmodul ist natürlich auch zur Designtime verfügbar. (außer man erstellt es erst zu Laufzeit "manuell").
Und es verbietet dir niemand, dass du im Formdesigner eine Debugconnection verwendets und zur Laufzeit eine andere Connection angehangen wird. Da kann dann auch jedes Modul seine eigene Connection besitzen (im Formdesigner) und muß dort noch keine globale Connection kennen. Man darf sich da auch gern eine eigene Connection-Klasse ableiten, wo man in der IDE nur einmal die Verbindungsdaten zum Entwicklungdatenbankserver einrichtet. |
AW: Übergabe der Connection
Das mit dem Datenmodul würde grundsätzlich funktionieren, nur beim Kompilieren hagelt es Fehlermeldungen wegen fehlender Datenbankverbindung noch bevor ein Form sichtbar wird.
Liegt TMyConnection und TMyConnectDialog auf der Hauptform wird MyConnectDialog automatisch aufgerufen. Wie kann ich bei Verwendung eines Datenmoduls nun die Connection erzeugen bevor die Forms erzeugt werden?? Gruß Sidi61 |
AW: Übergabe der Connection
Hallo,
lass Dir den Quelltext anzeigen und ändere die Reihenfolge der Erzeugung Deiner Forms. Das Datenmodul muss als erstes erzeugt werden. Olaf |
AW: Übergabe der Connection
Zitat:
Nachdem ein rudimentäres "Startformular" erstellt wurde, sollte ein Programm seine Datenbank suchen, und im Fehlerfall eine aussagekräftige Meldung ausgeben. Alles was in diesem Zusammenhang "Auto" ist, sollte man tunlichst meiden. Edith: Warum interessieren sich Deine Units überhaupt für die Datenbank? Die Routinen eines Datamodules liefern die notwendigen Daten, egal woher sie kommen. Dem Restprogramm kann es schließlich egal sein woher sie kommen. Gruß K-H |
AW: Übergabe der Connection
Hallo,
wir haben alle mal angefangen mit einer TTable auf dem Formular ... Also bitte nicht sofort auf ihn draufhauen, wer er etwas eurer Meinung suboptimales macht. Zitat:
Ich würde im OnCreate des DataModuls einfach Connection.Active=False setzen. Ausserdem würde ich alle Forms ausser dem Hauptform dynamisch erstellen, das wäre aber schon der nächste Thread. |
AW: Übergabe der Connection
Zitat:
Gruß K-H |
AW: Übergabe der Connection
[QUOTE=p80286;1378678
Edith: Warum interessieren sich Deine Units überhaupt für die Datenbank? Die Routinen eines Datamodules liefern die notwendigen Daten, egal woher sie kommen. Dem Restprogramm kann es schließlich egal sein woher sie kommen. Gruß K-H[/QUOTE] Weil z.B. ein Kassenbuch das in verschiendenen Anwendungen verwendet werden soll und aus mehreren Forms besteht wie Kontenramen, Auswertdialog, MwSt Tabellen, Kontogruppen usw. am Ende doch sehr umfangreich ist aber alle Datenbank Routinen und Einstelldaten beinhalten soll, nicht die Datenbank Funktionalität an ein Datenmodul abgeben kann sonst habe ich am Ende für jede Thema ein eigenes Datenmodul. Das mit dem Auslagern der TMyConnection in ein Datenmodul war schon der richtige Ansatz, ich muss jetzt eben meine Angewohnheiten ein wenig ändern und die Datei nicht mehr in der OnCreate öffnen sondern nachdem alle Formulare erzeugt sind von der Hauptanwendung aus - dann müsste es klappen, und was ich mache wenn es nicht klappt das sehe ich dann wenn es nicht klappt, das klappt immer :thumb: Danke für eure Hilfe Gruß Sidi |
AW: Übergabe der Connection
Zitat:
Gruß K-H |
AW: Übergabe der Connection
Hi zusammen
Der Thread ist zwar schon etws älter, aber ich erlaube mir trotzdem, noch meinen Senf dazuzugeben: Zitat:
Zitat:
Gruss Delbor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz