Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Kreator dostawcy OLE DB ATL nie jest dostępny w programie Visual Studio 2019 i nowszych wersjach.
Rekord użytkownika zawiera kod i strukturę danych reprezentującą dane kolumn dla zestawu wierszy. Rekord użytkownika można utworzyć w czasie kompilacji lub w czasie wykonywania. Podczas tworzenia dostawcy przy użyciu Kreatora dostawcy OLE DB ATL kreator tworzy domyślny rekord użytkownika, który wygląda następująco (przy założeniu, że określono nazwę dostawcy [krótka nazwa] 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()
};
Szablony dostawców OLE DB obsługują wszystkie szczegóły OLE DB dotyczące interakcji z klientem. Aby uzyskać dane kolumny potrzebne do odpowiedzi, dostawca wywołuje GetColumnInfo funkcję, którą należy umieścić w rekordzie użytkownika. Możesz jawnie zastąpić GetColumnInfo rekord użytkownika, na przykład deklarując go w pliku .h, jak pokazano poniżej:
template <class T>
static ATLCOLUMNINFO* GetColumnInfo(T* pThis, ULONG* pcCols)
To równa się:
static ATLCOLUMNINFO* GetColumnInfo(CommandClass* pThis, ULONG* pcCols)
static ATLCOLUMNINFO* GetColumnInfo(RowsetClass* pThis, ULONG* pcCols)
Następnie zaimplementuj GetColumnInfo plik .cpp rekordu użytkownika.
Makra PROVIDER_COLUMN_MAP ułatwiają tworzenie GetColumnInfo funkcji:
BEGIN_PROVIDER_COLUMN_MAP definiuje prototyp funkcji i statyczną tablicę
ATLCOLUMNINFOstruktur.PROVIDER_COLUMN_ENTRY definiuje i inicjuje pojedynczy
ATLCOLUMNINFOelement .END_PROVIDER_COLUMN_MAP zamyka tablicę i funkcję. Umieszcza również liczbę elementów tablicy w parametrze pcCols .
Gdy rekord użytkownika jest tworzony w czasie wykonywania, GetColumnInfo używa parametru pThis do odbierania wskaźnika do zestawu wierszy lub wystąpienia polecenia. Polecenia i zestawy wierszy muszą obsługiwać IColumnsInfo interfejs, więc informacje o kolumnie można pobrać z tego wskaźnika.
CommandClass i RowsetClass to polecenie i zestaw wierszy używający rekordu użytkownika.
Aby uzyskać bardziej szczegółowy przykład zastępowania GetColumnInfo rekordu użytkownika, zobacz Dynamiczne określanie kolumn zwróconych użytkownikowi.