|
Microsoft SQL Server 2000 Desktop Engine - Práce se soubory |
|
|
|
Co vlastně budeme řešit. Představme si, že děláme aplikaci, pro kterou chcete udělat nějaké ukládání souborů, se kterými se následně dá pracovat - například nějakou evidenci výkresů nebo fotek. Věta v tabulce bude obsahovat nějaké popisy a katalogové značení či podobně, ale se záznamem musí být samozřejmě svázán onen výkres nebo fotka. Řešení se nabízí mnoho a jistě něco okamžitě napadne i Vás, pojďme si tedy některé probrat. Jako první člověka napadne, že si bude do záznamu ukládat cestu k souboru, který má být se záznamem svázán. Je to pravděpodobněji nejrychlejší řešení, ovšem nemyslím si, že bude správné, protože uživatel si velice často tyhle soubory bude mazat nebo přesouvat jinam a pak bude nadávat, že o ně přišel. Tím se pravděpodobně dostaneme k řešení, kdy se tyto soubory budou kopírovat na nějaké předem definované a aplikačně nastavitelné úložiště. Je to už o něco lepší, ovšem i toto si může uživatel smazat, nehledě k tomu, že mohou nastat problémy se zálohou těchto souborů, neboť to časem může pěkně narůstat co do velikosti. Odtud se tedy dostáváme do stavu, kdy si ty soubory začnete ukládat na server a zálohovat se budou v rámci nějakého záložního programu běžícího na serveru. Ano, to už je skoro dokonalé ... skoro. Ono totiž takovéto systémové úložiště musí mít práva na everyone pro zápis a čtení a tudíž to opět může nějaký moula smazat a na to, že skrytí sdíleného disku za $ bude dostatečné bych se nespoléhal. V podstatě jsem se dostal do stejné situace při tvorbě aplikace pro Senát PČR. Nakonec se mi povedlo najít podle mého elegantní řešení. Ukládat soubory přímo do věty tabulky v databázi MS SQL Serveru. Mohou k nim jenom uživatelé z Vaší aplikace (ne tak docela, systémák Vám je taky smaže, ale to už se pak dá zjistit, protože tolik lidí asi mít přístup k SQL serveru nebude), a zálohují se společně s daty SQL Serveru, takže případné poškození DB a její následná obnova dá plnou synchronizaci dat a souborů. |
|
|
| Autor: The Bozena |