Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#20

Re: SQL Fehler, wenn Exe in Autostart

  Alt 13. Mär 2009, 08:16
Hallo,

da scheint es ja irgendein "Zeitproblem" zu geben.

Versuche es doch mal bitte in der Art:
Delphi-Quellcode:
var
     iError : Integer;
     sMessage : String;

...

if ServiceGetStatus('', 'FirebirdGuardianDefaultInstance') = 4 then
  begin
  if not QryMB256PLUS.Active then begin
    iError := 0;
    DeleteFile('c:\netstart.txt'); // eine temporäre Logdatei, kann bei Funktion des Programmes entfallen.
    Repeat
      Try
        QryMB256PLUS.Open;
      Except
        on e : Exception Do begin
          sMessage := e.Message;
          Inc(iError);
          WinExec('CMD.EXE /C "net start >> c:\netstart.txt"',SW_HIDE); // nur zur momentanen Fehlersuche, kann später entfallen.
          Application.ProcessMessages;
          Sleep(1000);
        end;
      end;
    until QryMB256PLUS.Active or (iError > 5); // <- bitte ausprobieren, ob 5 reicht oder eventuell höher sein muss.
    if iError > 5 then begin
      ShowMessage('Die Datenbank konnte mit ' + IntToStr(iError) + ' Versuchen nicht geöffnet werden.'
      + #13 + 'Die letzte Fehlermeldung lautete: ' + sMessage);
      Application.Terminate; // <- oder sonstige Fehlerbehandlung.
    end;
    
...
Beim WinExec sollte eine Datei erstellt werden, die jeweils die aktuell laufenden Dienste enthält. Kannst Du in dieser Datei zwischen den einzelnen Aufrufen einen Unterschied feststellen? Dann könnte dort eventuell eine Abhängigkeit zwischen Diensten bestehen, die Du bei Deiner Dienstprüfung mit berücksichtigen musst.

Für eine Fehlerprotokollierung schau bitte mal hier: ErrorLog
Zitat von Jens Hartmann:
Das sehe ich ein wenig anders, wenn ich doch in meinem Programm vor dem Datenbankstart, den Dienst abfrage, wie in #11 beschrieben, ist es doch egal, ich frage ja schließlich vor dem öffnen der Datenbank ob der Dienst gestartet ist
Jain, in Bezug auf den Dienst dürftest Du recht haben, es gibt aber wohl noch eine andere Abhängigkeit, die momentan keiner von uns kennt.

Zeig' uns doch mal bitte die Ergebnisse von net start einmal mit den laufenden Datenbankdiensten, einmal ohne die Datenbankdienste. Eventuell gibt es da ja noch einen Unterschied mehr, als nur den von Dir abgefragten Dienst.

Hilft eventuell das weiter? Re: Firebird "SQL Error Code -904" Bitte um Hilfe
oder Re: Firebird und Vista
  Mit Zitat antworten Zitat