AGB  ·  Datenschutz  ·  Impressum  







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

Firebird: letzte 10 Datensätze ausgeben zu langsam

Ein Thema von Chemiker · begonnen am 30. Mai 2019 · letzter Beitrag vom 2. Jun 2019
 
Neumann
Online

Registriert seit: 6. Feb 2006
Ort: Moers
544 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird: letzte 10 Datensätze ausgeben zu langsam

  Alt 30. Mai 2019, 14:20
Habe mal auf die Schnelle eine Procedure geschrieben, mit der man die IDs der letzten 10 Datensätze schnell ermitteln kann:

Delphi-Quellcode:
SET TERM ^ ;

create or alter procedure p_last10
returns (
    bmin integer,
    bmax integer)
as
declare variable c integer;
declare variable maxl integer;
declare variable btemp integer;
begin
  c=1;
  select max(buch_nr) from buchungen into :bmax;
  bmin=bmax;
  maxl=0;
  while ((c<10) and (maxl<100)) do
  begin
    select max(buch_nr) from buchungen where buch_nr<:bmin into :btemp;
    if (not btemp is null) then
    begin
      c=c+1;
      bmin=btemp;
    end

    maxl=maxl+1;
  end
  suspend;
end
^

SET TERM ; ^
Die Procedure liefert die beiden Werte bmin und bmax.
Maxl soll Verhindern, dass die Procedure in einer Endlosschleife hängenbleibt, wenn keine 10 Datensätze gefunden werden (ungetestet).

Dann braucht man nur noch den Select mit den beiden Parametern aus der Procedure ausführen.

Bei mir
select * from buchungen where buch_nr between :s and :t
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
 


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 09:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz