Autor Téma: V Select ťahať pole či použiť parameter.  (Přečteno 113 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2874
  • Karma: 27
    • Verze Delphi: XE7 professional
V Select ťahať pole či použiť parameter.
« kdy: 11-10-2017, 08:59:41 »
Možnosť 1:
Kód: [Vybrat]
SELECT A.YEARS, ...
WHERE A.YEARS = :YEARS
Možnosť 2:
Kód: [Vybrat]
SELECT CAST(:YEARS AS DATE) YEARS, ...
WHERE A.YEARS = :YEARS
Čo je podľa vás lepšie?

Poznámka: ten druhý prípad zároveň ukazuje, ako sa dá parameter použiť priamo v SELECT ako návratová hodnota poľa.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Delfin

  • Plnoletý
  • ***
  • Příspěvků: 231
  • Karma: 9
    • Verze Delphi: 2009, Tokyo
Re:V Select ťahať pole či použiť parameter.
« Odpověď #1 kdy: 11-10-2017, 09:16:36 »
Vypustit ten sloupec :) K cemu bude sloupec plny stejnych, znamych konstantnich hodnot? Pokud bych si ale mel vybrat z tech dvou, volil bych 1 protoze sloupec si s sebou nese metainformace. Pokud bys zmenil typ sloupce, musel bys v pripade 2 zmenit i datovy typ CASTu.
« Poslední změna: 11-10-2017, 09:19:38 od Delfin »
A co chudinky ovce? Koupíš jim snad plovací vesty? Nebo jim nasadíš chůdy? Ještě lepší, kdybys je zkřížil s delfíny na ovce hopkavé!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1796
  • Karma: 77
    • Verze Delphi: D2007, XE3, DX10
Re:V Select ťahať pole či použiť parameter.
« Odpověď #2 kdy: 11-10-2017, 09:17:38 »
Excellent
Rated 1 time
Čo je podľa vás lepšie?

Poznámka: ten druhý prípad zároveň ukazuje, ako sa dá parameter použiť priamo v SELECT ako návratová hodnota poľa.
No ale to muze byt zaroven zdrojem problemu pri pozdejsich zmenach, kdy se rozsiri podminka o nejaka dalsi kriteria, ktera vytahnou zaznamy z ruznych let a ve vysledku zustane rok, jehoz vyznam se treba upravou zmenil na OD, protoze si te replikace argumentu do result setu nekdo nevsimne... A dost blbe by se to hledalo, zejmena na slozitejsich datech.

Sice se da namitnout, ze v danem pripade se to nikdy nestane a rok bude v result setu vzdy jen jeden a shodny se vstupnim parametrem, ale lepe udrzovatelny program bude ten, ktery bude v cele aplikaci pouzivat stejne techniky, takze to chce zvolit obecnejsi techniku a to je persistentni hodnota z DB, ne vstupni kriterium.


Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1796
  • Karma: 77
    • Verze Delphi: D2007, XE3, DX10
Re:V Select ťahať pole či použiť parameter.
« Odpověď #3 kdy: 11-10-2017, 09:30:50 »
Vypustit ten sloupec :) K cemu bude sloupec plny stejnych, znamych konstantnich hodnot?
Treba k tomu, ze ten model polozky (radku v result setu) predava k dalsimu zpracovani. Pak je daleko prehlednejsi ho populovat na jednom miste s ostatnimi daty, nez ruzne po aplikaci honit, kde kdo zapomel predat nejakou hodnotu.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2874
  • Karma: 27
    • Verze Delphi: XE7 professional
Re:V Select ťahať pole či použiť parameter.
« Odpověď #4 kdy: 11-10-2017, 09:36:37 »
Ďakujem za extra rýchle reakcie.
Tie SELECT-y sú súčasťou INSERT INTO MYTABLE ... Preto to tam potrebujem.
« Poslední změna: 11-10-2017, 09:40:06 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: