Autor Téma: Firebird 3 a FIBPLUS  (Přečteno 1557 krát)

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 357
  • Karma: 9
    • Verze Delphi: XE2
Firebird 3 a FIBPLUS
« kdy: 28-02-2019, 13:57:50 »
Zdravím 
Přistupuje někdo k databázi FB 3  pomocí    komponent FibPlus  (7.4)  ?
Případně má někdo nějaké informace o témže ?
Děkuji Jirka 

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 357
  • Karma: 9
    • Verze Delphi: XE2
Re:Firebird 3 a FIBPLUS
« Odpověď #1 kdy: 08-11-2020, 12:05:17 »
Zkoušel jsem jen chvilku ale  zdá  se, že to funguje. 
Pokud má někdo nějaké zkušenosti nebo poznámky, prosím aby se o ně podělil.
Díky

Offline Palino

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Verze Delphi: 7, XE, Seattle
Re:Firebird 3 a FIBPLUS
« Odpověď #2 kdy: 08-01-2021, 12:59:18 »
Pouzivam zatial bez vaznejsich problemov (aspon zatial cca 12mes). Zatial som narazil len na problem s datovym typom pola pri pouziti T_BOOLEAN_INT (podpira boolean pre FIB)


CREATE DOMAIN T_BOOLEAN_INT AS SMALLINT DEFAULT 0 CHECK (VALUE IN (0,1));

CREATE TABLE TEST ( "VALUE" T_BOOLEAN_INT NOT NULL)'

1)  Select   "VALUE"  from RDB$DATABASE  join TEST on 1=1

2) Select  (select "VALUE" from test)  from RDB$DATABASE


1) a 2) vrati 3.x iny datovy typ ako pre 2.5x

2.5x v oboch pripadoch vracia pole "VALUE" ako typ domain T_BOOLEAN_INT
3.x v jednom pripade (tusim za 2) ako iba typ smallint bez idetifikacie domain  T_BOOLEAN_INT


Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 357
  • Karma: 9
    • Verze Delphi: XE2
Re:Firebird 3 a FIBPLUS
« Odpověď #3 kdy: 08-01-2021, 15:52:07 »
2.5x v oboch pripadoch vracia pole "VALUE" ako typ domain T_BOOLEAN_INT
3.x v jednom pripade (tusim za 2) ako iba typ smallint bez idetifikacie domain  T_BOOLEAN_INT
A našel si nějaké obecné řešení (konverzi) aby to  fungovalo v obou verzích   
a vracelo to bud 0/1  nebo true/false  ? 

Offline Palino

  • Nováček
  • *
  • Příspěvků: 6
  • Karma: 0
    • Verze Delphi: 7, XE, Seattle
Re:Firebird 3 a FIBPLUS
« Odpověď #4 kdy: 12-01-2021, 11:41:05 »
Vysledok vzdy bude 0/1 kedze ide o smallint, ale FIBplus pre prislusne pole nevytvoria v TpFIBDataSet object  TFIBBooleanField ale TFIBSmallInt, ktory nie je potomkom TBooleanField a tak prvky ako napr. Grid nemusia zobrazovat hodnotu ako Check ale ciselnu 0/1.
Ja som modifikoval prislusne SQL na verziu ktora ide bez problemov v oboch verziach. Nie som si isty ci napomahalo aj pretipovanie
 alebo pripadne som pridal pretipovanie

 Select cast( (select "VALUE" from test) as T_BOOLEAN_INT)  from RDB$DATABASE