Autor Téma: SQLite BUG ?: SELECT Alias FROM ( Select Field1 Alias::<T> FROM Table)  (Přečteno 6230 krát)

Offline miroB

  • Guru
  • *****
  • Příspěvků: 516
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Naplnis jen kolekci FieldDefs. Tak jako bys to udelal v design time pres fields editor.
Ak uvediem konkretne na priklade, tak kedy v ramci tohoto?
Kód: MySQL [Vybrat]
  1.   FDQuery1.SQL.Text := 'SELECT * FROM [myView]';                  
  2.   FDQuery1.Active   := True;
Pred riadkom 1, 2, alebo az na konci.
Zatial som to nikdy neriesil.
Design time pri databazach nepouzivam snad nikdy. Takze to mi tiez moc nehovori.

Offline miroB

  • Guru
  • *****
  • Příspěvků: 516
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
Naplnis jen kolekci FieldDefs. Tak jako bys to udelal v design time pres fields editor.
Ak uvediem konkretne na priklade, tak kedy v ramci tohoto?
Kód: MySQL [Vybrat]
  1.   FDQuery1.SQL.Text := 'SELECT * FROM [myView]';                  
  2.   FDQuery1.Active   := True;
Pred riadkom 1, 2, alebo az na konci.
Zatial som to nikdy neriesil.
Design time pri databazach nepouzivam snad nikdy. Takze to mi tiez moc nehovori.

iiha, to bolo jednoduche. Takze sa blizim k rieseniu.
Opravujem opravene :)
Bolo to jednoduche, ale unahlil som sa so svojim prispevkom, ten som zmazal a davam spravne zenenie kodu:
Kód: Delphi [Vybrat]
  1. FDQuery1.SQL.Text := 'SELECT * FROM ( select [id], [datum] AS [myDate::DATE] from [demo] )';
  2. FDQuery1.Active   := True;
  3. i := FDQuery1.FieldDefs.Count; // 2
  4. FDQuery1.FieldDefs.Clear;
  5. i := FDQuery1.FieldDefs.Count; // 0
  6. FDQuery1.FieldDefs.Add( 'id', ftSmallInt, 0 );
  7. FDQuery1.FieldDefs.Add( 'datum', ftDate, 0 );
  8. i := FDQuery1.FieldDefs.Count; // 2
  9.  
Kod som doplnil do toho, co som publikoval na embarcadero. Takze keby niekto chcel vyskusat. Ma aj cely kod.
Len toto bolo "vylepsene", co je uvedene tuna som teda pozmenil

Offline miroB

  • Guru
  • *****
  • Příspěvků: 516
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
BUU.......
POZOR. IBA SA TVARI, ze ide. Vytvorim novu definiciu poli, aj vratane typu.
Zda sa, ze prebehne OK. Ale typ sa nepodari zmenit.
Testujem podrobnejsie a nejde to. Prispevok uz neviem zmazat, ale dam opravu, ked budem vediet, ako dalej pokracovat.

Naplnis jen kolekci FieldDefs. Tak jako bys to udelal v design time pres fields editor.
Ak uvediem konkretne na priklade, tak kedy v ramci tohoto?
Kód: MySQL [Vybrat]
  1.   FDQuery1.SQL.Text := 'SELECT * FROM [myView]';                  
  2.   FDQuery1.Active   := True;
Pred riadkom 1, 2, alebo az na konci.
Zatial som to nikdy neriesil.
Design time pri databazach nepouzivam snad nikdy. Takze to mi tiez moc nehovori.

iiha, to bolo jednoduche. Takze sa blizim k rieseniu.
Opravujem opravene :)
Bolo to jednoduche, ale unahlil som sa so svojim prispevkom, ten som zmazal a davam spravne zenenie kodu:
Kód: Delphi [Vybrat]
  1. FDQuery1.SQL.Text := 'SELECT * FROM ( select [id], [datum] AS [myDate::DATE] from [demo] )';
  2. FDQuery1.Active   := True;
  3. i := FDQuery1.FieldDefs.Count; // 2
  4. FDQuery1.FieldDefs.Clear;
  5. i := FDQuery1.FieldDefs.Count; // 0
  6. FDQuery1.FieldDefs.Add( 'id', ftSmallInt, 0 );
  7. FDQuery1.FieldDefs.Add( 'datum', ftDate, 0 );
  8. i := FDQuery1.FieldDefs.Count; // 2
  9.  
Kod som doplnil do toho, co som publikoval na embarcadero. Takze keby niekto chcel vyskusat. Ma aj cely kod.
Len toto bolo "vylepsene", co je uvedene tuna som teda pozmenil

Offline miroB

  • Guru
  • *****
  • Příspěvků: 516
  • Karma: 17
    • Verze Delphi: D1,2,3,4,7,2005,2009, XE8,S,B,T10.2.2 Pro
BUU.......
POZOR. IBA SA TVARI, ze ide. Vytvorim novu definiciu poli, aj vratane typu.
Zda sa, ze prebehne OK. Ale typ sa nepodari zmenit.
..
No, a pak jsem psal ze ty definice je treba vytvorit pred otevrenim kurzoru (v puvodnim kodu se kurzor otevira na radku 2.); tj. pred nastavenim Active na True (nebo volanim Open).
Nie typy poli v tomto pripade nejdu zmenit. Ani pred, ani po.
V rpípade pred, otvorenie FDQuery ich premaze. NEPOMOZE.
Ked su po, tak sa mozem hrat, ze ich prepisem, aj zmazem, a znovu vytvorim. To sa zda, ze ide. Aj pocet  v Count sa zmeni, ale po vytvoreni su tam zase tie typy, co predtym.

Ale hrajem sa s Low Level API: TSQLiteDatabase a TSQLiteStatement.
Tam viem ziskat udaje bez toho, ze by bol naplneny dataset.
Ten mozem slobodne sam vytvorit a naplnit ho.
Co mi odporucas, mam pouzit TFDMemTable, alebo by na to bolo nieco vhodnejsie?