Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatznr. des Satzes welchem der Zeiger gerade liegt? (https://www.delphipraxis.net/112493-datensatznr-des-satzes-welchem-der-zeiger-gerade-liegt.html)

Borschti 22. Apr 2008 12:49

Datenbank: ADS • Version: 8.1 • Zugriff über: Kp

Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Hallo,

Ich suche eine Methode/Eigenschaft welche mir die Nummer des Datensatzes, auf welchem gerade der Zeiger liegt, zurückgibt.

Beispiel: Ich habe 10 Datensätze in meiner Query und diese werden mir auch in meinem DBGrid angezeigt, nun klicke Ich den fünften an und von dort fängt auch meine Schleife an zu arbeiten nachdem Ich auf einem Button klicke, der Fortschritt der Operation wird auf einer ProgressBar angezeigt.

Das Problem ist jetzt das wenn ich irgendwo mitten in dem DBGrid starte, meine ProgressBar nur zur hälfte gefüllt ist nachdem die Schleife durchgelaufen ist.

Also brauche ich diese Methode/Eigenschaft um auszurechnen wieviele Datensätze insgesamt durchlaufen werden bis das DBGrid am Ende angelangt ist. Diesen Wert brauche Ich dann um den exakten Fortschritt meiner progrssBar zu berechnen. z.Z. benutze Ich noch Query1.RecordCount.

Hoffe Ich konnte es verständlich erklären ;)

mfg
Alex

mkinzler 22. Apr 2008 12:51

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Kennt ADS .RecNo ?

Borschti 22. Apr 2008 13:01

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Ja tut es. Aber was liest das aus? Hab mirs grade per ShowMessage ausgeben lassen und egal wo der Zeiger liegt bekomm Ich eine -1 raus.

Rufe es mit VddQuery1.RecNo auf.

mfg
Alex

Borschti 24. Apr 2008 07:54

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Also bin jetzt nochmal dazu gekommen mir RecNo etwas genauer anzuschaun, in der Hilfe steht: "RecNo stellt eine Behelfseigenschaft für abgeleitete Datenmengen zur Verfügung, die keine Datensatznummern unterstützen."

Hört sich garnicht mal so schlecht an, nur wie kann Ich das nutzen? Oder gibt es vielleicht noch eine andere Eigenschaft oder methode mit der das möglich ist?

mfg
Alex

s-off 24. Apr 2008 08:14

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Hallo,

also meine TADSQuery (8.1) liefert mit RecNo() sehr wohl die Position des aktuellen Datensatzes innerhalb der Datenmenge zurück.
Hat Deine Tabelle einen Index oder hast Du einen Filter gesetzt? Dann spiel mal mit der 'Sequenced'-Property.

Beachte auch, dass RecordCount auch gelöschte Datensätze beinhaltet!

Borschti 24. Apr 2008 08:43

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Hmm also Ich bekomm bei RecNo nur -1 zurück, so stehts auch in der Hilfe, also das RecNo standardmäßig den Wert -1 hat :(

Vielleicht liegt es an meinem Aufruf
Delphi-Quellcode:
Query1.RecNo;
Kanns mir aber irgendwie nicht wirklich vorstellen...

Habe auch mal nach Sequenced im Internet und in der Hilfe gesucht, konnte aber nicht wirklich was finden :(

Was macht die Eigenschaft? Eine kurze Erklärung wäre sehr nett.

mfg
Alex

mkinzler 24. Apr 2008 08:48

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Sie enthält die Datensatznummer des aktiven Datensatzes.

s-off 24. Apr 2008 08:55

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Und Du bist sicher, dass Dein Query ein TADSQuery ist, und kein normales TQuery?

Mich wundert sowieso, dass Deine Hilfe auf deutsch ist - die Hilfe zu Advantage gibt es glaube ich nur in englisch und dort heißt es:

Zitat:

RecNo

Indicates the current record in the dataset.

Syntax

property RecNo: Longint;

Description

Examine RecNo to determine the record number of the current record in the dataset. Applications might use this property with RecordCount to iterate through all the records in a dataset, though typically record iteration is handled with calls to First, Last, MoveBy, Next, and Prior.

Borschti 24. Apr 2008 09:36

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Hmm naja hatte in der Online Hilfe von Delphi geschaut :roll:

Da gabs auch was zu RecNo, hatte gedacht das wär das gleiche ;)

Naja, RecNo scheint leider nicht zu funktionieren, wie kann mir denn sequenced die Datensatznummer des aktiven Datensatzes geben? Hat als Rückgabewert Boolean :?:

Poelser 24. Apr 2008 10:27

Re: Datensatznr. des Satzes welchem der Zeiger gerade liegt?
 
Ich weiß jetzt nicht, ob ADS das unterstützt, bei Sybase geht sowas mit

select number(*), * from MeineTabelle;

Es ist aber nur ein simples Durchnummerieren :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05: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