Delphi > FireDAC

FireDAC + SQLite - TFDTable - Indexy

(1/1)

ShaneZB:
Zdravím všechny
pracuji na přechodu z BDE na FireDAC. Jednou z funkčností, kterou nahrazuji je "lokální tabulka", na kterou jsme používali DBase formát tabulky. Místo ní teď používám SQLite - k vytvořené tabulce se (z důvodů kompatibility s původním kódem) přistupuje přes TFDTable - respektive přes potomka TTableFD.
Kód je zhruba tokovíhle:

--- Kód: Delphi ---    with tabulka do      begin          FieldDefs.Add(FieldName, DataType, Size, Required);          Pol := FieldDefs[Pred(FieldDefs.Count)].CreateField(tabulka);        ...        IndexDefs.Add('Tag1', 'OBRAT', [ixDescending]);         CreateTable;         IndexName := 'Tag1';        Open; <-- tady to shoří na to, že nezná objekt [TAG1]      end; Když se nepoužije IndexName, ale IndexFieldsNames, tak je to OK. Ale tahle konstrukce je použita na mnoha místech a byl bych raději, kdyby se mi podařilo nějak TTableFD upravit tak, abych nemusel sahat do dalších unit.

Najde se někdo, kdo mě nakopne správným směrem?

ShaneZB:
Odpovím si sám.
Problém byl v tom, že až v CreateTable TTableFD přiřazuju spojení na soubor databáze a jméno tabulky. A to způsobí výmaz seznamu indexů a tím pádem, se žádné indexy nezaloží. Stačilo si uložit definici indexů bokem pak ji vrátit.

Navigace

[0] Seznam témat

Přejít na plnou verzi