Armazenando cadeias de caracteres no provedor de banco de dados OLE
Observação
O assistente de Provedor OLE DB da ATL não está disponível no Visual Studio 2019 e posteriores.
Em CustomRS.h, o Assistente de Provedor OLE DB da ATL cria um registro de usuário padrão chamado CWindowsFile
. Para lidar com duas cadeias de caracteres, modifique CWindowsFile
conforme mostrado no seguinte código:
////////////////////////////////////////////////////////////////////////
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);
}
};
Os membros de dados szCommand
e szText
representam as duas cadeias de caracteres, com szCommand2
e szText2
com colunas adicionais, se necessário. O membro de dados dwBookmark
não é necessário para esse provedor simples somente leitura, mas é usado posteriormente para adicionar uma interface IRowsetLocate
. Confira Aprimoramento do provedor simples somente leitura. O operador ==
compara instâncias (a implementação desse operador é opcional).
Quando isso for feito, você poderá adicionar a funcionalidade de ler cadeias de caracteres no provedor OLE DB.