👋 Nový obsah na borekb.cz

Info Tento blog je v "read-only módu" a nový obsah již nebude přibývat. O vývoji píšu na DevBlog.

SQLite místo DataSetu

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.

Zařazeno do kategorií |

Komentáře jsou uzavřeny (blog je v read-only módu). Pokud mě chcete kontaktovat, můžete mailem.