Autor Téma: FireDAC.MemTable - poradie záznamov.  (Přečteno 1918 krát)

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
FireDAC.MemTable - poradie záznamov.
« kdy: 23-07-2017, 11:07:00 »
Môžem sa spoľahnúť, že ak si naplním MemTable
Kód: Delphi [Vybrat]
  1. FDMemTable1.CopyDataSet(Query1, [coStructure, coRestart, coAppend]);
a Query1 obsahuje ORDER BY, tak poradie záznamov bude zachované?
Alebo si ho musím vynútiť  MemTable.Indexes := ...
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4455
  • Karma: 39
    • Verze Delphi: XE7 professional
Re:FireDAC.MemTable - poradie záznamov.
« Odpověď #1 kdy: 23-07-2017, 16:08:13 »
Ja mám radenie podľa 6 polí, ktoré menujem. Síce sú to cudzie kľúče, ale to je všetko. A query ťahá údaje z viacerých tabuliek.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2594
  • Karma: 133
    • Verze Delphi: D2007, XE3, DX10
Re:FireDAC.MemTable - poradie záznamov.
« Odpověď #2 kdy: 23-07-2017, 16:21:45 »
Ja mám radenie podľa 6 polí, ktoré menujem. Síce sú to cudzie kľúče, ale to je všetko. A query ťahá údaje z viacerých tabuliek.
To je prece jedno, ne? Ta data budou usporadana SQL dotazem a z Query cteny
Kód: Delphi [Vybrat]
  1. while not Query.Eof do
  2.   begin
  3.      Query.Next()
  4.   end;
  5.  
Takze do interni pameti je dostanes urcite ve stejnem poradi. A poradi ctene z MemTable bude dano indexem - nevim, jestli ma nejaky/zadny by default. Ale stejna iterace pres MemTable by IMHO mez indexu mela vracet nativni poradi (zkopirovane z Query1) z bufferu.