Autor Téma: Datasnap Firedac FDStoredproc field boolean  (Přečteno 1603 krát)

Offline salvamiroslav

  • Příspěvků: 2
  • Karma: 0
Datasnap Firedac FDStoredproc field boolean
« kdy: 04-05-2015, 13:24:01 »
Dobrý deň. Prosím o pomoc. Urobil som datasnap klient server aplikáciu s Firedac komponentami.

Na strane servera, ServerMethodsUnit1: 

Kód: Delphi [Vybrat]
  1. FDConnection   'DriverID=MSSQL;Server=127.0.0.1;Database=MyDatabase;OSAuthent=Yes'
  2.  
  3. procedure TServerMethods1.MyTable(out ADataSet: TDataSet);
  4. begin
  5.   FDQuery1.Open('SELECT * FROM MyTable');
  6.   ADataSet := FDQuery1;
  7. end;
Tabuľka MyTable má dva polia id [int] a idvalid [bit]. Má 300 riadkov kde id je naplnené vzostupne od 0 až 299 a pole idvalid má na všetkých riadkoch 0 (False).
Na strane klienta:

FDConnection 'DriverID=DataSnap;Port=212'

Kód: Delphi [Vybrat]
  1. procedure TForm3.Button1Click(Sender: TObject);
  2. begin
  3.   FDStoredProc1.Open('TServerMethods1.MyTable');
  4.   FDStoredProc1.FetchAll;
  5. end;

Po vyvolaní Button1Click sa do datasetu FDStoredProc1 prenesie všetkých 300 riadkov. Pole idvalid má správne hodnoty False iba v prvých 255 riadkoch. Ďaľšie riadky majú hodnotu True! Skúšal som to na rôznych tabuľkách. Polia bit majú správne hodnoty iba na prvých 256 riadkoch ďaľej sú naplnené True.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2610
  • Karma: 23
    • Verze Delphi: XE7 professional
Re:Datasnap Firedac FDStoredproc field boolean
« Odpověď #1 kdy: 04-05-2015, 14:48:54 »
Citace
Tabuľka MyTable má dva polia id [int] a idvalid [bit].
Tu predpokladám preklep bit <> Byte. A byte má dĺžku 256. Ale to nie je dôvod na takéto správanie.
Skúsil si nepoužiť FechAll, skočiť na koniec tabuľky a zistiť si hodnotu?

OT
Príčinu tohto správania nepoznám, ale iní na stav boolean používajú SamllInteger. Ja tiež. A to preto, že True môže mať aj hodnotu -1.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1678
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:Datasnap Firedac FDStoredproc field boolean
« Odpověď #2 kdy: 04-05-2015, 15:04:10 »
Tu predpokladám preklep bit <> Byte.

Ne nutne. Treba MSSQL ma datovy typ bit. Ale OP neuvadi typ RDBMS, takze nema smysl se dotazem zabyvat.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1623
  • Karma: 67
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (teď XE8 a XE10)
    • O Delphi v češtině
Re:Datasnap Firedac FDStoredproc field boolean
« Odpověď #3 kdy: 04-05-2015, 15:29:43 »
Tu predpokladám preklep bit <> Byte.

Ne nutne. Treba MSSQL ma datovy typ bit. Ale OP neuvadi typ RDBMS, takze nema smysl se dotazem zabyvat.

No pise : FDConnection   'DriverID=MSSQL;
Embarcadero MVP - Czech republic

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1623
  • Karma: 67
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (teď XE8 a XE10)
    • O Delphi v češtině
Re:Datasnap Firedac FDStoredproc field boolean
« Odpověď #4 kdy: 04-05-2015, 15:35:30 »
To FDQuery1 na serveru to má předpokládám správně?
Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1678
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:Datasnap Firedac FDStoredproc field boolean
« Odpověď #5 kdy: 04-05-2015, 15:37:34 »
No pise : FDConnection   'DriverID=MSSQL;
Aha, to jsem si nevsim. Omlouvam se.

Offline salvamiroslav

  • Příspěvků: 2
  • Karma: 0
Re:Datasnap Firedac FDStoredproc field boolean
« Odpověď #6 kdy: 04-05-2015, 16:15:26 »
Na FDQeuery je to spravne.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: