Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DB-Komponente verändert Eintrag selbständig (https://www.delphipraxis.net/169389-db-komponente-veraendert-eintrag-selbstaendig.html)

Perlsau 17. Jul 2012 06:48

Datenbank: Firebird • Version: 2.5 • Zugriff über: FibPlus

DB-Komponente verändert Eintrag selbständig
 
Moin allerseits!

Folgendes Szenario:

Firebird-Datenbank (FB-DB) in E:\Datenbanken\
Dazugehöriges Projekt in D:\Coding\Projekt\

Zum Entwickeln arbeite ich mit der Server-Version der Datenbank auf Laufwerk E:. Gelegentlich erstelle ich zum Testen Releases des Projekts auf anderen Laufwerken, gestern z.B. auf einem Stick mit der Laufwerkskennung H:. Nachdem Delphi beendet wurde, kopierte ich in den Ordner H:\MeinProjekt\ alle relevanten Projekt-Dateien nebst der FB-Datenbank aus E:\Datenbanken\ und richtete die zugehörige Ini-Datei auf Embedded-DB ein. Wohlgemerkt: nachdem Delphi beendet wurde! Dann hab ich ein wenig damit rumgetestet und danach meine Projekt-EXE beendet und den Stick wieder abgezogen.

Beim nächsten Delphi-Start verwies meine Datenbank-Komponente im Datenmodul meines Projekts überraschenderweise nicht mehr auf die FB-DB in E:\Datenbanken\, sondern auf die DB in H:\MeinProjekt\. Der Stick war nicht mal mehr im PC, ein Laufwerk H: existierte beim Neustart der IDE nicht.

Bemerkt hab ich das erst, nachdem ich mit IBExpert eine Änderung an der DB-Struktur vorgenommen hatte und gleich darauf feststellen mußte, daß ich das entsprechende Dataset im Datenmodul meines Projekts nicht aktualisieren konnte.

Wie kommt denn sowas zustande? Wie ist es möglich, daß der Objektinspektor nun plötzlich den Verweis auf die DB auf H: zeigt, obwohl FibDatabase davor eindeutig auf die DB auf E: eingestellt war?

Furtbichler 17. Jul 2012 07:48

AW: DB-Komponente verändert Eintrag selbständig
 
Ist das ein reproduzierbares Verhalten?

Perlsau 17. Jul 2012 08:13

AW: DB-Komponente verändert Eintrag selbständig
 
Zitat:

Zitat von Furtbichler (Beitrag 1174877)
Ist das ein reproduzierbares Verhalten?

In der Tat. Hab es eben noch einmal ausprobiert: Delphi beendet, ein Verzeichnis MeinProjekt erstellt, alle zur Programmausführung notwendigen Dateien vom ProjektOrdner/Bin in MeinProjekt kopiert, die Exe in MeinProjekt gestartet, beendet und danach Delphi wieder gestartet. Der Eintrag für DBName blieb erstmal erhalten ...

Danach Delphi wieder geschlossen, die Exe in MeinProjekt nochmal gestartet, beendet und den Rechner runter- und hochgefahren. Nach dem Start von Delphi ist der Eintrag für DBName jetzt verändert und steht nun auf MeinProjekt. Und wenn du's nicht glaubst, dann filme ich das Ganze mit meiner Kamera und stell das Video ins Web :lol:

schlecki 17. Jul 2012 08:17

AW: DB-Komponente verändert Eintrag selbständig
 
moin

Schreiben vielleicht die FibPlus-Komponenten die zuletzt verwendete DB irgendwo hin (Registry, User-Verzeichnis)?


Gruß
Steve

Perlsau 17. Jul 2012 08:33

AW: DB-Komponente verändert Eintrag selbständig
 
Zitat:

Zitat von schlecki (Beitrag 1174883)
moin

Auch Moin ...

Zitat:

Zitat von schlecki (Beitrag 1174883)
Schreiben vielleicht die FibPlus-Komponenten die zuletzt verwendete DB irgendwo hin (Registry, User-Verzeichnis)?

Nicht daß ich wüßte. Der Pfad zur Datenbank steht in der DatMod.dfm. DatMod.pas ist mein Datenmodul ... Dieser Eintrag wird offenbar verändert ... ich werde das jetzt gleich nochmal testen ...

Okay, Test abgeschlossen: Habe jetzt nochmal im Release-Ordner die Exe gestartet, nachdem Delphi mit korrekten DB-Eintrag geschlossen wurde. Danach die Exe wieder beendet und Windows neu gestartet. In der DatMod.dfm steht nach wie vor der richtige Pfad, in Delphi steht aber der Release-Pfad. Wie kommt der da rein???

Perlsau 17. Jul 2012 08:49

AW: DB-Komponente verändert Eintrag selbständig
 
Zitat:

Zitat von schlecki (Beitrag 1174883)
Schreiben vielleicht die FibPlus-Komponenten die zuletzt verwendete DB irgendwo hin (Registry, User-Verzeichnis)?

Um aber auf deine Frage zurückzukommen: In der Registry steht unter dem Key HKEY_CURRENT_USER\Software\FIBC_Software\Aliases\M einProjekt doch tatsächlich der Release-Pfad drin ...

Ich hatte auch schonmal den Fall, daß im IBExpert nach Versuchen mit der Release-Exe, die ja nicht im Entwicklungsordner steht, plötzlich ebenfalls die falsche Datenbank registriert war ... frag mich jetzt aber nicht, wie ich das gemacht hatte, das war glaub ich nur ein oder zwei Mal der Fall ...

Übrigens steht der falsche Pfad auch noch unter dem Schlüssel HKEY_CURRENT_USER\Software\Microsoft\Windows\Curre ntVersion\Explorer\ComDlg32\OpenSaveMRU\FDB.


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