Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Průvodce zprostředkovatelem ATL OLE DB není v sadě Visual Studio 2019 a novější k dispozici.
Záznam uživatele poskytuje kód a datovou strukturu, která představuje data sloupce pro sadu řádků. Záznam uživatele lze vytvořit v době kompilace nebo v době běhu. Když vytvoříte zprostředkovatele pomocí Průvodce zprostředkovatelem ATL OLE DB, průvodce vytvoří výchozí záznam uživatele, který vypadá takto (za předpokladu, že jste zadali název zprostředkovatele [krátký název] MyProvider):
class CWindowsFile:
public WIN32_FIND_DATA
{
public:
BEGIN_PROVIDER_COLUMN_MAP(CMyProviderWindowsFile)
PROVIDER_COLUMN_ENTRY("FileAttributes", 1, dwFileAttributes)
PROVIDER_COLUMN_ENTRY("FileSizeHigh", 2, nFileSizeHigh)
PROVIDER_COLUMN_ENTRY("FileSizeLow", 3, nFileSizeLow)
PROVIDER_COLUMN_ENTRY_STR("FileName", 4, cFileName)
PROVIDER_COLUMN_ENTRY_STR("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()
};
Šablony zprostředkovatele OLE DB zpracovávají všechna specifika OLE DB při interakci s klientem. Pokud chcete získat data sloupce potřebná pro odpověď, poskytovatel zavolá GetColumnInfo funkci, kterou musíte umístit do záznamu uživatele. Záznam uživatele můžete explicitně přepsat GetColumnInfo tak, že ho například deklarujete v souboru .h, jak je znázorněno tady:
template <class T>
static ATLCOLUMNINFO* GetColumnInfo(T* pThis, ULONG* pcCols)
To odpovídá:
static ATLCOLUMNINFO* GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
static ATLCOLUMNINFO* GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)
Pak implementujte GetColumnInfo do souboru .cpp záznamu uživatele.
Makra PROVIDER_COLUMN_MAP pomáhají při vytváření GetColumnInfo funkce:
BEGIN_PROVIDER_COLUMN_MAP definuje prototyp funkce a statické pole
ATLCOLUMNINFOstruktur.PROVIDER_COLUMN_ENTRY definuje a inicializuje jeden
ATLCOLUMNINFO.END_PROVIDER_COLUMN_MAP zavře pole a funkci. Umístí také počet prvků pole do parametru pcCols .
Při vytvoření záznamu uživatele za běhu GetColumnInfo pomocí parametru pThis obdrží ukazatel na sadu řádků nebo instanci příkazu. Příkazy a sady řádků musí podporovat IColumnsInfo rozhraní, takže informace o sloupci mohou být převzaty z tohoto ukazatele.
CommandClass a RowsetClass jedná se o příkaz a sadu řádků, které používají záznam uživatele.
Podrobnější příklad přepsání GetColumnInfo v záznamu uživatele najdete v tématu Dynamické určování sloupců vrácených příjemci.