Programm (NSIS) läuft nicht unter jedem Windows 7

Alles rund um die Programmierung mit Qt
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von Christian81 »

Ein ordentliches Logging-Konzept wäre jetzt wohl Gold wert. Aber ich rede gegen Windmühlen ...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von Marcus Breuer »

Jetzt kam meine obige Frage zu früh, hatte deine Antwort nicht gesehen. Das habe ich auch schon gemacht. Komischerweise wird sie mir genau das eine Mal angezeigt, wenn ich das Programm direkt nach der Installation aus dem Dialog des Installers öffne. Nur eben danach nicht mehr.

Was weiterhin auch sehr merkwürdig ist, ich hatte wie Du schon meintest die Datenbankdatei einmal neu erstellt, die alte, die in meinem ersten Upload noch enthalten war, war fehlerhaft. Ich habe dann die neue eingefügt. Das Skript dann neu ausgefüht und die alte Datenbankdatei komplett vom Rechner gelöscht.
Auf dem Build-Rechner ist es jetzt tatsächlich so, dass wir oben beim Starten aus dem Installer heraus die korrekte Datei erkannt wird und auch korrekt angezeigt wird, jedoch starte ich dann das Programm entweder aus dem Verzeichnis heraus oder über Windows->Start->FireAndIce, dann wird mir die alte Datenbankdatei angezeigt, obwohl definitiv diese gelöscht ist und sich auch nirgends mehr auf dem Rechner befinden sollte. Und auf keinen Fall befindet sie sich mit dem Skript im selben Ordner wie die DLLs und die *.exe. Einzig unter XP in der virtuellen Maschine macht das Programm genau das, was es soll, obwohl ich jedes Mal denselben Installer benutzt habe.

Ich verzweifele gerade auf voller Spur. Das ergbit alles keinen Sinn für mich. Konntest Du unter Windows 7 denn auch Datensätze hinzufügen und wurden diese dann auch beim nächsten Programmstart angezeigt?

Was auch noch eine komische Sache insgesamt ist, trage ich bspw. unter der Kundennummer 123456 ein und gebe dies dann in der Suche ein, dann öffnet sich zwar der entsprechende Dialog, zeigt aber nichts an. Sonst, wenn er in der gesamten Datenbank keinen Treffer finden würde, passiert bis jetzt erstmal garnichts. Dabei wandel ich alles in Strings um, also die Sucheingabe als auch jeder Datensatz bzw. jede Information in jeder Zeller wird in einen String beim Suchen umgewandelt und dann mit dem suchwort mittels compare(...) verglichen. Ich habe die Funktion schon ein paar mal benutzt und die klappte bisher auch immer super. Ich werde mir zwar mal die entsprechenden Ausgaben im debugger ansehen, aber nachvollziehen kann ich es erstmal nicht.
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von ScyllaIllciz »

Ändere mal "void Hauptfenster::kontaktAnlegen() " zu:

Code: Alles auswählen

void Hauptfenster::kontaktAnlegen() {
    kontakt = new Kontakt();
    int statusAnlegen = kontakt->exec();
    if (!sqlData.select())
        qDebug() << sqlData.lastError().text();
}
Dann siehst Du die eingefügeten Daten gleich.
Bei mir funktioniert das hinzufügen von neuen Datensätzen. Das liegt aber daran, dass ich auf meine Windows 7 voll Admin Rechte habe und UAC deaktiviert sind.
Ich würde an Deiner Stelle die Datenbankdatei mal in einem Verzeichnis anlegen, in dem der aktive Benutzer auch Dateien schreiben/lesen/änderen darf. Per default wird im "Programme" Ordner das schreiben nicht erlaubt bzw. nur vorgegaukelt. Ich tippe auf sowas.

[Edit]
Dem Installer hast Du bestimmt Adminrechte gegeben und somit startet das Programm zum ersten Mal mit Adminrechten und beim zweiten mal im User Kontext.
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von Marcus Breuer »

Also Christian81, ich bin keine Windmühle. Ich habe es eben schonmal gesagt, ich studiere nicht Informatik, es macht den geringeren Teil meines Studiums aus und hatte bisher auch nicht die Möglichkeit bzw. auch die Zeit, mich nur mit Qt bzw. realer Softwareentwicklung in dem rahmen zu beschäftigen, wie ich es selber gerne würde. Denn es interessiert mich. Und im Studium ist auch ein größerer Softwareentwurf nicht vorgesehen, weswegen mir Praxis am meisten fehlt. Ich will es aber unbedingt lernen bin aber nicht ansatzweise auf Eurem Niveau. Wenn Du mich nach so etwas sehr einfachem wie, um Dir mal ein Beispiel zu nennen, Kinetik eines Systems von Massenpunkten fragen würdest, dann wäre ich bemüht, Dir zu helfen und es Dir zu erklären. Denn was für mich einfach erscheint kann dann doch für dich sehr schwer sein und dementsprechend ist es hier eben umgekehrt. Deswegen stelle ich meine Fragen auch in diesem Forum. Und dank der Hilfe von ScyllaIllciz konnte ich schon die ersten Fortschritte machen und das sollte man irgendwo auch honorieren.
Was ich jedoch viel weniger verstehe ist, warum machst Du dir denn überhaupt die Mühe, den Dialog zu verfolgen und mir eine indirekte Bleidigung an den Kopf zu werfen, statt etwas für meine Verhältnisse Konstruktives zu schreiben, was mir auch weiterhelfen kann. Ich meine darum geht es doch in einem solchen Forum.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von Christian81 »

Ok - meine vernüftige Erklärung zum dritten.
Bau ordentliches Logging ein und logge z.B. alle Fehler in eine Logdatei die Du dann auswerten kann. Baue Messageboxen ein die im Fehlerfall auch was sinnvolles anzeigen (und nicht nur 'geht nicht') ... ist das wirklich so schwer?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von Marcus Breuer »

@ScyillaIllciz, das klingt sehr plausibel. Ich habe gerade nach UAC gesucht und in einem Artikel stand, dass es erst mit Windows Vista eingeführt worden sein soll. Da könnte dann natürlich komplett der hund begraben sein. Da hätte ich auch drauf kommen können, denn als ich vor dem NSIS Skript, das Du mir geschickt hattest den Ordner sqldrivers noch manuell eingefügt hatte, wurde ich auch immer wieder auf die Rechte hingewiesen. Also ich werde UAC dann jetzt einmal deaktivieren. Ansonsten müsste es doch auch klappen, wenn ich statt unter C:\... das Programm auf einer anderen Partition speichere? Ich werde mich aber mit UAC beschäftigen. Habe gesehen, dass es etwas Arbeit ist, das zu deaktivieren. Deine Änderung werde ich ebenfalls gleich ausprobieren.
Ich denke, ich schaffe es heute vielleicht zeitlich nicht mehr, das noch alles in die Wege zu leiten, ich werde aber über Erfolg oder Misserfolg auf jeden Fall schreiben. Aber ich kann mir rein von der Logik erstmal vorstellen, dass das Problem eben bei diesen UAC liegt. Es ist ja zumindest auf XP schonmal ordentlich lauffähig.
Ich gebe Dir ein virtuelles Bier aus:) Vielen lieben Dank für die Hilfe.
ScyllaIllciz
Beiträge: 200
Registriert: 9. Juli 2010 19:31

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von ScyllaIllciz »

Windows 7: Taste Win+R -->msconfig-->Reiter Tools-->UAC Einstellungen ändern-->Slider ganz nach unten ziehen und dann neu starten.
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von Marcus Breuer »

@christian81, ich habe zu keinem Zeitpunkt einfach nur behauptet, geht nicht, sondern auch schon im Vorfeld und auch während des Dialogs immer wieder Ausgaben reingebastelt. Und weiter oben habe ich auch die Ausgaben, die ich erhalten habe soweit beschrieben. Ich habe diese dann auch ausgewertet in meinem Sinne. Die Datenbankanbindung klappte auch stets. Bzw. ich habe das Programm auch bspw. bewusst, bei erfolgreicher Verbindung zum Beenden gebracht. Mit der Doku habe ich mich ebenfalls beschäftigt. Und als ich dann mit meinem 1*1 nicht mehr weiterkam, habe ich hier um Hilfe gebeten. Es ist nicht so, dass ich hier einmal gesagt hätte, geht nicht und macht mal. Meine Fehlerbeschreibungen waren immer ausführlich und lang und auch durch viele Beispielsituationen, die während des "Testens" des Programms vorkamen, dokumentiert. Wäre ich beim Programmieren auf einen bestimmten Programmierfehler gestoßen, hätte ich die Lösung vllt. auch schneller in einer Suchmaschine gefunden.
Marcus Breuer
Beiträge: 113
Registriert: 31. März 2011 17:19
Wohnort: Aachen
Kontaktdaten:

Re: Programm (NSIS) läuft nicht unter jedem Windows 7

Beitrag von Marcus Breuer »

@ScyllaIllciz: Genialer Einfall. Du hast mein Problem gelöst. Ich habe auf dem Rechner, auf dem ich es sonst immer beim zweiten Mal erfolglos gestartet hatte eine Partition D:\ Hierauf, habe ich nochmal kontrolliert und alle Zugriffe, Schreiben, Lesen, etc. Ich hatte die UAC jetzt noch nicht deaktiviert. Aber es funktioniert deinem Vorschlag gemäß und einwandfrei. Die Datenbank wird mir jetzt immr angezeigt. Und ich kann sie endlich benutzen und ich bin froh, dass es letztlich eine Sache war, die am OS lag.

Ich kann Dir echt nicht sagen, wie froh und wie dankbar ich Dir bin. Besten Gruß,
Marcus
Antworten