Classe CXMLAccessor
Permite que você acesse fontes de dados como dados de cadeia de caracteres quando não tiver conhecimento do esquema do armazenamento de dados (estrutura subjacente).
Sintaxe
class CXMLAccessor : public CDynamicStringAccessorW
Requisitos
Cabeçalho: atldbcli.h
Membros
Métodos
Nome | Descrição |
---|---|
GetXMLColumnData | Recupera as informações da coluna. |
GetXMLRowData | Recupera todo o conteúdo de uma tabela por linhas. |
Comentários
No entanto, CXMLAccessor
é diferente de CDynamicStringAccessorW
no sentido de que converte todos os dados acessados a partir do armazenamento de dados como dados formatados em XML (marcados). Isso é especialmente útil para a saída para páginas da Web com reconhecimento XML. Os nomes das marcas XML correspondem o máximo possível aos nomes de coluna do armazenamento de dados.
Use métodos CDynamicAccessor
para obter informações de coluna. Use essas informações de coluna para criar um acessador dinamicamente em tempo de execução.
As informações da coluna são armazenadas em um buffer criado e gerenciado por essa classe. Obtenha informações de coluna usando GetXMLColumnData, ou obtenha dados de coluna por linhas usando GetXMLRowData.
Exemplo
void DoCXMLAccessorTest()
{
HRESULT hr = CoInitialize(NULL);
CDataSource ds;
CSession ss;
CTable<CXMLAccessor> rs;
// The following is an example initialization string:
hr = ds.OpenFromInitializationString(L"Provider=Microsoft.Jet.OLEDB.4.0;"
L"User ID=Admin;Data Source=Snippet.mdb;Mode=Share Deny None;"
L"Extended Properties=\"\";Jet OLEDB:System database=\"\";"
L"Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";"
L"Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;"
L"Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;"
L"Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;"
L"Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;"
L"Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False");
hr = ss.Open(ds);
hr = rs.Open(ss, L"Customer"); // Customer is a table name in the database.
CStringW strColumnInfo;
rs.GetXMLColumnData(strColumnInfo);
wprintf_s(L"%s\n", strColumnInfo);
hr = rs.MoveFirst();
while(SUCCEEDED(hr) && hr != DB_S_ENDOFROWSET)
{
CStringW strRowData;
rs.GetXMLRowData(strRowData);
wprintf_s(L"%s\n", strRowData);
hr = rs.MoveNext();
}
ss.Close();
ds.Close();
CoUninitialize();
}
CXMLAccessor::GetXMLColumnData
Recupera as informações de tipo de coluna de uma tabela como dados de cadeia de caracteres formatados em XML, por coluna.
Sintaxe
HRESULT GetXMLColumnData(CSimpleStringW& strOutput) throw();
Parâmetros
strOutput
[out] Uma referência a um buffer de cadeia de caracteres que contém as informações de tipo de coluna a serem recuperadas. A cadeia de caracteres é formatada com nomes de marca XML que correspondem aos nomes de coluna do repositório de dados.
Valor de retorno
Um dos valores HRESULT padrão.
Comentários
O exemplo a seguir mostra como as informações de tipo de coluna são formatadas em XML. type
especifica o tipo de dados da coluna. Observe que os tipos de dados são baseados em tipos de dados OLE DB, e não naqueles do banco de dados que está sendo acessado.
<columninfo>
<column type = I2/> ColumnName
</columninfo>
CXMLAccessor::GetXMLRowData
Recupera todo o conteúdo de uma tabela como dados de cadeia de caracteres formatados em XML, por linha.
Sintaxe
HRESULT GetXMLRowData(CSimpleStringW& strOutput,
bool bAppend = false) throw();
Parâmetros
strOutput
[out] Uma referência a um buffer que contém os dados da tabela a serem recuperados. Os dados são formatados como cadeia de caracteres com nomes de marca XML que correspondem aos nomes de coluna do armazenamento de dados.
bAppend
[in] Um valor booliano que especifica se se deve acrescentar uma cadeia de caracteres ao final dos dados de saída.
Valor de retorno
Um dos valores HRESULT padrão.
Comentários
O exemplo a seguir mostra como os dados da linha são formatados em XML. DATA
abaixo representa os dados da linha. Use métodos de movimentação para mover para a linha desejada.
<row>
<column name>DATA</column name>
</row>
Confira também
Modelos de consumidor OLE DB
Referência de modelos de consumidor do OLE DB
Classe CAccessor
Classe CDynamicAccessor
Classe CDynamicParameterAccessor
Classe CDynamicStringAccessor
Classe CDynamicStringAccessorA
Classe CDynamicStringAccessorW
Classe CManualAccessor