次の方法で共有


OLE DB プロバイダーへの文字列の格納

Note

ATL OLE DB プロバイダー ウィザードは、Visual Studio 2019 以降では使用できません。

CustomRS.h では、ATL OLE DB プロバイダー ウィザードにより、CWindowsFile という名前のデフォルト ユーザー レコードが作成されます。 2 つの文字列を処理するには、次のコードに示すように CWindowsFile を変更します。

////////////////////////////////////////////////////////////////////////
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);
   }
};

データ メンバーの szCommandszText は、2 つの文字列を表します。必要な場合は、szCommand2szText2 を使用して、追加の列を表します。 データ メンバー dwBookmark は、このシンプルな読み取り専用プロバイダーでは不要ですが、後で IRowsetLocate インターフェイスを追加するために使用されます。「Enhancing the Simple Read Only Provider (シンプルな読み取り専用プロバイダーの拡張)」をご覧ください。 == 演算子では、インスタンスが比較されます (この演算子の実装は省略可能です)。

これを行うと、文字列の読み取り機能を OLE DB プロバイダーに追加できます。

関連項目

単純な読み取り専用プロバイダーの実装