AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Datenkomponenten verlieren Datasource
Thema durchsuchen
Ansicht
Themen-Optionen

Datenkomponenten verlieren Datasource

Ein Thema von hschmid67 · begonnen am 15. Dez 2016 · letzter Beitrag vom 18. Dez 2016
Antwort Antwort
hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
62 Beiträge
 
Delphi 10.4 Sydney
 
#1

Datenkomponenten verlieren Datasource

  Alt 15. Dez 2016, 08:34
Hallo zusammen,

da diese meine erste Frage hier ist, zunächst ein großer Dank vorneweg für die vielen engagierten Experten und nützlichen Tipps hier!

Kurz zu meiner Person: Ich programmiere mit Delphi (auch beruflich) seit Version 1, viele Projekte mit Delphi 6 und 2007, dann jetzt wieder intensiv seit XE8. Schwerpunkt sind Datenbankanwendungen im Hochschulbereich, meist mit MySQL.

Nun zu meiner aktuellen Frage: In manchen Projekten, seltsamerweise nicht in allen, verschwinden die Verknüpfungen der Datenkomponenten zu den Datasources nach einem erneuten Öffnen des Projekts. Ich habe oft nur ein einfaches Form mit den Komponenten und ein Datenmodul mit den Datasources (und Datasets). Dann binde ich die Datenmodul-Unit in die uses des Mainforms ein. Also, eigentlich nichts Besonderes.

Gibt es etwas, was das Verschwinden der Zuordnung auslöst, oder ist es rein zufällig, wie es mir gerade erscheint? Worauf könnte ich achten? Warum passiert es nicht bei allen Projekten, die so aufgebaut sind?

Bei den Komponenten scheint es egal zu sein, ob sie direkt von Delphi oder von Drittherstellern kommen.

Ich habe schon ein paar Beiträge dazu gefunden, allerdings waren die alle noch in der alten Delphi-IDE, also sehr alt und mit sehr alten Delphi-Versionen (5, 7). Und eine Lösung habe ich da auch nicht gesehen.

Kennt jemand das Phänomen und gibt es Lösungen?

Hoffentlich bin ich hier in der richtigen Rubrik? In der Datenbankprogrammierung konnte ich es nicht speichern, weil es ja keine spezifisches Datenbankproblem ist und ich daher die zusätzlichen Felder nicht ausfüllen konnte.

Viele Grüße
Harald Schmid
Harald Schmid
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Datenkomponenten verlieren Datasource

  Alt 15. Dez 2016, 08:44
Ich hatte das mal bei einem Delphi2007-Projekt. Sporadisch waren die Datasources weg.
Ich konnte das Problem umgehen, indem ich das Datenmodul zuerst per Hand geöffnet habe und danach dann die davon abhängigen Formulare. Theoretisch sollte das zwar nicht nötig sein, aber naja ... Theorie und Praxis in Einklang zu bringen ist halt immer so eine Sache für sich für sich - auch jenseits von Delphi.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
hschmid67

Registriert seit: 2. Jul 2012
Ort: Weilheim i. Obb.
62 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Datenkomponenten verlieren Datasource

  Alt 15. Dez 2016, 09:15
vielen Dank für die schnelle Antwort. Leider hatte ich das schon probiert - und es funktioniert nicht (immer). Manchmal sind trotzdem wieder die Datasources weg. Ziemlich sicher sind sie weg, wenn ich ein weiteres Datanmodul aus einem anderen Projekt noch als Reiter geöffnet habe...
Harald Schmid
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.766 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Datenkomponenten verlieren Datasource

  Alt 15. Dez 2016, 09:22
Ja, das kommt vor. Umgehen kann man das eigentlich nur, indem man die Datasource im Quellcode, also zur Laufzeit zuweist.

Ein mir bekannter Grund für das Verschwinden der Verbindung ist, wenn man mehrere Projekte hat und gleiche Namen für die Datenmodule verwendet, zB datenmodul.pas . Dann kann es ganz schnell passieren, wenn man "zur Ansicht" eine "fremde" Form in einem Projekt öffnet, daß diese ihr Datenmodul "verliert".

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
325 Beiträge
 
Delphi 12 Athens
 
#5

AW: Datenkomponenten verlieren Datasource

  Alt 15. Dez 2016, 12:30
Möglicherweise ist es auch besser, im Datenmodul nur die DataSets zu halten. Die DataSources können eigentlich auf die einzelnen Formulare. Das kann auch für die Gesamtperformance nützlich sein, wenn die Formulare nur bei Bedarf und nicht schon beim Start der Anwendung erzeugt werden.

In diesem Falle müsste man nur bei FormCreate oder FormShow der DataSource noch das DataSet aus dem Datenmodul zuordnen (falls es verloren gegangen ist). Das erspart dann die Zuweisung zu vielen einzelnen DB-Komponenten.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Datenkomponenten verlieren Datasource

  Alt 15. Dez 2016, 13:09
Hallo,

das Phänomen hatte ich auch schon des öfteren. Besonders häufig passierte es in einer MDI-Anwendung bei den MDI-Childs. Abhilfe war bei mir die Projektdatei. Hier habe ich die Reihenfolge der Uses-Liste so abgeändert, dass die Datenmodule vor den Formular-Units stehen. Wenn Fenster/Formulare vererbt werden, dann auch die vererbten Fenster/Formulare in der uses-Liste erst nach der Unit aufführen, von welcher sie vererbt wurden.

Ein weiteres Problem kann der Klassenname sein, der in der Uses-Liste mit angegeben sein muss. Beispiel
Code:
  Dat_Kun in 'Data\Dat_Kun.pas' {KunData: TDataModule},
also der Bereich der in den geschweiften Klammern steht. Manchmal ist es mir schon passiert, dass ich ein Formular/Datenmodul umbenannt habe, und der neue Klassenname dann nicht in der Uses-Liste aktualisiert wird. Oder wenn man selber manuell eine Unit mit einem Form/Datenmodul hinzufügt und den Klassennamen nicht angibt. Auch hier kommt Delphi manchmal etwas durcheinander.

Ist ja auch irgendwie verständlich. Irgendwie muss Delphi im Quellcode (in der Uses-Liste der .dpr) erkennen können, ob mit der Unit ein Objekt/Klasse eingebunden werden soll, oder ob es sich "nur" um eine einfache Unit handelt.
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS

Geändert von mm1256 (15. Dez 2016 um 13:12 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:57 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