AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird: letzte 10 Datensätze ausgeben lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird: letzte 10 Datensätze ausgeben lassen

Ein Thema von Helmi · begonnen am 7. Mai 2017 · letzter Beitrag vom 7. Mai 2017
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#1

Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 10:35
Datenbank: Firebird • Version: 2.5 • Zugriff über: ZEOS
Hallo,

wie kann ich mir die letzten 10 (z. B.) Datensätze einer Firebird-Datenbank anzeigen lassen?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
bnreimer42

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
126 Beiträge
 
Delphi 12 Athens
 
#2

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 10:41
Meinst Du von einer Datenbank oder von einer Abfrage?

Ersteres: Ich wüsste nicht, ob das allgemein geht. Man könnte sich Mechanismen einfallen lassen, wie die gemeinsame Verwendung einer Sequenz für alle Primärschlüssel und es darüber ermitteln, aber vom System her geht das nicht out of the box.

Wenn Du es bei einer Abfrage brauchst, dann hilft Dir First (siehe
https://firebirdsql.org/refdocs/lang...d20-first-skip)

und ein richtiges Order by.
Björn Reimer
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#3

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 10:52
Meinst Du sowas?
select first 10 * from tabelle order by id desc Statt id halt das nehmen, nach dem sich "letzte 10" definiert.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 11:03
Meinst Du sowas?
select first 10 * from tabelle order by id desc Statt id halt das nehmen, nach dem sich "letzte 10" definiert.
Das gibt mir die ersten 10 Einträge aus


Wenn Du es bei einer Abfrage brauchst, dann hilft Dir First (siehe
https://firebirdsql.org/refdocs/lang...d20-first-skip)
In dem Link ist ein Beispiel mit skip vorhanden

So funktionierts bei mir:
Select skip ((select count(*) from tabelle - 5) * from tabelle
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi ( 7. Mai 2017 um 11:12 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert
Online

Registriert seit: 15. Mär 2005
679 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 11:26
Der Server muss dafür aber die komplette Tabelle scannen, vermutlich sogar doppelt, daher ist der Vorschlag
order by xxx desc
wesentlich sinnvoller, wenn es denn auch ein desc Index auf dem relevanten Feld gibt
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#6

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 11:43
Meinst Du sowas?
select first 10 * from tabelle order by id desc Statt id halt das nehmen, nach dem sich "letzte 10" definiert.
Das gibt mir die ersten 10 Einträge aus
Absteigend sortiert sind die ersten die letzten. (Und die Bibel hat doch Recht )
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 11:46
Meinst Du sowas?
select first 10 * from tabelle order by id desc Statt id halt das nehmen, nach dem sich "letzte 10" definiert.
Das gibt mir die ersten 10 Einträge aus
Absteigend sortiert sind die ersten die letzten. (Und die Bibel hat doch Recht )
Schande auf mein Haupt
hab das desc übersehen
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
bnreimer42

Registriert seit: 26. Mai 2013
Ort: Erlangen, Franken
126 Beiträge
 
Delphi 12 Athens
 
#8

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 12:05
Mit einer CTE (Geht bei FB 2.5) bekommst Du die letzten 10 Sätze einer Tabelle
Code:
dbuser
in der korrekten Reihenfolge vmtl. am einfachsten so

Code:
with roh as (
select first 10 "Id" from Dbuser s
order by s."Id" desc )
select * from roh order by "Id"
Björn Reimer
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 12:44
Mit einer CTE (Geht bei FB 2.5) bekommst Du die letzten 10 Sätze einer Tabelle
Code:
dbuser
in der korrekten Reihenfolge vmtl. am einfachsten so

Code:
with roh as (
select first 10 "Id" from Dbuser s
order by s."Id" desc )
select * from roh order by "Id"
da bekomm ich keine Datensätze angezeigt
[edit]
ich nimm alles zurück - funktioniert
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi ( 7. Mai 2017 um 12:51 Uhr)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

AW: Firebird: letzte 10 Datensätze ausgeben lassen

  Alt 7. Mai 2017, 12:59
Sowas müsste doch auch gehen:
SQL-Code:
select * from (
  select first 10 * from tabelle order by id desc
)
order by id
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:29 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