Autor Beitrag
HenryHux
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 542
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: Mo 24.01.11 14:43 
Hi,

ich bekomme bei folgender Funktion im Betrieb ca alle 30 Minuten eine Exception.
Wenn ich die Funktion aber Testweise 10k mal durchlaufen lasse, klappt alles korrekt.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure WriteToDatabase(x : integer);
var i : integer;
begin
  try
    case x of
    1 : begin
          with Datenbank.ADOTable1 do
          begin
            Append;
            // Datenbank mit FieldbyName beschriften
            Post;
          end;
        end;
    // Weitere Cases, mit prinzipiell gleichem Inhalt
    end;
    for i := low(HHAction) to high(HHAction) do HHAction[i] := ''//String Array, welches benutz wird, "leeren"
  except
    showmessage('Exception bei Database');
  end;
end;


Die DB wird nur von diesem Programm benutzt, also keine doppelten Schreibzugriffe.
Leider kommt die Exception eher selten, daher habe ich keine genaueren Infos, ich werde aber noch welche nachtragen.
Wenn jemand eine Idee hat, wieso die Exception ausgelöst wird, dann nur her damit :D

Lg
Nersgatt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1581
Erhaltene Danke: 279


Delphi 10 Seattle Prof.
BeitragVerfasst: Mo 24.01.11 14:46 
Als allererstes solltest Du Deinen Exceptionhandler so gestalten, dass er eine aussagekräftige Meldung gibt. Sonst kann man nur raten.

_________________
Gruß, Jens
Zuerst ignorieren sie dich, dann lachen sie über dich, dann bekämpfen sie dich und dann gewinnst du. (Mahatma Gandhi)
Tilman
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: Mo 24.01.11 14:50 
Und das geht z.B. so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
try
[..]
except
  on E: Exception do ShowMessage(E.Message);
end;

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)
HenryHux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 542
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: Mo 24.01.11 14:52 
Ja, danke.
Der Delphi Debugger zeigt es mir ja trotzdem an, war so ja nur testweise.
Die Fehlermeldung ist folgende:

Erste Gelegenheit für Exception bei $756BB727. Exception-Klasse EOleException mit Meldung 'Fehler bei einem aus mehreren Schritten bestehenden Vorgang. Prüfen Sie die einzelnen Statuswerte'. Prozess Project1.exe (4024)

Lg
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mo 24.01.11 14:54 
Fehlender Primärschlüssel ? Trigger in der Datenbank, Defaultwerte ?

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
HenryHux Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 542
Erhaltene Danke: 33

Windows 7 Premium
Delphi XE, Eclipse
BeitragVerfasst: Mo 24.01.11 14:57 
DB hat Indizies und Standardwerte.
Ka was Trigger sind, deswegen werden wohl auch keine drin sein :D
Trotzdem fügt die Funktion in Tests fehlerlos 10k Einträge ein.