Autor Téma: TFDQuery.FetchAll - dá sa to niekde nastaviť ako default?  (Přečteno 2120 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
V transakcii som to nenašiel. No neviem aké parametre sa tam dajú nasekať.
TFDQuery to má ako metódu.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:TFDQuery.FetchAll - dá sa to niekde nastaviť ako default?
« Odpověď #1 kdy: 07-11-2017, 14:12:12 »
Ďakujem.
Práve som to našiel, vylúštil. Ale ako čítam Tvoj príspevok, tak som to pekne poplietol.
Dúfam, že to platí aj pre Refresh.
« Poslední změna: 07-11-2017, 14:14:11 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:TFDQuery.FetchAll - dá sa to niekde nastaviť ako default?
« Odpověď #2 kdy: 07-11-2017, 20:07:25 »
Ako to tak po troške čítam, tak zisťujem, že to je poriadne zamotané. A nemožné si zapamätať ako sa to správa pri rôznych kombináciách vlastností.
Ale hlavne mám skúsenosť ktorá hovorí: čítaj pozorne všetko až do posledného slova!
Vďaka za vysvetlenie.

Poznámka: nikde nevidím, žeby sa na stránke o FireDAC dalo vyhľadávať. A keď to človek nepozná, tak mu index nijako nepomôže. Napr. pod R nie Refresh, lebo to je niekde v triede v ktorej to je definované. Ale v ktorej to je to nemám ešte ako vedieť. Dostať do hlavy celú štruktúru FireDAC je pre mňa nemožné :'(
Ten príklad neberte doslova. Viem, že Refresh ma hodí do Data.DB.TDataSet.Refresh
« Poslední změna: 07-11-2017, 20:11:29 od Stanislav Hruška »
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:TFDQuery.FetchAll - dá sa to niekde nastaviť ako default?
« Odpověď #3 kdy: 07-11-2017, 22:19:24 »
Citace
Proc chces vlastne prenaset vsechny zaznamy? Kvuli lepsimu vykonu?
Dôvodov je viac. Jeden z nich môže byť aj výkon, ako som sa dočítal.
Všade kde mám použitý SELECT pracujem s celou sadou záznamov. Tých záznamov budem mať rádovo v stovkách. Takže objem dát nie je problémom. V drvivej väčšine prípadov mám while not qry.eof do. Čo znamená, že ich aj tak natiahnem všetky.
Teraz mám len doslovne pár záznamov a tak netuším ako dlho sa budú vykonávať jednotlivé operácie. A či by som pocítil rozdiel.
Niekde prechádzam dataset od konca. Neviem či by mu vadilo ak by nebol natiahnutý celý.
Inde si to vyžaduje spôsob práce s datasetom - ťahanie údajov do výpočtov.
Hlavne si v niektorých prípadoch nie som istý ako to funguje. Tak si vytváram poistku.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4341
  • Karma: 38
    • Verze Delphi: XE7 professional
Re:TFDQuery.FetchAll - dá sa to niekde nastaviť ako default?
« Odpověď #4 kdy: 08-11-2017, 08:39:24 »
Citace
pokud ti jde o vykon, zkus otestovat zda dosahnes vyssiho vykonu navysovanim
Držím sa zásady ktorú mi tu niekoľkokrát obili  o hlavu. Najprv nech ti to všetko správne funguje. Až potom sa venuj optimalizácii. A mne to ešte nefunguje ako má + nemám všetko otestované (lebo ma to už nebaví :) ).  Až k tomu dôjde, tak si najprv budem musieť vygenerovať dostatočný počet záznamov. Už len to generovanie bude zábava.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.