|
Microsoft SQL Server 2000 Desktop Engine - Práce se soubory |
|
|
|
Objekt Stream byl prvně představen v ActiveX Data Objects (ADO) verze 2.5. Předchozí verze vyžadovaly poměrně složitou práci s metodami GetChunk a AppendChunk objektu Field, které umožňovaly zápis BLOB dat s fixní délkou z a do BLOB sloupce. Ovšem objekt Stream výrazně zjednodušuje práci s BLOBy a lze jej tedy využít pro vkládání, čtení a modifikaci dat v BLOB polích. Takže máme nějakou svoji tabulku, která má třeba pole ID (binary, Identity), Nazev (varchar 50) a Obrazek (image). Jak nyní vložíme nový záznam do tabulky ? Mějme recordset, nazvaný například sPic, který je definován jako "Select * From tblPictures". Přidání záznamu přes formulář s polem pro zadání názvu obrázku (txtNazev) a s polem pro výběr souboru včetně cesty (txtSoubor) bude vypadat následovně: If DataEnvironment.rssPic.State=0 Then 'Zápis dat Schválně jsem neuvedl uložení souboru do pole Obrazek. To se musí totiž udělat právě pomocí objektu Stream. Nejprve si musíme proměnou typu Stream nadeklarovat, pak ji zinicializovat a pak použít. A samozřejmě musí být v projektu reference na Microsoft ActiveX Data Objects 2.5. Takže kód budeme modifikovat následovně: 'Deklarace objektu 'Inicializace Streamu If DataEnvironment.rssPic.State=0 Then 'Zápis dat Nyní je celý soubor uložen se záznamem a dále si tudíž o jeho osud nemusíme dělat starosti. Samozřejmě že si jej také musíme umět přečíst a zobrazit, což bude vypadat následovně:
'Deklarace objektu If DataEnvironment.rssPic.State=0 Then 'Inicializace Streamu A to je v podstatě vše. Objekt Stream je při načítání a zápisu soborů celkem rychlý, takže žádné velké zdržování běhu aplikace nebude (teda, na 2GB souborech sem to netestoval). Samozřejmě že kód zde uvedený není ošetřen na "blbuvzdornost", je to jenom nástřel abyste viděli, jak se BLOBy pracuje. Doufám že Vám to pomůže a budete tak dělat lepší a profesionálnější aplikace :) |
|
|
| Autor: The Bozena |