Benutzer mit den meisten Antworten
Datenbank-Crash bei Erstellen einer EXE-Anwendung

Frage
-
Hallo NG,
beim Erstellen einer EXE-Anwendung aus meiner VFP9-Aplikation, die im Entwicklungsmodus einwandfrei läuft, wird immer die Datenbank zerschossen. Das ist nicht nur bei der aktuellen Anwendung so, sondern auch bei allen älteren, abgeschlossenen Projekte, wenn ich bei diesen erneut eine EXE erstelle. Gott sei Dank habe ich genug Sicherungen, so dass ich den Fehler reproduzierbar erzeugen kann.
Vor dem Erstellen wird im Projektfenster die Datenbank mit allen Tabelle angezeigt. Beim Erstellen läuft der runde kleine Kreis für immer, bis ich das Programm, das nicht mehr antwortet, abbreche. Nach dem erneuten Starten von VFP9 ist dann nur noch die Datenbank (also der Name davon) im Projektfenster sichtbar. Alle Tabellen sind weg!
Klicke ich auf die Datenbankeigenschaft, dann erhalte ich: "Index stimmt nicht mit Tabelle überein. Löschen Sie die Indexdatei und erstellen Sie den Index neu".
Welchen Index? Alle 11 Tabellen sind weg bzw. werden nicht mehr angezeigt.
Wie soll ich welchen Index neu erstellen. Und vor allem: warum kommt dieser Fehler bei "allen meinen Projekten" jetzt plötzlich vor?
Ich habe den Verdacht, dass dies auf ein Update bei Windows 10 zurückzuführen ist. Oder kann dies ein anderes Programm sein? Ich habe aber nicht inzwischen neu installiert und auch das Antivirenprogramm (ESET) zwischendurch deaktiviert. Ohne Erfolg!
Hat jemand eine Idee? Was kann ich tun um dies zu reparieren. Hat jemand denselben "Effekt" bei sich festgestellt?
Danke und Gruß
Jürgen
Nachtrag:
Habe gerade noch einmal getestet: Wenn ich das Projekt nur neu erstelle, passiert nichts. Der Fehler tritt nur auf, wenn ich den Haken bei "Alle Dateien neu kompilieren" setze, auch wenn ich keine EXE erstelle. Dann ist allerdings bei einem Neustart das Projektfenster leer und es kommt die Meldung: "Die Memodatei d:\verzeichnis\kasse.pjt fehlt oder ist ungültig!
Vielleicht hilft dies zur "Diagnose".
Nachtrag Nummer 2!
Jetzt verstehe ich überhaupt nichts mehr. Ich habe das komplette Verzeichnis mit meiner Applikation über einen Stick auf meinen alten PC mit Windows 7 kopiert und damit gerechnet, dass dort die EXE erstellt werden kann. Dort existiert noch eine bisher immer funktionierende VFP9 Umgebung.
Derselbe Effekt! Nur lautet hier die Meldung, nach dem Wiederstarten von VFP9, das zuvor auch hängen blieb:
Für die Datenbank kasse sind keine Feld- und Indexinformationen verfügbar. Die Datenbank kann ungültig sein.
Alte Programme, die auf dem neuen PC mit Windows 10 auch nicht mehr laufen, laufen hier allerdings problemlos bzw. die EXE wird erstellt!
Wo bitte stehe ich hier auf der Leitung (grrrrr)!!
<--------(nur Fliegen sind schöner!)-------->
- Bearbeitet Flugkapitän-Jürgen (a. D.) Mittwoch, 20. Juni 2018 15:24
Mittwoch, 20. Juni 2018 14:21
Antworten
-
Hallo Jürgen,
wie schon geschrieben :
Verschiebe mal die Projektdateien (pjx, pjt). Dann starte Foxpro, wähle dein Startprogramm und dann Projekt neu erstellen.
Foxpro zieht dann die benötigten Dateien (forms, reports,..) ins Projekt. Und das kompiliere mal.
Grüße
tom
- Als Antwort markiert Flugkapitän-Jürgen (a. D.) Montag, 25. Juni 2018 14:33
Montag, 25. Juni 2018 06:22
Alle Antworten
-
Moin, moin
ich gehe davonm aus, das Du mit ausreichend Backups versorgt bist.
Zumindest einige Dateien sind wohl beschädigt da sie sich auf beiden PCs nicht kompilieren lassen.
Mein Vorschlag
Verwende ein Backup und teste es auf beiden PCs.
oder
mach ein weiteres Backup und lass das Projekt von VFP neu erstellen (Hauptdatei main.prg oder so setzten, Projekt neu erstellen). Kompiliert er dann ?
Grüße
tom
Freitag, 22. Juni 2018 07:20 -
Ich werde noch verrückt.
Sicher habe ich Backups, aber bei vielen rückwirkend ist der fehler bereits da. Ich habe das letzte Mal vor einem halben Jahr eine EXE erstellt. Und seitdem viel geändert, was ich nicht mehr alles nachvollziehen kann. Also muss ich den fehler irgendwie finden.
Wenn ich COMPILE *.prg eingebe, gibt es keinen Fehler. Also scheinen alle Programmdateien in Ordnung zu sein.
Wie kann man Formulare, Berichte usw. einzeln oder mit*. compilieren? Oder auf Fehler testen. Geht das überhaupt?
Das erneute Erstellen des Projekts habe ich schon mehrfach gemacht. Das bringt auch nichts.
Wenn wenigstens ein Fehler gemeldet werden würde. Aber das Programm reagiert nun mal nicht mehr. Und nach einem Neustart ist die Datenbank völlig im Eimer. Ein vorheriges VALIDATE DATABASE sagt, es wäre da zumindest alles in Ordnung.
Und noch eine Frage: Wenn ich die EXE erstelle und den haken bei "Alle Dateien neu kompilieren" weglasse, enthält dann die EXE nicht die letzten Änderungen? Wenn man jede Datei einzeln kompilieren könnte, könnte man vielleicht die finden, die kaputt ist.
Grüße
Jürgen
<--------(nur Fliegen sind schöner!)-------->
- Bearbeitet Flugkapitän-Jürgen (a. D.) Freitag, 22. Juni 2018 15:12
Freitag, 22. Juni 2018 15:08 -
Hallo Jürgen,
wenn der Haken "Alle Dateien neu kompilieren" nicht gesetzt ist, werden nur Module (Formulare, Programme, Berichte, etc.) neu generiert, in denen etwas geändert wurde - d. h.: genau so kannst Du das Modul finden!
- mache z. B. in einem Formular eine kleine sinnlose Änderung (verschiebe einen Button, lasse die Maus los und verschiebe ihn dann wieder zurück) und speichere das Formular ab
- jetzt wieder das Projekt generieren, Haken "Alle Dateien neu kompilieren" nicht gesetzt
Gruß, Stefan
Freitag, 22. Juni 2018 18:08 -
Hallo Stefan, danke für Deine Hilfe, auch wenn ich noch nicht verstehe, wie ich so das "defekte" Modul finden soll.
Wenn ich den Haken bei "Alle Dateien neu kompilieren" nicht setze gibt es keinen crash. Inzwischen habe ich viele Änderungen in verschiedenen Forms gemacht. Im Entwicklungsmodus alles OK.
Muss ich nach dem neuen Generieren des Projekts in jedem Formular einzeln etwas (sinnloses) ändern, speicher und neu generieren? Aber wie soll ich da das Modul finden, das die Probleme verursacht?
Ich habe mir schon überlegt, ein neues Projekt anzulegen und meine Dateien zug um zug dorthin zu schaufeln und dann immer wieder compilieren, bis es kracht, dann muss es die letzte "auf der Schaufel gewesene" sein.
Gruß Jürgen
<--------(nur Fliegen sind schöner!)-------->
Samstag, 23. Juni 2018 13:29 -
Hallo Jürgen,
wie schon geschrieben :
Verschiebe mal die Projektdateien (pjx, pjt). Dann starte Foxpro, wähle dein Startprogramm und dann Projekt neu erstellen.
Foxpro zieht dann die benötigten Dateien (forms, reports,..) ins Projekt. Und das kompiliere mal.
Grüße
tom
- Als Antwort markiert Flugkapitän-Jürgen (a. D.) Montag, 25. Juni 2018 14:33
Montag, 25. Juni 2018 06:22 -
Es hat tatsächlich funktioniert!
Ich wusste zwar immer noch nicht genau, was ich machen soll. Deshalb hier meine Vorgehensweise:
1. Ich habe .pjt und .pjx verschoben, also quasi aus dem Arbeitsverzeichnis gelöscht.
2. Ich habe über meine .fpw Konfigurationsdatei VFP gestartet. Dann war das Projektfenster erst einmal leer.
3. Ich habe über "Hinzufügen" mein Startprogramm "kasse.prg" hinzugefügt. Erst dann konnte ich das Projekt neu erstellen (vorher war der Button grau).
4. Nach dem Erstellen war bis auf die daten wieder alles da. also habe ich noch ...
5. über "Datenbank hinzufügen" diese dem Projekt hinzugefügt. Alle Tabellen waren damit auch wieder da.
6. Das Programm lief im Entwicklungsmodus wie vorher. Also habe ich jetzt gewagt ...
7. eine EXE zu erstellen und dabei bei "Alle Dateien neu kompilieren" den Haken gesetzt. Und siehe da.
ES LIEF! Kein Aufhängen des Systems mehr und ein Starten über die EXE (nach dem Beenden von VFP) klappte auch.
Euch vielen Dank. Ich kenne zwar nicht dem "Mechanismus" der hier genau abgelaufen ist. Hauptsache ich kann wieder schlafen ;-))
Nochmals danke und liebe Grüße
Jürgen
<--------(nur Fliegen sind schöner!)-------->
Montag, 25. Juni 2018 14:42