Almacenar cadenas en el proveedor OLE DB
Nota:
El Asistente para proveedores OLE DB ATL no está disponible en Visual Studio 2019 ni en versiones posteriores.
En CustomRS.h, el Asistente para proveedores OLE DB ATL crea un registro de usuario predeterminado denominado CWindowsFile
. Para controlar las dos cadenas, modifique CWindowsFile
tal como se muestra en el código siguiente:
////////////////////////////////////////////////////////////////////////
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);
}
};
Los miembros de datos szCommand
y szText
representan las dos cadenas, con szCommand2
y szText2
con columnas adicionales si es necesario. El miembro de datos dwBookmark
no es necesario para este proveedor sencillo de solo lectura, pero se utiliza posteriormente para agregar una interfaz IRowsetLocate
. Consulte el artículo sobre cómo mejorar el proveedor sencillo de solo lectura. El operador ==
compara instancias (la implementación de este operador es opcional).
Cuando esto sucede, puede agregar la funcionalidad de leer cadenas en el proveedor OLE DB.