Sada záznamů: Práce s velkými datovými položkami (ODBC)
Toto téma se týká tříd ROZHRANÍ ODBC MFC i tříd rozhraní MFC DAO.
Poznámka:
Pokud používáte třídy MFC DAO, spravujte velké datové položky pomocí třídy CByteArray místo třídy CLongBinary. Pokud používáte třídy MFC ODBC s hromadným načítáním řádků, použijte CLongBinary
místo CByteArray
. Další informace o hromadném načítání řádků naleznete v tématu Sada záznamů: Načítání záznamů hromadně (ODBC).
Předpokládejme, že vaše databáze může ukládat velké části dat, jako jsou rastrové obrázky (fotky zaměstnanců, mapy, obrázky produktů, objekty OLE atd.). Tento druh dat se často označuje jako binární velký objekt (nebo objekt BLOB), protože:
Každá hodnota pole je velká.
Na rozdíl od čísel a jiných jednoduchých datových typů nemá předvídatelnou velikost.
Data jsou z pohledu vašeho programu neformní.
Toto téma vysvětluje, jakou podporu databázové třídy poskytují pro práci s těmito objekty.
Správa velkých objektů
Sady záznamů mají dva způsoby řešení zvláštních potíží při správě binárních velkých objektů. Můžete použít třídu CByteArray nebo můžete použít třídu CLongBinary. Obecně CByteArray
je upřednostňovaným způsobem správy velkých binárních dat.
CByteArray
vyžaduje větší režii, než CLongBinary
je ale schopnější, jak je popsáno v CByteArray – třída. CLongBinary
je stručně popsáno v CLongBinary Třída.
Podrobné informace o použití CByteArray
při práci s velkými datovými položkami najdete v technické poznámce 45.
CByteArray – třída
CByteArray
je jednou z tříd kolekce MFC. Objekt CByteArray
ukládá dynamickou matici bajtů – pole se může v případě potřeby zvětšit. Třída poskytuje rychlý přístup pomocí indexu, stejně jako u integrovaných polí jazyka C++. CByteArray
objekty lze serializovat a výpisem paměti pro diagnostické účely. Třída poskytuje členské funkce pro získání a nastavení zadaných bajtů, vkládání a připojování bajtů a odebírání jednoho bajtu nebo všech bajtů. Tato zařízení usnadňují analýzu binárních dat. Pokud je například binárním objektem objekt OLE, možná budete muset projít některé bajty hlaviček, abyste dosáhli skutečného objektu.
Použití CByteArray v sadách záznamů
Zadáním datového člena pole sady záznamů zadáte CByteArray
pevný základ, ze kterého může RFX spravovat přenos takového objektu mezi sadou záznamů a zdrojem dat a prostřednictvím kterého můžete manipulovat s daty uvnitř objektu. RFX potřebuje pro načtená data konkrétní lokalitu a potřebujete způsob, jak získat přístup k podkladovým datům.
Podrobné informace o použití CByteArray
při práci s velkými datovými položkami najdete v technické poznámce 45.
CLongBinary – třída
Objekt CLongBinary je jednoduché prostředí kolem HGLOBAL
popisovače bloku úložiště přiděleného haldě. Když vytvoří vazbu sloupce tabulky obsahující binární velký objekt, rfX přidělí HGLOBAL
popisovač, když potřebuje přenést data do sady záznamů a uloží popisovač v CLongBinary
poli sady záznamů.
Dále použijete HGLOBAL
popisovač , m_hData
pracovat se samotnými daty, pracovat s nimi stejně jako na všech zpracovávat data. Tady CByteArray přidává funkce.
Upozornění
CLongBinary objekty nelze použít jako parametry ve volání funkce. Kromě toho jejich implementace, která volá ::SQLGetData
, nutně zpomaluje posouvání výkon pro posouvání snímku. To může být také pravdivé, když použijete ::SQLGetData
volání k načtení sloupců dynamického schématu.
Viz také
Sada záznamů (ODBC)
Sada záznamů: Získávání součtů a jiných souhrnných výsledků (ODBC)
Výměna polí záznamu (Record Field Exchange – RFX)