Autor Téma: Aliasy pre stlpce tabulky.  (Přečteno 932 krát)

Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Aliasy pre stlpce tabulky.
« kdy: 13-11-2018, 12:39:28 »
Zdar pani,

mam dalsi zaciatocnicky dotaz. Ako riesite definiciu, ulozenie alias - ov pre stlpce tabulky.
Formular, pole, table?

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1364
  • Karma: 57
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Aliasy pre stlpce tabulky.
« Odpověď #1 kdy: 14-11-2018, 06:20:34 »
Ako riesite definiciu, ulozenie alias - ov pre stlpce tabulky.

Pokud mas aliasem na mysli text jenz uvidi uzivatel napr. v gridu, pouzij resourcestring.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Re:Aliasy pre stlpce tabulky.
« Odpověď #2 kdy: 14-11-2018, 14:44:56 »
Hmmm... neviem ako sa to spravne vola, uvediem priklad:

select cas AS čas, datum AS dátum from tabulka.
Mno a ide mi o rozumny sposob zadefinovania nazvov: čas, dátum, kedze zadavat ho priamo do string - u pre SQL ma svoje "uskalia"

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 533
  • Karma: 36
    • Verze Delphi: 10.2
Re:Aliasy pre stlpce tabulky.
« Odpověď #3 kdy: 14-11-2018, 14:51:17 »
Do SQL bych ty texty pro zobrazení určitě nedával - bude s tím hromada problémů (diakritika, mezery, max. délka, případný překlad do jiného jazyka...). Používám DisplayLabel u tField (v mém případě dvakrát kliknu na tIbDataSet, kliknu pravým tlačítkem, Add all fields; pak označím pole a přepíšu DisplayLabel).

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3647
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Aliasy pre stlpce tabulky.
« Odpověď #4 kdy: 14-11-2018, 15:50:03 »
Ako píše vandrovnik. Buď využiješ DB komponenty a ich vlastnosti (Alias alebo DisplayLabel), alebo si budeš musieť niekde vytvoriť vlastné zoznamy a ťahať to z nich. V žiadnom prípade v SQL!
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Re:Aliasy pre stlpce tabulky.
« Odpověď #5 kdy: 15-11-2018, 08:10:22 »

Diky chlapi za reakciu,

Predpokladam ze samotny nazov je potom ulozeny v nakom form - e, alebo kode.



Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Re:Aliasy pre stlpce tabulky.
« Odpověď #6 kdy: 15-11-2018, 10:36:18 »
Tak nateraz som to vyriesil strukturou ssel

  ssel.sel:= 'select ID,Cislo,DEN,OD,OBSAH,VYBAVUJE from TMP_ZAL';
  ssel.als:= 'id,číslo,deň,od,obsah,vybavuje';

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3647
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Aliasy pre stlpce tabulky.
« Odpověď #7 kdy: 15-11-2018, 15:30:19 »
To nie je žiadna štruktúra, ale prostý text. S tým sa Ti bude robiť zle. Máš niekoľko možností. Napr:
- Dictionary. Ja som za túto možnosť
- Vymenované typy Type

No, ten preklad sa mi vôbec nepáč.
1, Na začiatku je dobre použiť veľké písmeno
2, Napr. aké číslo, čo za deň?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Re:Aliasy pre stlpce tabulky.
« Odpověď #8 kdy: 16-11-2018, 08:59:20 »
Snazil som sa byt strucny, preto je to nezrozumitelne. Zalozil som strukturu, ktoru posielam univerzalnemu formularu:

Kód: [Vybrat]
type sql = record
  sel: string;
  als: string;
end;
..
..
..
procedure TF_Main.TreeView1DblClick(Sender: TObject);
var
  ssel: sql;
  begin
  ssel.sel:= 'select ID,Cislo,DEN,OD,OBSAH,VYBAVUJE from TMP_ZAL';
  ssel.als:= 'id,číslo,deň,od,obsah,vybavuje';
  case  TreeView1.Selected.Text of
        'Zamestnanec':
          begin
            f1:= Tf_aut1.Create(self,ssel);
            f1.Parent := Panel1;
            f1.DBGrid1.SetFocus;
          end;
  end;
end;

Do buducna je pripraveny mechanizmus pre dalsie parametre.
Ten string je len "citatelnejsie" zadefinovanie nazvov, ktore samozrejme rozdelim do pola. Nebyt vhodneho objektu "TSringList", nerobil bych to.
Rad bych vediet, ako pascal predava onu strukturu, ci celu, alebo len pointer na nu.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3647
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Aliasy pre stlpce tabulky.
« Odpověď #9 kdy: 16-11-2018, 09:47:47 »
Ja by som to tak nerobil. Dôvod je ten, že to nie je univerzálne riešenie. Pri každej zmene budeš musieť upravovať kód, až Ťa to celkom dorazí a prerobíš to :)


Taký stručný návod, ako to riešiť pomocou Dictionary.
  • vytvoríš si Dictionary a v ňom si dáš názvy všetkých polí aj s prekladom. Pri novom poli ho len doplníš do Dictionary. A už nikde inde nebudeš nič meniť.
  • V cykle budš prechádzať zoznam polí. Je jedno či to bude table alebo query. Jednoducho to je dataset
  • Každému poľu pomocou Dictionary priradíš alias = preklad
  • To Ti umožňuje jednoducho urobiť preklad do viacerých jazykov
Poznámka: Ja by som ten Tvoj zoznam teda upravil. Napr. tako, nakoľko nepoznám presný význam jednotlivých stĺpcov
'id,číslo,deň,od,obsah,vybavuje'
'I.č./Poradie/Číslo dokumentu, Číslo dokumentu, Dátum/Zo dňa/Dňa, Od, Obsah/Predmet/účel/, Vybavuje'
ID BFU nič nehovorí.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Re:Aliasy pre stlpce tabulky.
« Odpověď #10 kdy: 16-11-2018, 11:47:00 »
Nepoznam Dictionary, budem vdacny za naky link.

Praveze toto riesenie mi umozni len jednoduchou zmenou retazca doplnit, zmenit select, alias.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3647
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Aliasy pre stlpce tabulky.
« Odpověď #11 kdy: 16-11-2018, 12:19:49 »
Napíšem TDictionary, stlačím F1 a som na stránke
ms-help://embarcadero.rs_xe7/libraries/System.Generics.Collections.TDictionary.html
Citace
Praveze toto riesenie mi umozni len jednoduchou zmenou retazca doplnit, zmenit select, alias.
Z toho mi vyplýva, že neprogramuješ dlho. Alebo sa mýlim?
Ešte raz zopakujem: koľko tých reťazcov budeš mať? To pri každej zmene v štruktúre DB ich budeš kontrolvať, doplňovať, mazať a pod.?
To je x príležítostí urobiť chybu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Re:Aliasy pre stlpce tabulky.
« Odpověď #12 kdy: 16-11-2018, 12:27:01 »
Hmmm... link mi nak nejde.

Offline milos

  • Nováček
  • *
  • Příspěvků: 12
  • Karma: 0
Re:Aliasy pre stlpce tabulky.
« Odpověď #13 kdy: 16-11-2018, 12:28:03 »
Ide TDictionary aj v Lazarus - e?

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 3647
  • Karma: 35
    • Verze Delphi: XE7 professional
Re:Aliasy pre stlpce tabulky.
« Odpověď #14 kdy: 16-11-2018, 12:41:41 »
Prepáč, neuvedomil som si, že nie som v Delphi :-[  Lazarus vôbec nepoznám.
Tento snáď pôjde[size=78%]http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.Generics.Collections.TDictionary[/size]
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í:
Datový typ v Delphi, který má True a False: