Forum Delphi.cz

Databáze => Ostatní DB => Téma založeno: miroB 25-01-2019, 18:12:17

Název: FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: miroB 25-01-2019, 18:12:17
FireDAC (Tokyo - static linking) poskytuje binárne kódy pre 3 roky starú verziu SQLite. ( 3.9.2 z 02. 11. 2015). Nová verzia SQLite je 3.26.0 z decembra 2018.
Tu som si prečítal: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_SQLite_database_(FireDAC) (http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Connect_to_SQLite_database_(FireDAC)), že dynamic linking neumožňuje "SQLite database encryption".
Ak teda oželiem:
1. spomenuté šifrovanie
a fakt, že
2. treba sqlite3.dll nahrať do adresára exe, alebo inej cesty, ktorá je systému známa

o aké ďalšie prípadné výhody prichádzam?
Pýtam sa preto, že behom tých troch rokov, čo FireDAC nejak neinovuje binary súbory pre statické linkovanie o nové verzie, SQLite odstránila rôzne chyby a dostala priaznivé nové vlastnosti.
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: Delfin 26-01-2019, 05:16:10
o aké ďalšie prípadné výhody prichádzam?

Je toho prehrse (jak bylo kdysi zmineno v dile Simpsons pri navsteve Velké Britanie). Viz. Release History (https://www.sqlite.org/changes.html).

Pýtam sa preto, že behom tých troch rokov, čo FireDAC nejak neinovuje binary súbory pre statické linkovanie o nové verzie, SQLite odstránila rôzne chyby a dostala priaznivé nové vlastnosti.

Co se tyce konzumace prilozeneho "object souboru" *.obj", tim bych se bez realnych duvodu nezabyval. Pokud pouzijes staticke linkovani (*.obj vygenerovany napr. MSVC by mel byt konzumovatelny alespon od verze Delphi XE2), ziskas tim snad o instrukci vyssi rychlost. Osobne jsem ovsem zastancem projektu jenz nabizi modulovost, coz SQLite umoznuje cimz bych smeroval k pouziti dynamickeho vyuziti DLL.
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: miroB 27-01-2019, 14:00:07
Zrejme som postavil otázku nejednoznačne.
Práveže inklinujem k využitiu dll. Z dôvodov opráv v dll a aj pre nové "Features"
Mnohé z nich sú zaujímavé.
Naopak, binary od FireDAC sú až nezodpovedne staré. (Hovorím o tých z Delphi Tokyo)

Ak pri využití dll, stratím iba:
1. možnosť šifrovania a
2. o máličko stratím aj na rýchlosti.
To veľmi rád oželiem.

Dôležité sú UDF. Tie zjavne fungujú aj v prípade dll.
Ďakujem.
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: Delfin 28-01-2019, 16:23:25
O to sifrovani prijit nemusis. Jen je treba SQLite knihovnu buildovat s SQLite Encryption Extension (https://www.sqlite.org/see/doc/trunk/www/readme.wiki) (byt je durazne doporuceno pouzit pro sifrovani staticke linkovani). FireDAC se tak ci tak snazi nacist adresu funkce sqlite3_key a pokud ji najde, pak ji i pro sifrovani pouzije.

Rozdilem rychlosti volani funkci staticky ci dynamicky linkovane knihovny bych se bezduvodne nezabyval.
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: miroB 28-01-2019, 20:40:44
Zatial sifrovanie nepotrebujem.
Mozno neskor. Pripadne na urcite ulohy pouzijem staru verziu SQLite, s binary FireDAC (verziu 3.9.2 z roku 2015)
Pozeram odporuceny odkaz. Tam sa pise, ze SEE je licencovane. Teda treba platit jednorazovy poplatok. Tak az v pripade potreby, uvidime..
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: Delfin 28-01-2019, 21:16:02
Zatial sifrovanie nepotrebujem.
Mozno neskor. Pripadne na urcite ulohy pouzijem staru verziu SQLite, s binary FireDAC (verziu 3.9.2 z roku 2015)
Pozeram odporuceny odkaz. Tam sa pise, ze SEE je licencovane. Teda treba platit jednorazovy poplatok. Tak az v pripade potreby, uvidime..

Je to jedna z (pomerne drahych moznosti). FireDAC pouziva SQLCipher (https://github.com/sqlcipher/sqlcipher) (viz. modul FireDAC.Phys.SQLiteCli.pas).
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: Daniel_Andrascik 16-02-2019, 21:38:14
A nie je mozne si zohnat/skompilovat novsi OBJ subor od sqlite a nahradit ten povodny?

Priznam sa ze pri jednoduchsich projektikoch pouzivam radsej staticky linkovanu sqlite. Uz sa mi totiz raz stalo ze som potreboval pouzit nejaky svoj starsi nastroj a dajak som si nevsimol pri tom ako som s nim narabal ze nemal v adresari prilozenu sqlite.dll. A programik si nacital nejaku prehystoricku dllku asi z windows adresara a tak neskutocne a nezmyslene mi blbol, ze som do neho musel vliest a zacat ho debugovat. N

No proste kedze to bol starsi projekt a kym som sa v nom zorientoval a prisiel som na to ze taha neviem aku verziu sqlitu tak som stratil pol dna. Nakoniec stacilo nahrat najnovsiu dll do adresara a apka zacala spravne fungovat bez akychkolvek uprav. Proste pri jednoduchych a nie casto pouzivanych apkach uprednostnim staticke linkovanie vsetkeho mozneho, pretoze clovek nikdy nevie na co zabudne...
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: Delfin 17-02-2019, 07:55:34
A nie je mozne si zohnat/skompilovat novsi OBJ subor od sqlite a nahradit ten povodny?

Ten bych radeji neshanel (vis jak jsou ty internety nebezpecne) :) Jinak ano, pokud ten .obj soubor bude mit vsechny exporty jenz FireDAC importuje (viz. FireDAC.Phys.SQLiteCli) a zaroven obsahuje minimalne vsechna rozsireni jenz FireDAC (resp. aplikace jenz jej konuzmuje) pouziva, nemel by byt jediny problem. Ostatne, podobna pravidla je treba dodrzet i pri buildovani dynamicky linkovaneho SQLite.
Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: pf1957 17-02-2019, 08:43:23
A programik si nacital nejaku prehystoricku dllku asi z windows adresara a tak neskutocne a nezmyslene mi blbol,
Tak tomu se obvykle celi tak, ze aplikace po spusteni zkontroluje:
  1) pozadovanou verzi RDMBS
  2) pozadovanou verzi schematu DB

Verzi RDBMS lze nejak vyloudit skoro na kazdem RDBMS, s tou verzi schematu je to horsi - tam to chce vetsinou nejakou invenci a tool na strane vyvojare.
Ale zase vyvojar vetsinou nezacina kazdou aplikaci na zelene louce, takze si casem vytvori svuj framework, ktery odpovida dane problemove oblasti a pak se to udela jednou a jsou tim vybaveny vsechny aplikace.

Název: Re:FireDAC/SQLite, čo stratím ak použijem Dynamic linking
Přispěvatel: Delfin 17-02-2019, 10:19:05
A programik si nacital nejaku prehystoricku dllku asi z windows adresara a tak neskutocne a nezmyslene mi blbol,
Tak tomu se obvykle celi tak, ze aplikace po spusteni zkontroluje:
  1) pozadovanou verzi RDMBS
  2) pozadovanou verzi schematu DB

Mozna bych pro SQLite jeste rozsiril:

  1) Pozadovana verze (splnujici kompatibilitu dane databaze (https://sqlite.org/formatchng.html))
  2) Existence vsech pouzitych vestavenych modulu a externich rozsireni
  3) Verze schematu databaze (k niz bude s danou verzi mozne se pripojit[1] a s niz aplikace bude moci pracovat)


[1] Pokud bude databaze enkryptovana a nebude existovat dane rozsireni, pripojeni mozne nebude