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.
W niestandardowymrs.h Kreator dostawcy OLE DB ATL tworzy domyślny rekord użytkownika o nazwie CWindowsFile. Aby obsłużyć dwa ciągi, zmodyfikuj CWindowsFile , jak pokazano w poniższym kodzie:
////////////////////////////////////////////////////////////////////////
class CCustomWindowsFile:
public WIN32_FIND_DATA
{
public:
DWORD dwBookmark;
static const int iSize = 256; // Add this
TCHAR szCommand[iSize]; // Add this
TCHAR szText[iSize]; // Add this
TCHAR szCommand2[iSize]; // Add this
TCHAR szText2[iSize]; // Add this
BEGIN_PROVIDER_COLUMN_MAP(CCustomWindowsFile)
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)
PROVIDER_COLUMN_ENTRY_STR("Command", 6, szCommand) // Add this
PROVIDER_COLUMN_ENTRY_STR("Text", 7, szText) // Add this
PROVIDER_COLUMN_ENTRY_STR("Command2", 8, szCommand2) // Add this
PROVIDER_COLUMN_ENTRY_STR("Text2", 9, szText2) // Add this
END_PROVIDER_COLUMN_MAP()
bool operator==(const CCustomWindowsFile& am) // This is optional
{
return (lstrcmpi(cFileName, am.cFileName) == 0);
}
};
Składowe szCommand danych i szText reprezentują dwa ciągi z kolumnami szCommand2 i szText2 w razie potrzeby z dodatkowymi kolumnami. Element członkowski dwBookmark danych nie jest potrzebny dla tego prostego dostawcy tylko do odczytu, ale jest używany później do dodawania interfejsu IRowsetLocate . Zobacz Ulepszanie prostego dostawcy tylko do odczytu. Operator porównuje wystąpienia (implementacja == tego operatora jest opcjonalna).
Po wykonaniu tej czynności można dodać funkcjonalność ciągów odczytu do dostawcy OLE DB.