Lazarus 3.2 (2024.02.28.)
Letöltés

  • Oldal:
  • 1

TÉMA:

SQLQuery rendezés paraméterrel 2016 máj. 11 06:49 #1990

  • mavika
  • mavika profilkép
  • Új tag
  • Új tag
  • Write once, compile anywhere!
  • Hozzászólások: 5
  • Köszönetek: 0
Szuper! B)

SQLQuery rendezés paraméterrel 2016 máj. 11 06:46 #1989

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Igen, köszönöm!
Erre jutottam én is. Hasonlóan oldottam meg!

SQLQuery rendezés paraméterrel 2016 máj. 11 06:44 #1988

  • mavika
  • mavika profilkép
  • Új tag
  • Új tag
  • Write once, compile anywhere!
  • Hozzászólások: 5
  • Köszönetek: 0
Az ORDER BY nem kaphat paramétert, de egy trükkel meg lehet oldani a paraméteres rendezést.
(legalábbis PostgreSQL alatt ez működik, www.postgresql.org/docs/9.5/static/tutorial-window.html)

A lekérdezést így kell megírni:
SELECT id,name,size
FROM table
ORDER BY
  CASE :order
    WHEN 0 THEN (RANK() OVER (ORDER BY id))
    WHEN 1 THEN (RANK() OVER (ORDER BY name))
    WHEN 2 THEN (RANK() OVER (ORDER BY size DESC))
    ELSE (RANK() OVER (ORDER BY name, size))
  END;

Ez után, a rendezés paraméter (:order) kiválasztja az előre megírt rendezések egyikét:
SQLQuery.ParamByName('order').AsInteger := 0; // rendezés 'id' szerint
SQLQuery.ParamByName('order').AsInteger := 1; // rendezés 'name' szerint
SQLQuery.ParamByName('order').AsInteger := 2; // rendezés csökkenő 'size' szerint
SQLQuery.ParamByName('order').AsInteger := 99; // rendezés 'name' és 'size' szerint (ELSE ág)

SQLQuery rendezés paraméterrel 2016 ápr. 29 11:41 #1970

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Ezt sajnos nem tudja az SQLQuery.

SQLQuery rendezés paraméterrel 2016 ápr. 05 07:01 #1952

  • makgab
  • makgab profilkép Témaindító
  • Törzsgárda tag
  • Törzsgárda tag
  • Hozzászólások: 280
  • Köszönetek: 1
Üdv!
SQLQuery-ben szeretnék rendezni paraméterrel. Hogyan kellene ezt használni pontosan, mert nekem nem rendezi a query-t.
Pl., SQLQuery.SQL:
SELECT id,name,size FROM table ORDER BY :order;

Ezekre nem történik változás:
SQLquery.Close;
SQLQuery.ParamByName('order').AsInteger:=2;
// ORDER BY 2
SQLquery.Open;
 
SQLquery.Close;
SQLQuery.ParamByName('order').AsString:='name';
// ORDER BY 'name'
SQLquery.Open;
Hiba nincs, de a rendezés nem történik meg.

  • Oldal:
  • 1