Nedávno jsem psal, že určitou nevýhodou Datasetu je nemožnost pokládat mu SQL dotazy a že za 200 dolarů lze pořídit knihovnu QueryADataSet, která tuto funkčnost doplňuje. Dnes je čas podívat se na možnost, která nabízí ještě lepší možnosti SQL dotazování (téměř plnou podporu standardu SQL 92) a přitom nestojí ani dolar.
Jmenuje se SQLite. Tato populární
souborová databáze totiž ve svém connection stringu umožňuje stanovit, že
se data nemají ukládat na disk, ale do paměti. Potom máte k dispozici
podobnou datovou strukturu jako dataset, ale navíc si můžete užívat
plnohodnotné ACID transakce, pokročilé SQL dotazy apod. Pro zprovoznění pod
.NETem budete potřebovat pouze ADO.NET
2.0 datového poskytovatele a connection string ve tvaru "Data
Source=:memory:"
(teoreticky by mělo stačit jen
":memory:"
, ale to mi nějak nefungovalo). Taky je dobré mít na
paměti, že voláním connection.Close() je in-memory databáze nadobro
ztracena, takže po celou dobu je potřeba pracovat s connection ve stavu
open.
Poznámka závěrem: in-memory SQLite databáze není ani tak přímou konkurencí pro dataset, jako spíš užitečnou fintou pro některé specifické scénáře. Dataset je a zůstane zásadním objektem v architektuře ADO.NET, ale v určitých případech je prostě výhodné mít po ruce nástroj pro efektivní SQL dotazování nějaké in-memory datové struktury.
před 6 let 13 týdnů
před 6 let 13 týdnů
před 6 let 34 týdny
před 6 let 49 týdnů
před 7 let 9 týdnů
před 7 let 18 týdnů
před 7 let 19 týdnů
před 7 let 22 týdny
před 7 let 28 týdnů
před 7 let 37 týdnů