Tag allerseits,
Ich bin gerade am Programmieren und auf ein merkwürdiges Problem unter D2010 Professional gestoßen.
Und zwar habe ich eine
DB-Anwendung mit einem Datenmodul (
Unit uDataModule, Name
DataMod), wo die
DB-Verbindung und die Queries sowie einige DataSources drauf sind. Dazu mehrere Formulare, die
DB Daten anzeigen und manipulieren.
Weiterhin eine
Unit uClasses mit diversen Klassen, von denen einige auch das
DB-Modul verwenden, jedoch ist die
Unit dort nur im
implementation-Abschnitt ausgeführt. Zusätzlich referenziert das Datenmodul die Klassen-
Unit im Interface-Abschnitt (es liegt also eine Kreuzverbindung vor).
Das hat auch "immer" ohne Probleme funktioniert. Neuerdings kann ich allerdings ein mir unerklärliches Phänomen beobachten:
Ändere ich etwas im Datenmodul (Text oder Designer), kann ich das Projekt nicht mehr normal compilieren. Folgende Fehlermeldung erscheint:
Code:
[DCC Fataler Fehler] uDataModule.pas(1289): F2051
Unit uClasses wurde mit einer unterschiedlichen Version von uDataModule.DataMod compiliert
Ändere ich nun die
uClasses, sodass diese neu übersetzt wird, funktioniert es problemlos. Genauso wie mit einem "Neu erzeugen" des gesamten Projekts.
Die referenzierte Zeilenangabe in der Fehlermeldung zeigt auf ein "DBConnection.Disconnect" (Zeos "TZConnection"), wobei allerdings bei einigen Tests, wo ich die Units umbenannt habe, diese Meldung hinter dem "end." auftauchte.
Nachdem löschen der
DCU-Datei der uClasses funktioniert die Compilierung erneut, solange bis ich dann ein zweites mal das Datenmodul ändere. Dann tritt erneut dieser Fehler auf.
Folgende Dinge habe ich, nach einiger Forenrecherche zusätzlich versucht, um das Problem zu beheben:
- Bereinigen der Bibliotheks- und Suchpfade von alten D2005 Pfaden (das Projekt war vorher auf D2005 entwickelt worden)
- Bereinigen der PATH Variable um diese Pfade
- Beobachtung mit Process Monitor, welche Pfade abgesucht werden während der Compilierung
Alles jedoch bisher ohne Erfolg.
Weiß jemand von euch, woran dies liegen und evtl. wie ich das beheben könnte?
Viele Grüße