AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DataSource-Einstellung im OI funktioniert nicht

Ein Thema von Jasocul · begonnen am 23. Okt 2019 · letzter Beitrag vom 24. Okt 2019
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#1

DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 07:20
Situation:
  • Aus einem Projekt habe ich 2 Forms und 1 DataModule kopiert um, diese in einem neuen Projekt zu nutzen. Es gab geringfügige Anpassungen im Uses-Bereich, um selbst definierte Typen und Konstanten aus einer anderen Unit zu nehmen. Die Anpassungen können keine Auswirkung auf mein Problem haben.
  • In einem TCRDBGrid (mit eigenen Erweiterungen und seit Jahren so verwendet) wird im OI eine DataSource aus dem kopierten DataModule zugewiesen.
  • Das DataModule wird zur Laufzeit erzeugt.
  • Das DataModule wird nicht zusätzlich automatisch erzeugt.
  • Das zugehörige DataSet (Query) hat Ergebnisse.
  • Im Grid wird nichts angezeigt. Die Darstellung ist so, als wäre das DataSet nicht aktiv.

Was ich bisher geprüft oder gemacht habe:
  • Alle Sourcen durchsucht, ob es noch eine Instanz des DataModules existiert. Ist nicht der Fall.
  • Alle DCUs gelöscht
  • DPR-Datei geprüft. Alles korrekt.
  • Debugging ergibt, dass DataSource aus dem OI eine andere Adresse hat, als die im DataModule.

Wenn ich die DataSource im Code neu zuweise, wird alles korrekt angezeigt. Aber das will ich so nicht akzeptieren. Hat jemand eine Idee, woran das liegen kann oder was ich nochmal prüfen kann?
Ich hatte so einen Fall noch nie. Auch ein Kollege von mir hat schon einen Blick darauf geworfen und konnte nichts falsches entdecken.

Ergänzung:
Wenn ich das DataModule automatisch erzeugen lasse, funktioniert alles. Das ist bei mir aber nicht üblich, da ich alle Forms und DataModule nur dann erzeuge, wenn es im Programm benötigt wird.
Peter

Geändert von Jasocul (23. Okt 2019 um 08:06 Uhr) Grund: Ergänzung dazu geschrieben
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 08:11
Einfach die die Zuweisung wiederholen und mal in der Textvariante des DFM(spätestens nach dem Speichern) nachschauen, ob der Datasource Eintrag wirklich da ist.
Zur Kontrolle ein Label auf die Form bringen, das beim scroll o.ä. einen (wechselnden) Feldwert aus dem Dataset anzeigen soll, irgendeine Spalte, die sich häufig ändert. Das wird wahrscheinlich funktionieren, da es jenseits (vor) der Datasource Bindung geschieht.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.006 Beiträge
 
Delphi 12 Athens
 
#3

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 08:13
Auch ein Kollege von mir hat schon einen Blick darauf geworfen und konnte nichts falsches entdecken.
Und der konnte dazu sogar den Source-Code sehen! Wenn das hier nicht geht, dann erstelle ein minimales Testprojekt, mit dem du das Problem reproduzieren kannst. In den meisten Fällen findest du dabei den Fehler selbst.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 08:23
Einfach die die Zuweisung wiederholen und mal in der Textvariante des DFM(spätestens nach dem Speichern) nachschauen, ob der Datasource Eintrag wirklich da ist.
Das habe ich natürlich schon längst gemacht. Fehlt nur in der Aufstellung. Sorry.
Zur Kontrolle ein Label auf die Form bringen, das beim scroll o.ä. einen (wechselnden) Feldwert aus dem Dataset anzeigen soll, irgendeine Spalte, die sich häufig ändert. Das wird wahrscheinlich funktionieren, da es jenseits (vor) der Datasource Bindung geschieht.
Da die Steuerung nur über das Grid erfolgt, habe ich dazu keine Möglichkeit.
Ich habe auch mal einen TDBNavigator dazu gelegt. Auch der hat keine Verbindung zur DataSource.

Was funktioniert:
Wenn ich in der Entwicklungsumgebung das Query aktiv schalte, zeigt er auch Daten im Grid an.
INTERESSANT DABEI:
Lasse ich die Query aktiv und starte das Programm, werden die Daten aus der Entwicklungs-Umgebung angezeigt.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 08:26
Auch ein Kollege von mir hat schon einen Blick darauf geworfen und konnte nichts falsches entdecken.
Und der konnte dazu sogar den Source-Code sehen! Wenn das hier nicht geht, dann erstelle ein minimales Testprojekt, mit dem du das Problem reproduzieren kannst. In den meisten Fällen findest du dabei den Fehler selbst.
Das habe ich schon in Betracht gezogen, aber noch nicht umgesetzt. Meine Hoffnung war bisher, dass ich einfach irgendwas übersehen habe und von euch mit der Nase drauf gestoßen werde.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#6

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 09:04
Moin...
Zitat:
Das DataModule wird zur Laufzeit erzeugt.
...aus Versehen nach dem Grid?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 09:09
Ohne Code geraten:
Erst Datasource aus Datenmodul zugewiesen, dann Datenmodul erzeugt. Würde wahrscheinlich nur unauffällig laufen, wenn irgendwo ein catch all exception handling ohne allgemeine Fehlerausgabe liegt.

Wenn Du schon ein Kontrollabel spendieren würdest, um Datasetinhalte zu zeigen, könntest Du ja auch noch einen Button dazu spendieren, der ein dataset.next macht oder sowas.

Ist denn das ganze bei durchlaufendem Delphi? Oder hast Du schon mal neu gestartet?

@haentschan: Das ist gut, die datasource wird ja gar nicht per code hinzugefügt, sondern im OI.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#8

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 09:41
Zitat:
Das ist gut,
Meinst du das ironisch? Die DataSource liegt auf dem DataModule. Wenn es (DataSource) zwar im Grid im OI eingetragen wird, aber das Datamodule nicht da ist wird es beim Erzeugen des Grids imho ignoriert...oder

Geändert von haentschman (23. Okt 2019 um 10:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 23. Okt 2019, 10:48
Uwe hat natürlich wieder mal Recht.
Neues Projekt angelegt, die Forms und das Datamodule eingebunden.
Danach Stück für Stück den Source minimiert, bis die Ursache erkennbar war.

Das DataModule wurde zwei mal erzeugt.
Das Schlimme dabei: Zwischen den Zeilen steht nur ein "Try".

Mit zwei Programmierern angesehen und beide haben es überlesen.

Jetzt erstmal sehen, warum das andere Projekt an der Stelle überhaupt funktioniert.

Danke für die Unterstützung.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: DataSource-Einstellung im OI funktioniert nicht

  Alt 24. Okt 2019, 09:36
Abgesehen von diesem dämlichen Fehler, habe ich noch ein Verständnisproblem.
Auch beim zweimaligen Erzeugen der Instanz, wird ja die selbe Instanz-Variable verwendet. Warum wird dann trotzdem die erste Instanz bei der DataSource-Verbindung verwendet?

Nochmal zur Übersicht:
Die erste Form wird erzeugt.
Diese erzeugt die Instanz für das DataModule zwei mal, aber mit der selben Variablen.
Später wird dann die zweite Form mit dem Grid erzeugt. Die DataSource für das Grid ist schon im OI eingetragen worden.

Ich verstehe nicht, warum hier die "alte" Instanz genutzt wird. Ich würde gerne verstehen, warum das so ist.
Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:43 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