Armazenar seqüências de caracteres do OLE DB Provider
No MyProviderRS.h, o ATL OLE DB Provider Wizard cria um registro de usuário padrão chamado CWindowsFile. Para lidar com as duas seqüências, modifique CWindowsFile ou adicionar seu próprio registro de usuário, conforme mostrado no código a seguir:
////////////////////////////////////////////////////////////////////////
class CAgentMan:
public WIN32_FIND_DATA
DWORD dwBookmark; // Add this
TCHAR szCommand[256]; // Add this
TCHAR szText[256]; // Add this
TCHAR szCommand2[256]; // Add this
TCHAR szText2[256]; // Add this
{
public:
BEGIN_PROVIDER_COLUMN_MAP()
PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command"), 1, 256, GUID_NULL, CAgentMan, szCommand)
PROVIDER_COLUMN_ENTRY_STR(OLESTR("Text"), 2, 256, GUID_NULL, CAgentMan, szText)
PROVIDER_COLUMN_ENTRY_STR(OLESTR("Command2"), 3, 256, GUID_NULL, CAgentMan, szCommand2)
PROVIDER_COLUMN_ENTRY_STR(OLESTR("Text2"),4, 256, GUID_NULL, CAgentMan, szText2)
END_PROVIDER_COLUMN_MAP()
bool operator==(const CAgentMan& am) // This is optional
{
return (lstrcmpi(cFileName, wf.cFileName) == 0);
}
};
Os membros de dados szCommand e szText representam as duas seqüências de caracteres com szCommand2 e szText2 fornecendo colunas adicionais, se necessário. O membro de dados dwBookmark não é necessário para este provedor de somente leitura simple, mas é usado posteriormente para adicionar um IRowsetLocate interface; consulte melhorando a simples leitura apenas provedor. O == operador compara instâncias (implementar esse operador é opcional).
Quando isso for feito, o provedor deve ser pronto para compilar e executar. Para testar o provedor, você precisa de um consumidor com funcionalidade de correspondência. A implementação de um consumidor simples mostra como criar um consumidor de teste. Execute o consumidor de teste com o provedor. Verificar que o consumidor de teste recupera as seqüências de caracteres corretas do provedor quando você clicar na Executar botão no Consumidor testar caixa de diálogo.
Quando o provedor foi testada com sucesso, talvez queira aprimoram sua funcionalidade ao implementar interfaces adicionais. Um exemplo é mostrado na aprimorando o provedor de somente leitura simples.