PDA

View Full Version : OPNQRYF Anzahl Datensätze ermitteln



timeless
04-05-10, 09:43
Hallo,

wie kann ich bei einem OPNQRYF die Anzahl der gefundenen Datensätze ermitteln?:confused:?

Viele Grüße
timeless

Fuerchau
04-05-10, 11:30
Wie wäre es mit mitzählen ?
Alternatv gehts nur mit SQL:
select count(*) from OpenId.

UFK
04-05-10, 11:41
Dabei habe ich mir früher auch mal die Finger abgebrochen. Ich wollte vor der Verarbeitung wissen, wieviele Datensätze für einen Matchcode gefunden wurden, z.B. mehr oder weniger als 100 von 1.000.000, um die Gesamtanzahl anzuzeigen, und den Anwender der OpenQueryFile vorzuwarnen.

Ich denke, daß es heute bei SQL wohl bessere Mittel gibt, als beim relativ alten OpenQueryFile. Ich mußte damals ziemlich tricksen, was sich nur gelohnt hat, weil dieses Programm zigmal pro Stunde verwendet wurde, und z.B. die Personen-Suche nicht länger als 1-2 Sekunden dauern sollte.

Wenn ich mich recht erinnere, habe ich damals die selektierten Daten mit OpenQueryFile kopiert, das geht ja noch relativ schnell, (und ich hatte da evtl. auch ein Limit eingetragen wie z.B. 1000 Hits); diesen Datenextrakt habe ich dann per Programm geöffnet und abgearbeitet. Das war jedenfalls besser, als zuviele (alle) Datensätze ins Programm einzulesen, und dafür zu sortieren. Die Steuerung erfolgte mit einem recht simplen CL-Programm vor dem OpenQueryFile, und die Verarbeitung mit einem dummen RPG- oder COBOL-Programm, bei dem die Selektion inaktiviert war, und einfach der ganze Extrakt genommen wurde, der dafür gebildet worden war.

Fuerchau
04-05-10, 12:29
Wenn man genug Zeit hat, kann man per CPYFRMQRYF die Daten nach QTEMP kopieren und per RTVMBRD die Anzahl Sätze abfragen.
Allerdings liest man die Daten dann halt 2 Mal.

BenderD
04-05-10, 12:33
...warum denn einfach (SQL) wenns auch kompliziert geht; wenn ich den ganzen Schmutz schon nutzlos kopiert habe, brauche ich auch keinen Benutzer mehr vorzuwarnen, dass das wg. Menge ein wenig länger dauern könnte...

D*B


Wenn man genug Zeit hat, kann man per CPYFRMQRYF die Daten nach QTEMP kopieren und per RTVMBRD die Anzahl Sätze abfragen.
Allerdings liest man die Daten dann halt 2 Mal.