PDA

View Full Version : SQL



minnebth
26-04-01, 11:49
Hallo,

wie kann ich die Anzahl der vom Select Statement zurückgelieferten Datensätze limitieren?

mfg
Thorsten

Fuerchau
27-04-01, 14:24
Eine Limitierung des Select's ist nicht möglich und auch nicht erforderlich, da die Daten eines Selects mittels Fetch abgerufen werden. Das Programm kann also nach der benötigten Anzahl Sätze einfach aufhören zu lesen.
Sie kennen diese Funktion warscheinlich aus MS/Access ode MS/Query (SELECT TOP 10 ...).
Dies funktioniert auch nur mit DAO/ADO, da hier automatisch der Select und die Anzahl Fetch generiert werden.
Wenn Sie mittels AS/400-Query die Daten limitieren wollen, müssen Sie leider eine temporäre Ausgabedatei erstellen und diese miitels CPYF ... NBRRCDS(n) in Ihre Ergebnisdatei ausgeben.

minnebth
08-05-01, 12:06
Fuerchau

Genau das ist der Punkt. Ich möchte mittels
ADO Select-Statements ausführen. Und da das
Resultset den Hauptspeicher des Webservers
sprengen kann, will ich es limitieren.

Fuerchau
09-05-01, 11:40
Mit ADO kenne ich mich nicht so besonders aus aber ich denke, dass Sie auf irgendwelchen Eigenschaftsseiten (wenn Sie den Verbindungsmanager VB6 verwenden) die Anzahl Sätze beschränken können.

Ansonsten können Sie auch DAO (MS-Jet)verwenden aber nicht mit SQL-PASSTHRU und den Select-Befehl mit 'SELECT TOP 10 ...' eingeben. DAO beschränkt dann das Resultset, gibt aber den Select ohne 'TOP 10' an den ODBC-Treiber weiter.

Fuerchau
14-05-01, 08:35
Nach einigen Test's mit ADO konnte ich folgendes feststellen:

Setzen Sie die Eigenschaft 'MaxRecords' auf die gewünschte Anzahl Sätze BEVOR sie das Recordset eröffnen.
Warum ich allerdings immer doppelt soviele Sätze bekam, wie ich eigentlich wollte, weiß ich nicht. Man kann dies aber beim Einstellen der Eigenschaft entsprechend berücksichtigen.

MaxRecords funktioniert allerdings nur mit einem SQL-Statement und nicht mit einem Tabellenobjekt !