Určit, jaký použít typ přistupujícího objektu
Datové typy na sadu řádků můžete určit při kompilaci nebo za běhu.
Pokud potřebujete určit datové typy při kompilaci, použijte statický přistupující objekt (například CAccessor). Datové typy můžete určit ručně nebo pomocí průvodce příjemce knihovny ATL technologie OLE DB.
Pokud potřebujete určit datové typy za běhu, použijte dynamický (CDynamicAccessor nebo jeho podřízené členy) nebo ruční přistupující objekt (CManualAccessor). V těchto případech můžete volat GetColumnInfo na sadu řádků, aby vrátila informace o vazbách sloupců, ze kterých můžete určit typy.
V následující tabulce jsou uvedeny typy přistupujících objektů, které jsou poskytované v šablonách příjemce. Každý přistupující objekt má své výhody i nevýhody. V závislosti na situaci by měl jeden typ přistupujícího objektu vyhovovat vašim potřebám.
Třída přistupujícího objektu |
Vazba |
Parametr |
Comment (Komentář) |
---|---|---|---|
CAccessor |
Vytvoří uživatelský záznam s makry COLUMN_ENTRY. Makra vytváří vazbu datového člene v záznamu na přistupující objekt. Poté, co je vytvořena sada řádků, sloupce nemohou být nevázané. |
Ano, pomocí položky makra PARAM_MAP. Pokud je jednou vázána, parametry nemohou být nevázané. |
Nejrychlejší přistupující objekt z důvodu malého množství kódu. |
CDynamicAccessor |
Automaticky. |
Ne. |
Je užitečný, pokud neznáte typ dat v sadě řádků. |
CDynamicParameterAccessor |
Automaticky, ale může být přepsána. |
Ano, pokud zprostředkovatel podporuje ICommandWithParameters. Parametry jsou vázány automaticky. |
Pomalejší než CDynamicAccessor, ale užitečný pro volání obecných uložených procedur. |
CDynamicStringAccessor[A,W] |
Automaticky. |
Ne. |
Načte data z úložiště dat jako řetězecová data. |
CManualAccessor |
Ručně pomocí AddBindEntry. |
Ručně pomocí AddParameterEntry. |
Velmi rychlý; parametry a sloupce vázány pouze jednou. Můžete určit typ dat, který chcete použít. (Viz ukázka příkladu DBVIEWER.) Vyžaduje více kódu než CDynamicAccessor nebo CAccessor. Je to spíše jako přímé volání technologie OLE DB. |
CXMLAccessor |
Automaticky. |
Ne. |
Načte data z úložiště dat jako řetězecová data a zformátuje je jako data obsahující značky jazyka XML. |