Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Prüfen ob Query closed is!?!? (https://www.delphipraxis.net/24899-pruefen-ob-query-closed.html)

TypusMensch 28. Jun 2004 13:11


Prüfen ob Query closed is!?!?
 
Also wahrscheinlich ganz einfach, aber ich komme einfach auf die Schnelle nicht drauf. Wie prüfe ich ob ich eine Query closed habe.

So habe ich Sie bei ner Abfrage geschlossen:
DatMod.KQu.close;

Nun die Frage, wie kann ich das prüfen, ob der Nutzer per genannter Abfrage die Query geschlossen hat???

if DatMod.KQU.close = true funzt ja nicht :cry:

ThX im vorraus...

alcaeus 28. Jun 2004 13:12

Re: Prüfen ob Query closed is!?!?
 
Probiers mal mit DatMod.KQu.Active

Greetz
alcaeus

TypusMensch 28. Jun 2004 13:22

Re: Prüfen ob Query closed is!?!?
 
Klappt nicht, wie ich mir das vorstelle. Zur Laufzeit kommt dann der Fehler "Operation bei geschlossener Datenmenge nicht ausführbar" oder so...

Sprich er überspringt bzw. bejaht die Abfrage:

if DatMod.KQu.Active = true then
begin
... //Queryarbeit
end;

IMHO: Activ is die Query ja, aber closed!!! Die Frage aber nun, wie prüfe ich, ob sie closed is...

:roll: :?: :roll:

PS: Die Query akriviere ich bei Programmstart und entaktiviere ich erst bei Programmende. Ich arbeite generell immer mit close und open bei kurzen reloads.

Smokey 28. Jun 2004 13:27

Re: Prüfen ob Query closed is!?!?
 
Versuch mal mit query.state
Bei mir ist ein geschlossenes query auf dsInactive ein offenes auf dsEdit.

Vielleicht hilfts ja.

shmia 28. Jun 2004 13:28

Re: Prüfen ob Query closed is!?!?
 
Zitat:

Zitat von TypusMensch
IMHO: Activ is die Query ja, aber closed!!! Die Frage aber nun, wie prüfe ich, ob sie closed is...

Das stimmt so nicht. Hier ein kurzer Auszug aus der VCL:
Delphi-Quellcode:
procedure TDataSet.Open;
begin
  Active := True;
end;
procedure TDataSet.Close;
begin
  Active := False;
end;
Man sieht also Query.Open ist genau das Gleiche wie Query.Active := True.
Dein Laufzeitfehler bezieht sich möglicherweise auf eine andere Query/Table.

TypusMensch 28. Jun 2004 13:36

Re: Prüfen ob Query closed is!?!?
 
Delphi-Quellcode:
procedure TKundenmenu.Button5Click(Sender: TObject);
begin
DatMod.KQU.First;
if DatMod.KQu.Active = true then
  begin
  if Druckauswahl.ItemIndex = 0 then l9_1.Print(0,LL_PROJECT_LIST,ExtractFilePath(Application.ExeName)+'drucken\Kunden\',1,LL_PRINT_EXPORT,LL_BOXTYPE_NORMALWAIT,handle,'Drucken/Exportieren', 1,'');
  if Druckauswahl.ItemIndex = 1 then l9_1.Design(0,handle,'Druck-Designer', LL_PROJECT_LIST,ExtractFilePath(Application.ExeName)+'drucken\Kunden\',0);
  if Druckauswahl.ItemIndex = 2 then l9_1.Design(0,handle,'Druck-Designer', LL_PROJECT_LIST,ExtractFilePath(Application.ExeName)+'drucken\Kunden\',1);
  end else ShowMessage('QUERY CLOSED');
end;
Hier geht es aber wirklich nur um die eine Query.

PS: Jaja, jetzt bitte nicht wieder die Case-Propagonisten!

@shmia: das klappt bei mir gar net. Da is Jacke wie Hose, das kommt bei beidem das gleiche raus... :?:

mirage228 28. Jun 2004 13:37

Re: Prüfen ob Query closed is!?!?
 
Hi hast du vor dem

DatMod.KQU.First;

ein DatMod.KQU.Open ausgeführt?

mfG
mirage228

TypusMensch 28. Jun 2004 13:48

Re: Prüfen ob Query closed is!?!?
 
Ahjaaaaaaaaaaaaaa. Daran lags. Natürlich...

Kann ja kein First ausführen, wenn Sie nich geladen is. :wall: LOL... wie gesagt, irgendwas sinnloses is es immer. ThX, das wars!!!

shmia 28. Jun 2004 13:51

Re: Prüfen ob Query closed is!?!?
 
Zitat:

Zitat von TypusMensch
@shmia: das klappt bei mir gar net. Da is Jacke wie Hose, das kommt bei beidem das gleiche raus...

Das ist doch genau das was ich gesagt habe! Query.Open und Query.Active := True sind intern das Gleiche !
Aber wenn ich mir so deinen Spaghetti-Code anschauen (Sorry, aber er ist schlecht formatiert und ungeschickt):
Delphi-Quellcode:
procedure TKundenmenu.Button5Click(Sender: TObject);
begin
   // was passiert wohl, wenn DatMod.KQU nicht Active ist ???
   DatMod.KQU.First; // kann man bei geschlossener Datenmenge auf den 1. Datensatz positionieren ???
   if DatMod.KQu.Active = true then // wäre dann nicht die folgende Abfrage sinnlos ???

TypusMensch 28. Jun 2004 13:53

Re: Prüfen ob Query closed is!?!?
 
Ups, sorry, meinte auch net dich @shmia

ich meinte mit dem, dass es net klappt, mit dem was Smokey sagte. Entschuldigung für die Verwechslung... :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 Uhr.

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