AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi result-table in sp umkehren
Thema durchsuchen
Ansicht
Themen-Optionen

result-table in sp umkehren

Ein Thema von sancho1980 · begonnen am 5. Jun 2006 · letzter Beitrag vom 5. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#1

result-table in sp umkehren

  Alt 5. Jun 2006, 16:04
Datenbank: firebird • Version: 1.5 • Zugriff über: ibx, ibexpert
hallo,
sagt mal, gibt es eine möglichkeit, nach dem suspend aller ergebnis-einträge einer sp die ergebnismenge umzukehren, also dass genau die ausgewählten records zurückgegeben werden, nur in umgekehrter reihenfolge?

danke,

martin
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#2

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 19:30
Also ich weiß nicht ob sich die Tabellen unterschiedlich verhalten, aber bei MySQL kann man einfach sagen
SELECT * FROM datenbank ORDER BY x DESC Also abwärts ordnen...ich weiß nicht ob du das suchst.


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#3

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 19:43
hi, auch ein leipziger

ja, das dachte ich zunächst auch: lege einfach alles in meine result-tabelle und dann ordne ich es andersherum
aber das geht leider nicht; zumindest nicht bei firebird und im firebird-support-forum meinten die auch zu mir, dass man virtuelle tabellen nicht einfach ordnen kann; verständlich, schließlich sind virtuell erstellte tabellen ja nicht indiziert...
bin mittlerweile dazu übergegangen, alles in der reihenfolge auszuwählen, wie ich's auch brauche, aber das is in meinem fall extrem umständlich und fehleranfällig

gruß von l.e. nach l.e.
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 20:01
Wie führst du dien SPs aus?
Markus Kinzler
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#5

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 20:14
Logisch geht das, solange du eben eine select-procedure hast, also:


select * from DEINE_PROZEDUR(PARAM1, PARAM2) order by FELD1 DESC FELD2 ASC

keine Probleme damit.
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#6

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 20:26
Zitat von webcss:
Logisch geht das, solange du eben eine select-procedure hast, also:


select * from DEINE_PROZEDUR(PARAM1, PARAM2) order by FELD1 DESC FELD2 ASC

keine Probleme damit.

Negativ,
das funktioniert nicht immer..manchmal kommt dabei völliger mist raus
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 20:29
Also bei mir hat es bisher auch immer funktioniert.
Markus Kinzler
  Mit Zitat antworten Zitat
webcss

Registriert seit: 10. Feb 2006
255 Beiträge
 
Delphi XE2 Professional
 
#8

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 20:34
Zitat von sancho1980:
Negativ,
das funktioniert nicht immer..manchmal kommt dabei völliger mist raus
Wie erkennst Du das, bzw. was fragst du in der SP und wie? vielleicht liegt da der wurm?
"Wer seinem Computer Mist erzählt, muss immer damit rechnen..." (unbekannt)
"Der Computer rechnet damit, dass der Mensch denkt..." (auch unbekannt)
mein blog
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#9

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 21:09
also man stelle sich eine tabele dicentries vor
diese tabelle hat unter anderem 2 felder: asterm und id
jetzt stelle man sich ein dbgrid vor, in dem 20 einträge sind...und zwar geordnet nach
order by asterm ascending, id ascending wenn der user jetzt in dem grid nach oben scrollen will, sollen die vorherigen 20 einträge aus der tabelle gefetcht werden
das ganze geschieht, indem asterm und id vom obersten eintrag gelesen werden, und an eine sp mit namen get_prior_20 übergeben werden.

diese sp sieht bei mir folgendermaßen aus:

SQL-Code:
CREATE PROCEDURE GET_PRIOR_20 (
    ASTERMIN VARCHAR(80) CHARACTER SET WIN1252,
    IDIN BIGINT)
RETURNS (
    ASTERMOUT VARCHAR(80) CHARACTER SET WIN1252,
    IDOUT BIGINT)
AS
DECLARE VARIABLE CNT INTEGER = 0;
begin
  for select first 20 id, asterm from
  dicentries
  where asterm = :astermin and id <= :idin
  order by asterm descending, id descending
  into idout, astermout
  do
    begin
      cnt = :cnt + 1;
      suspend;
    end
  for select first 20 id, asterm from
  dicentries
  where asterm < :astermin
  order by asterm descending, id descending
  into idout, astermout
  do
    begin
      if (cnt = 20) then
        exit;
      cnt = :cnt + 1;
      suspend;
    end
end
wenn ich beispielsweise select * from get_prior_20('ausdruck', 30) aufrufe, bekomme ich die gewünschten einträge; nur eben in der falschen reihenfolge, denn im grid soll natürlich der zuerst gefetchte record an letzter stelle stehen...
bei dem versuch, die reihenfolge einfach umzukehren mittels select * from get_prior_20('ausdruck', 30) order by asterm ascending, id ascending wird die reihenfolge nach einem mir nicht ersichtlichen prinzip durcheinandergebracht!
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: result-table in sp umkehren

  Alt 5. Jun 2006, 21:12
Welche Komponente verwendest du? warum nimmst du nicht die Limitierung des DB-Servers?
Markus Kinzler
  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 05:12 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