Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#13

Re: SQL Fehler, wenn Exe in Autostart

  Alt 12. Mär 2009, 16:46
Hallo nahpets,


Also, ich habe alle deine Vorschläge schön durchgearbeitet, leider ohne Erfolg. Diese ganze Sache muss irgendwo anders her kommen.

Zitat:
Was passiert, wenn Du den Dienst manuell stoppst, das Programm startes, den Dienst manuell startest. Hier würde ich vermuten, dass das am ehesten an das Problem beim Autostart herankommt.
Funktioniert sauber, ohne Fehlermeldung, sogar wenn ich den Dienst erst eine Minute später starte.

Zitat:
Wo liegt das Programm? Hat es beim Start aus dem Autostart das gleiche Arbeitsverzeichnis wie beim "normalen" start oder kommt es hier eventuell mit dem Arbeitspfad nicht zurecht, so dass ein anderer Fehler auftritt, als eigentlich vermutet. Sprich: Wenn der Dienst läuft und Du startest das Programm über das Startmenü/Programme/Autostart. Geht das fehlerfrei?
Das Programm liegt in folgendem Verzeichnis...

D:\Delphi\Projekte\PrintSave\V1.15\Alarmanlage.exe
in diesem Verzeichns liegt auch die Datenbank usw.
Habe es allerdings auch komplett mit Laufwerk C:\Programm\HU\PrintSave probiert. Der gleiche Fehler..

Ja, starte ich das Programm aus "Startmenü/Programme/Autostart" bei laufendem Dienst, geht das ohne Fehler.

Zitat:
Wie hast Du das Timerinterval gesetzt? Ist das ausreichend lang? Hier würde ich als Wartezeit eher Minuten als einige Sekunden setzen. Bei meinem Rechner vergehen locker 2 bis 3 Minuten, bevor ich sicher auf alles zugreifen kann, auch wenn die Oberfläche lange vorher voll funktionsfähig ist.
Also, der Timer zur Abfrage ob der Dienst läuft sitzt auf 1 Sekunde. Und der Timer für die Timeout Funktion auf 10min. Jedoch, wäre es auch egal, wenn der Timeout Timer auf 10 sec. stände, da ich ja eingebaut habe. das die Datenbank bei nicht vorhandenem Dienst gar nicht erst geöffnet wird.

Delphi-Quellcode:
//VSTFüllen wird nur bei gestartetem Dienst über Timer1 ausgeführt, jedoch hier nochmal die Abrage, falls die Funktion
//später irgendwann nochmal von einer anderen Stelle im Programm aufgerufen wird.
procedure TForm1.VSTFüllen;
var
  Daten : TOMB256PLUS;
  Count : Integer;
begin
if ServiceGetStatus('', 'FirebirdGuardianDefaultInstance') = 4 then
  begin
  if not QryMB256PLUS.Active then
    QryMB256PLUS.Open;
Zitat:
enn Du in der DOS-Box net start
Die Dienste, kann ich ja auch unter Verwalten einsehen, Es gibt 2 Dienste der Firebird, allerdngs sind die abhängig von einander und werden über den selben Name gestartet (Abfrage ist somit für mich identisch)

Zitat:
und schau mal, ob nach endlicher Zeit und endlichem Betätigen von AnyKey Dein Programm so korrekt gestartet werden kann.
Mit der Batch Datei, habe ich den selben Fehler.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat