Udostępnij przez


Przechowywanie ciągów w dostawcy OLE DB

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.

Zobacz też

Implementowanie prostego dostawcy tylko do odczytu