Armazenar seqüências de caracteres no provedor OLE DB
MyProviderRS.h, o ATL OLE DB Provider assistente 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, como 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, 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 leitura apenas provedor simples.O == operador compara instâncias (implementar esse operador é opcional).
Quando isso for feito, o provedor deve estar pronto para compilar e executar.Para testar o provedor, você precisa de um consumidor com funcionalidade de correspondentes.Implementar um consumidor simples mostra como criar um consumidor de teste.Execute o consumidor de teste com o provedor.Verificar que consumidor teste recupera as seqüências de caracteres apropriadas do provedor quando você clicar na Executar botão na Consumidor teste caixa de diálogo.
Quando o provedor foi testada com sucesso, talvez queira aumentar sua funcionalidade ao implementar interfaces adicionais.Um exemplo é mostrado na aprimorando o provedor de somente leitura simples.