Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Operation bei geschlossener Datenmenge nicht ausführbar (https://www.delphipraxis.net/107946-operation-bei-geschlossener-datenmenge-nicht-ausfuehrbar.html)

alzaimar 7. Feb 2008 06:16

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Hoika, hier wäre ein 'Select count(*)' eine Performancebremse. Besser (weil es nur darum, geht, ob überhaupt etwas zurückgekommen ist):
Delphi-Quellcode:
If Not MyQuery.IsEmpty Then ...

Nuclear-Ping 7. Feb 2008 12:58

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Ups, garnicht mitgekriegt, dass hier noch wer geantwortet hat. Sorry. ^^

Problem ist wieder aufgetaucht, diesmal aber auf der Testmaschine im Büro (... mit dem geänderten RecordCount) ... :wall: ... Ich kapiers nicht ... Vorallem wenn du dazu nen Projektleiter am Ohr hast, der erklärt haben will, warum das aufeinmal nicht mehr geht. :oops:

Ich verbau mal noch eure anderen Vorschläge (bis auf Select count(*) ^^) und dann mal schauen.

[edit]
@hoika: try/except war drum, hab ich nur auskommentiert, weil vorher eine eigene Meldung kam wie
Code:
----------------
Fehler bei SQL Abfrage:
<leer>

SQL:
SELECT * FROM SendingSchedule ...

---- [ OK ] ----
Nun kommt stattdessen die Meldung mit der geschlossenen Datenmenge.
[/edit]

[nochmal edit]
@samson:
Delphi-Quellcode:
If (not Query.BOF) and (not Query.EOF) then
  ...
Versuch das grad zu verstehen ... then was? Wenn ich das unter das Open packe, ergibts FALSE, weil's wahrscheinlich BOF && !EOF ist. Kapier das nicht. ^^
[/nochmal edit]

mikhal 7. Feb 2008 16:33

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Mach aus
Delphi-Quellcode:
If (not Query.BOF) and (not Query.EOF) then
mal
Delphi-Quellcode:
If not Query.IsEmpty then
, macht das Gleiche.

Grüße
Mikhal

Nuclear-Ping 7. Feb 2008 17:01

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Ok. Hab das jetzt so gemacht:
Delphi-Quellcode:
Open;
RecCnt := RecordCount;
if (RecCnt > 0) and (not IsEmpty) and Active then
  AssignSendingScheduleItems (List, AdsQuery, RecCnt);
Close;
... mal schauen, ob's immernoch knallt.

hoika 7. Feb 2008 17:52

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Hallo,

und wieder kein try finally ...


Heiko

mikhal 7. Feb 2008 19:31

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Delphi-Quellcode:
(RecCnt > 0)
ist das Gleiche wie
Delphi-Quellcode:
(not IsEmpty)
Grüße
Mikhal

DeddyH 7. Feb 2008 19:54

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Klingt irgendwie logisch ;)

Union 7. Feb 2008 20:09

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Ich würde folgendes versuchen:
  • 1. AdsQuery.Sequenced := True;
    2. Processmessages in der Schleife durch Update der benötigten Komponenten ersetzen
    3. Die ganze Progress-Geschichte über einen Callback aufrufen lassen und nicht in die Schleifen integrieren
und dann prüfe mal, ob der Fehler beim ersten Durchlauf der while Schleife auftritt oder erst bei einem der folgenden (a > 0).

Des weiteren sehe ich solche Bemerkungen wie "try deaktiviert zur Fehlernachverfolgung". Bau doch mal MadExcept oder EurekaLog ein. Dann kannst Du auch vom Kunden qualifizierte Fehlerberichte erhalten, evtl. sogar automatisch per E-Mail. Und die mehrfachen with machen ein vernünftiges Debugging auch nicht gerade zum Kinderspiel.

Nuclear-Ping 7. Feb 2008 21:46

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
Zitat:

Zitat von Union
Ich würde folgendes versuchen:
  • 1. AdsQuery.Sequenced := True;
    2. Processmessages in der Schleife durch Update der benötigten Komponenten ersetzen
    3. Die ganze Progress-Geschichte über einen Callback aufrufen lassen und nicht in die Schleifen integrieren
und dann prüfe mal, ob der Fehler beim ersten Durchlauf der while Schleife auftritt oder erst bei einem der folgenden (a > 0).

Des weiteren sehe ich solche Bemerkungen wie "try deaktiviert zur Fehlernachverfolgung". Bau doch mal MadExcept oder EurekaLog ein. Dann kannst Du auch vom Kunden qualifizierte Fehlerberichte erhalten, evtl. sogar automatisch per E-Mail. Und die mehrfachen with machen ein vernünftiges Debugging auch nicht gerade zum Kinderspiel.

Hm, dass die ProcessMessages da drin das Problem verursachen können kann auch sein. Werd ich als nächstes versuchen, wenn das immernoch auftritt. Danke für den Hinweis! :)

Und wie schon gesagt: Das ist kein Fehler der immer auftritt, sondern nur manchmal, bei Vollmond oder was weiß ich. Ich kann ihn hier nichtmal reproduzieren.

Bzgl. Fehlerreporting benutze ich bereits von JEDI die Exception-Dialoge. Sieht man ja auch im ersten Post. Ich hab den Try-Except-Block da nur auskommentiert, weil vorher eine nichtssagende Fehlermeldung kam.

Nuclear-Ping 8. Feb 2008 11:24

Re: Operation bei geschlossener Datenmenge nicht ausführbar
 
[edit]
Schwachsinn ^^
[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:07 Uhr.
Seite 2 von 2     12   

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