AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

eof, wo?

Ein Thema von Sanguis · begonnen am 24. Jul 2005 · letzter Beitrag vom 25. Jul 2005
Antwort Antwort
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#1

eof, wo?

  Alt 24. Jul 2005, 03:53
Datenbank: Paradox • Version: kA • Zugriff über: BDE?
Hi,
ich stehe momentan vor einem Problem, von dem ich nicht weiß ob ich einfach zu dumm bin weil es so banal ist.

Ich habe eine tabelle in einem query geladen (paradox). Diese durchlaufe ich per Buttonklick. Also immer wenn ich auf einen Button klicke wähle ich den nächsten Datensatz an und verarbeite ihn.

also:

query1.next;
...
...
weitere anweisungen
...
...


jetzt will ich, wenn beim button klick der letzte Datensatz verarbeitet wird, den button anders beschriften. Momentan ist er mit "next >>" beschriftet und ich will das dann in "ende" umwandeln.
Jetzt hab ich das versucht mit:

if Query1.Eof then Button.Caption := 'ende';

direkt nach dem query1.next..
Und da kommt mein Problem. Das ganze funktioniert erst bei dem letzten Datensatz +1. Wenn ich also beim letzten Datensatz angekommen bin, muss ich NOCHMAL auf den Button klicken bevor das ganze so kommt wie ich es möchte.. als wäre da noch "leersatz"..
Es wird nichts mehr verarbeitet wenn ich nochmal draufklicke, abgesehen davon das der Button umbeschriftet wird.
Wie kann ich sonst prüfen ob es der letzte Datensatz ist? Das ganze verwirrt mich ein wenig.

Liebe Grüße,
Andy
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: eof, wo?

  Alt 24. Jul 2005, 04:25


Ich habe keine Antwort auf deine Frage, aber ich würde mich auf den vorletzten Eintrag kümmern, denn mit Query1.next wählst Du ja immer weiter und wenn Du erst prüfst ob du am ende bist wenn man auf den knopf drückt, heißt das erst am ende verändert sich die caption.

Vielleicht am anfang die anzahl der einträge abfragen und eben eine bedingung, wenn der und der index erreicht is, die caption ändern.

Kenne mich aber nicht Datenbanken aus, deshalb habe ich keinen Code-Schnipsel. Sry, hoffe die Überlegung hilft :>
mfg zecke
  Mit Zitat antworten Zitat
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#3

Re: eof, wo?

  Alt 24. Jul 2005, 04:29
Äh nein, keine sorge.. bevor ich den nächsten Eintrag aufrufe, prüfe ich ob das nicht schon der letzte ist. Ich mache also quasi 2 eof Prüfungen. Einmal vor dem next und einmal dahinter, um zu gucken ob das JETZT der letzte ist.
Also damit hat es leider nichts zu tun.
Und bei der zweiten EOF Prüfung müsste er mir dann ja anzeigen ob ich grade den letzten Datensatz verarbeite. Falls ja, will ich den Button umbenennen. Was aber eben aus oben genannten Gründen erst bei EOF + 1 klappt.. irgendwie...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: eof, wo?

  Alt 24. Jul 2005, 06:44
Hai Sanguis,

es ist wirklich so das .Eof erst True wird venn versucht wird vom letzten Datensatz weiter zu springen.
Darum ist es am einfachsten mit dem von zecke vorgeschlagenen Weg zu arbeiten. Dies würde ich aber nicht in die Verarbeitungsprocedure setzen (OnClick des Buttons) sondern in das Delphi-Referenz durchsuchenAfterScroll des DataSets.
Delphi-Quellcode:
procedure TForm1.QueryAfterScroll(DataSet: TDataSet);
begin
  if (DataSet.RecNo = DataSet.RecordCount) then
  begin
    next.Caption := 'Ende';
  end
  else
  begin
    next.Caption := 'Next';
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Sanguis

Registriert seit: 20. Jul 2005
Ort: Essen
146 Beiträge
 
#5

Re: eof, wo?

  Alt 25. Jul 2005, 00:22
Ah, vielen Dank.
Es hat geklappt. Man lernt eben doch immer dazu.
Also, danke nochmal für die schnelle Hilfe
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 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