Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Stringlist bringt Service zum Absturz (https://www.delphipraxis.net/160261-stringlist-bringt-service-zum-absturz.html)

value is NULL 5. Mai 2011 08:15

Stringlist bringt Service zum Absturz
 
Hi Leutz

Habe folgenden code:

Delphi-Quellcode:
//Database Connect
sqlst.connect_extdb(server,dbpwd,dbuser,dbname);
sl := TStringlist.Create;
sqlst.DoQuery(query,sl); //ID's der Geräte
while stringlist_count <= sl.Count do begin
        addtolog(1, 'Stringlist_count: '+inttostr(stringlist_count));
        id := sl[stringlist_count];
        vlx_Core.updatedb_archivflag(id);
        stringlist_count := stringlist_count + 1;
end;
sl.Free;
folgendes steht in meinem LOG:

Code:
05.05.2011 09:03:26 [DEBUG] ---------------------------------
05.05.2011 09:03:26 [DEBUG] Stringlist_count: 0
05.05.2011 09:03:26 [DEBUG] Archivflag Update Done!
05.05.2011 09:03:26 [DEBUG] Stringlist_count: 1
05.05.2011 09:03:26 [DEBUG] Archivflag Update Done!
05.05.2011 09:03:26 [DEBUG] Stringlist_count: 2
05.05.2011 09:03:26 [DEBUG] Archivflag Update Done!
05.05.2011 09:03:26 [DEBUG] Stringlist_count: 3
05.05.2011 09:03:26 [DEBUG] Archivflag Update Done!
05.05.2011 09:03:26 [DEBUG] Stringlist_count: 4
05.05.2011 09:03:26 [DEBUG] Archivflag Update Done!
05.05.2011 09:03:26 [DEBUG] Stringlist_count: 5
05.05.2011 09:03:26 [DEBUG] Archivflag Update Done!
05.05.2011 09:03:26 [DEBUG] Stringlist_count:
ich schätze mal das stringlist_count den sl.count überschreitet?! Dadurch stürzt mein Dienst immer ab!

Wie kann ich soetwas abfangen?!

LG

Coffeecoder 5. Mai 2011 08:21

AW: Stringlist bringt Service zum Absturz
 
Hi,

Versuch das :

Delphi-Quellcode:
while stringlist_count < sl.Count do begin
Mfg Coffeecoder

himitsu 5. Mai 2011 08:26

AW: Stringlist bringt Service zum Absturz
 
Jupp jupp jupp, der böse Indexfehler.
Wobei das hier auch noch nach dem Einsatz einer kürzeren/schöneren For-Schleife riecht.

TApplicationEvent.OnException oder Application.OnException und dieses auch noch mit in das Log rein.
Wobei ... eventuelle steht sowas auch schon in den Eventlogs vom Windows.

[add]
wo wird stringlist_count eigentlich initialisiert?

rainerg 5. Mai 2011 08:30

AW: Stringlist bringt Service zum Absturz
 
Count ist die Anzahl der Einträge, gezählt ab 0!

Mit:
Delphi-Quellcode:
stringlist_count < sl.Count
ist der Code wieder okay. Das = macht den Unterschied.

Wobei stringlist_count mit 0 beginnen muss, da ja die Liste mit sl[0] beginnt.

Oder alles in eine FOR .. NEXT-Schleife packen.

Delphi-Quellcode:
for stringlist_count := 0 to sl.Count-1 do

value is NULL 5. Mai 2011 08:47

AW: Stringlist bringt Service zum Absturz
 
Zitat:

Zitat von himitsu (Beitrag 1098961)
[add]
wo wird stringlist_count eigentlich initialisiert?

vor der while schleife! Habe das = jetzt raus genommen, jetzt funzt es prima!

Danke schon mal !!!

himitsu 5. Mai 2011 09:52

AW: Stringlist bringt Service zum Absturz
 
Und wenn du jetzt noch die Exceptiontexte logst, dann siehst du das nächste Mal, warum es nicht weiterging. :wink:

value is NULL 5. Mai 2011 10:26

AW: Stringlist bringt Service zum Absturz
 
mit dem hier?

TApplicationEvent.OnException oder Application.OnException

wenn ich application. eintippe und mir die funkionen anschaue gibt es kein onexception :(

lg

Hobby-Programmierer 5. Mai 2011 14:04

AW: Stringlist bringt Service zum Absturz
 
Hallo ...,
Du musst die Prozedur als Methode in dein Formular einfügen, sprich veröffentlichen. Ich glaube das sollte in den Public Teil rein. Im Forum sollte sich dazu einiges finden lassen.

Bernhard Geyer 5. Mai 2011 14:09

AW: Stringlist bringt Service zum Absturz
 
Zitat:

Zitat von Hobby-Programmierer (Beitrag 1099059)
Hallo ...,
Du musst die Prozedur als Methode in dein Formular einfügen, sprich veröffentlichen. Ich glaube das sollte in den Public Teil rein. Im Forum sollte sich dazu einiges finden lassen.

In einem Dienst hat du auch ein Appliacation-Instanz, diese ist aber nicht vom Typ TServiceApplication

Hobby-Programmierer 5. Mai 2011 14:12

AW: Stringlist bringt Service zum Absturz
 
Oh, Danke für die Info. Hab ich nicht gewusst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:51 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz