Compartilhar via


Acessando dados em documentos no servidor

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de documento

Versão do Microsoft Office

  • Microsoft Office Sistema de 2007

  • Microsoft Office 2003

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Ferramentas do Visual Studio para o Office lhe permite programar os dados em uma personalização de nível de documento sem ter que usar o modelo de objeto do Microsoft Office Word ou Microsoft Office Excel.Isso significa que você pode acessar dados contidos em um documento em um servidor que não tenha o Word ou Excel instalado.Por exemplo, código em um servidor (por exemplo, em uma página de ASP.NET) pode personalizar os dados em um documento e enviar o documento personalizado a um usuário final.Quando o usuário final abre o documento, o código de ligação de dados na solução Assembly vincula os dados personalizados no documento.Isso é possível porque os dados no documento são separados de a interface do usuário.For more information, see Modelo de dados no nível de documento personalizações.

Cache de dados para uso em um servidor

Para armazenar em cache um objeto de dados em um documento, marcá-la com o atributo CachedAttribute em tempo de design, ou use o método StartCaching de um item de host em tempo de execução.Ao armazenar em cache um objeto de dados em um documento, o Tempo de execução Ferramentas do Visual Studio para o Office serializa o objeto em uma Cadeia de Caracteres XML que é armazenada no documento.Objetos devem atender a certos requisitos para ser qualificado para armazenamento em cache.For more information, see Cache de dados.

Código do lado do servidor pode manipular os objetos de dados no cache de dados.Controles Ligados a dados armazenados em cache instâncias são sincronizados com a interface do usuário, para que quaisquer alterações do lado do servidor que são feitas aos dados aparecem automaticamente quando o documento for aberto no cliente.

Acessando dados no cache

Você pode acessar dados no cache de aplicativos fora do Office, por exemplo de um Aplicativo do Console, um Aplicativo Windows Forms ou uma página da Web.O aplicativo que acessa os dados armazenados em cache deve ter Completo Confiar; um aplicativo da Web que tenha parcial Confiar não é possível inserir, recuperar ou alterar dados que é armazenada em cache em um documento do Office.

O cache de dados está acessível através de uma hierarquia de coleções que estão expostos pela propriedade da classe CachedDataServerDocument:

O exemplo de código a seguir demonstra como acessar uma Cadeia de Caracteres em cache na classe Sheet1 de um projeto de pasta de trabalho do Excel.Este exemplo é parte de um exemplo de maior que é fornecido para o método ServerDocument.Save.

serverDocument1 = New ServerDocument(documentPath)
Dim hostItem1 As CachedDataHostItem = _
    serverDocument1.CachedData.HostItems("ExcelWorkbook1.Sheet1")
Dim dataItem1 As CachedDataItem = hostItem1.CachedData("CachedString")
serverDocument1 = new ServerDocument(documentPath);
CachedDataHostItem hostItem1 = 
    serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];

Para obter um exemplo de código que demonstra como acessar os dados em um cache DataSet, consulte Como: Recuperar dados de uma pasta de trabalho em um servidor armazenados em cache.

Observação:

O ServerDocument classe e as classes de dados armazenados em cache no namespace Microsoft.VisualStudio.Tools.Applications podem ser usadas apenas com as soluções para o Microsoft Office Sistema de 2007.Se você estiver trabalhando com soluções para o Microsoft Office 2003, use a classe de ServerDocument e classes de dados armazenados em cache o namespace Microsoft.VisualStudio.Tools.Applications.Runtime.For more information, see Gerenciando documentos em um servidor usando a classe do ServerDocument.

Modificando dados no cache

Para modificar um objeto de dados em cache, você normalmente execute as seguintes etapas:

  1. Desserializar a representação XML do objeto em cache em uma Novo instância do objeto.Você pode acessar o XML, utilizando a propriedade Xml a CachedDataItem que representa o objeto de dados armazenados em cache.

  2. Faça as alterações para esta Copiar.

  3. Serializar o objeto alterado Voltar no cache de dados usando uma das seguintes opções:

    • Se desejar serializar automaticamente as alterações, use o método SerializeDataInstance.Este método usa o Formatarar de DiffGram para serialização DataSet, DataTable e digitou objetos dataset no cache de dados.O Formatarar DiffGram assegura que o cache de dados em um documento off-line as alterações sejam enviadas para o servidor corretamente.For more information, see DiffGrams.

    • Se você quiser executar seu próprios serialização para alterações nos dados armazenados em cache, você poderá Gravar diretamente para a propriedade de Xml.Especificar o Formatarar DiffGram se você usar um DataAdapter para atualizar um banco de dados com as alterações feitas nos dados em um DataSet, DataTable, ou digitou dataset.Caso contrário, a DataAdapter atualizará o banco de dados, adicionandNovo linhas em vez de modificar linhas existentes.

Para obter um exemplo de código que demonstra como serializar as alterações em um objeto de dados armazenados em cache, escrevendo diretamente para a propriedade de Xml , consulte Como: Alterar de dados em uma pasta de trabalho em um servidor em cache.

Modificando dados sem desserializando o valor atual

Em alguns casos, convém modificar o valor do objeto em cache sem primeiro desserializar o valor atual.Por exemplo, isso pode ser feito se você estiver alterando o valor de um objeto que tem um tipo simples, como uma Cadeia de Caracteres ou número inteiro, ou se você estiver inicializando um cache DataSet em um documento em um servidor.Nesses casos, você pode usar o método SerializeDataInstance sem primeiro desserializar o valor atual do objeto em cache.

O exemplo de código a seguir demonstra como alterar o valor de uma Cadeia de Caracteres em cache na classe Sheet1 de um projeto de pasta de trabalho do Excel.Este exemplo é parte de um exemplo de maior que é fornecido para o método ServerDocument.Save.

serverDocument1 = New ServerDocument(documentPath)
Dim hostItem1 As CachedDataHostItem = _
    serverDocument1.CachedData.HostItems("ExcelWorkbook1.Sheet1")
Dim dataItem1 As CachedDataItem = hostItem1.CachedData("CachedString")

If dataItem1 IsNot Nothing AndAlso _
    Type.GetType(dataItem1.DataType).Equals(GetType(String)) Then

    dataItem1.SerializeDataInstance("This is the new cached string value.")
    serverDocument1.Save()
End If
serverDocument1 = new ServerDocument(documentPath);
CachedDataHostItem hostItem1 = 
    serverDocument1.CachedData.HostItems["ExcelWorkbook1.Sheet1"];
CachedDataItem dataItem1 = hostItem1.CachedData["CachedString"];

if (dataItem1 != null &&
    Type.GetType(dataItem1.DataType) == typeof(string))
{
    dataItem1.SerializeDataInstance("This is the new cached string value.");
    serverDocument1.Save();
}

Para obter um exemplo de código que demonstra como inicializar um cache DataSet em um servidor, consulte Como: Inserir dados em uma pasta de trabalho em um servidor.

Modificando valores nulos no cache de dados

O cache de dados não armazena objetos que possuem o valor null quando o documento é salvo e Fechada.Essa limitação tem várias conseqüências quando você modifica dados em cache:

  • Se você definir qualquer objeto no cache de dados para o valor null, todos os objetos no cache de dados é automaticamente definidos para null quando o documento é aberto, e o cache de dados inteira será limpo quando o documento é salvo e Fechada.Ou seja, Tudo objetos em cache serão removidos do cache de dados, e a coleção CachedData será Vazio.

  • Se você ComCompilação uma solução com objetos de null no cache de dados e você deseja inicializar esses objetos usando a classe ServerDocument antes do documento for aberto pela Primeiro vez, você deve garantir que você inicializar Tudo objetos no cache de dados.Se você inicializar apenas alguns dos objetos, Tudo objetos são definidos para null quando o documento é aberto, e o cache de dados inteira será limpo quando o documento é salvo e Fechada.

Acessar datasets tipados no cache

Se você quiser acessar dados em um datAmboset tipado tanto de uma solução Ferramentas do Visual Studio para o Office e de um aplicativo fora do Office, como um Aplicativo Windows Forms ou um projeto ASP.NET, tenha Ambos seguintes considerações em mente:

  • Você deve definir o datAmboset tipado em uma separada Ambossembly que é referenciada em dois projetos.Se você adicionar o dataset tipado para cada projeto, usando o de Origem de Dados Configuration Assistente ou do DataSet Designer, o .NET Framework tratará os datasets tipados nos dois projetos como tipos diferentes.Para obter mais informações sobre como criar datasets tipados, consulte Como: Criar um dataset tipado.

  • Você deve conceder apropriado Confiar na diretiva de segurança de cada usuário final para o assembly que contém o dataset tipado.For more information, see Requisitos de segurança para executar o Office Solutions (sistema de 2003).

Consulte também

Tarefas

Como: Recuperar dados de uma pasta de trabalho em um servidor armazenados em cache

Como: Alterar de dados em uma pasta de trabalho em um servidor em cache

Como: Inserir dados em uma pasta de trabalho em um servidor

Conceitos

Acessando dados em documentos no servidor

Modelo de dados no nível de documento personalizações

DiffGrams