Artigo: 967963 - Última revisão: sexta-feira, 24 de Julho de 2009 - Revisão: 2.0

CORRECÇÃO: Algumas linhas são eliminadas quando é reparar uma base de dados utilizando o método de reparação juntamente com a opção RepairOption.RecoverCorruptedRows no SQL Server 2005 Compact Edition e no SQL Server Compact 3.5

Está disponível transferência de hotfixDisponível transferência de hotfix
Ver e solicitar transferências de hotfix
Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sintomas

No Microsoft SQL Server 2005 Compact Edition ou no Microsoft SQL Server Compact 3.5, quando reparar uma base de dados utilizando o método de reparação juntamente com a opção RepairOption.RecoverCorruptedRows , algumas linhas são inesperadamente eliminadas.

Resolução

Informações sobre a correcção

Está disponível a partir da Microsoft uma correcção suportada. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentada, submeta um pedido para o serviço de cliente do Microsoft e suporte para obter a correcção.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para a qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Existem não pré-requisitos para instalar esta correcção.

Requisito de reinício

Não é necessário reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição de correcções

Esta correcção não substitui uma correcção disponibilizada anteriormente.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário no item data e hora no painel de controlo.
SQL Server Compact 3.5 do Windows CE 5.0 em dispositivos baseados em Armv4i diferente do pocket PC dispositivos
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Sqlce.Dev.enu.wce5.armv4i.cabNão aplicável316,63306-Mar-200903: 49Não aplicável
Sqlce.REPL.wce5.armv4i.cabNão aplicável818,22506-Mar-200903: 49Não aplicável
Sqlce.wce5.armv4i.cabNão aplicável1,775,09006-Mar-200903: 49Não aplicável
SQL Server Compact 3.5 do Windows CE 5.0 no pocket Armv4i baseadas em dispositivos do computador
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Sqlce.Dev.enu.PPC.wce5.armv4i.cabNão aplicável104,68406-Mar-200904: 02Não aplicável
Sqlce.PPC.wce5.armv4i.cabNão aplicável749,79406-Mar-200904: 02Não aplicável
Sqlce.REPL.PPC.wce5.armv4i.cabNão aplicável341,74306-Mar-200904: 02Não aplicável
SQL Server 2005 Compact Edition para Windows CE 4.0 em dispositivos baseados em Armv4 diferente do pocket PC dispositivos
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Sqlce30.Dev.enu.wce4.armv4i.cabNão aplicável327,40226 De Janeiro de 200906: 02Não aplicável
Sqlce30.REPL.wce4.armv4i.cabNão aplicável760,89026 De Janeiro de 200906: 02Não aplicável
Sqlce30.wce4.armv4i.cabNão aplicável1,627,83026 De Janeiro de 200906: 02Não aplicável
SQL Server 2005 Compact Edition para Windows CE 4.0 em Armv4 baseadas em pocket PC dispositivos
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempoPlataforma
Sqlce30.Dev.enu.PPC.wce4.armv4.cabNão aplicável324,33026 De Janeiro de 200906: 00Não aplicável
Sqlce30.PPC.wce4.armv4.cabNão aplicável1,585,83826 De Janeiro de 200906: 00Não aplicável
Sqlce30.REPL.PPC.wce4.armv4.cabNão aplicável739,37826 De Janeiro de 200906: 00Não aplicável

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

Como instalar esta correcção

Para instalar esta correcção, siga estes passos:
  1. Transfira a correcção para o seu sistema.
  2. No dispositivo, desinstale a versão existente do SQL Server 2005 Compact Edition ou do SQL Server Compact 3.5.
  3. Extrai os ficheiros .cab do pacote de correcção.
  4. No dispositivo, instale os ficheiros .cab três.

Mais informações para programadores

Tem de seguir estes passos para substituir as DLL que utiliza o projecto com as DLL do pacote de correcção:
  1. Extrair o sistema ~ ficheiro 1.004 o ficheiro .cab para o seu sistema.

    A tabela seguinte lista o ficheiro .cab a partir da qual pode extrair o sistema ~ 1.004 ficheiro.
    Reduzir esta tabelaExpandir esta tabela
    PlataformaNome de correcçãoficheiro .cab
    SQL Server Compact 3.5 do Windows CE 5.0 em dispositivos baseados em Armv4i diferente do pocket PC dispositivosSQL_CE_35SP1_wce5_ARMV4i_3_5_5692_5Sqlce.wce5.armv4i.cab
    SQL Server Compact 3.5 Windows CE 5.0 em Armv4i baseadas em pocket PC dispositivosSQL_CE_35SP1_wce5_PPC_ARMV4i_3_5_5692_5Sqlce.PPC.wce5.armv4i.cab
    SQL Server 2005 Compact Edition para Windows CE 4.0 em Armv4 baseadas em pocket PC dispositivosSQL_CE_31_WCE400_PPC_5300_9Sqlce30.PPC.wce4.armv4.cab
    SQL Server 2005 Compact Edition para Windows CE 4.0 em dispositivos baseados em Armv4 diferente do pocket PC dispositivosSQL_CE_31_WCE400_5300_9Sqlce30.wce4.armv4i.cab
  2. Mudar o nome do sistema ~ 1.004 ficheiro como ficheiro System.Data.SqlServerCe.dll.
  3. Substitua o ficheiro System.Data.SqlServerCe.dll instalado no sistema com o novo ficheiro System.Data.SqlServerCe.dll obtido no passo 2.

    Se estiver a utilizar o SQL Server 2005 Compact Edition, substitua o ficheiro na seguinte localização com o ficheiro obtido no passo 2:
    O visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\System.Data.SqlServerCe.dll %ProgramFiles%\Microsoft
    Se estiver a utilizar SQL Server Compact 3.5, substitua o ficheiro na seguinte localização com o ficheiro obtido no passo 2:
    %ProgramFiles%\Microsoft Edition\v3.5\Devices\System.Data.SqlServerCe.dll Compactar do SQL Server
  4. Se o project utiliza Especifica o ficheiro System.Data.SqlServerCe.dll que não esteja na localização que o passo 3, substitua o ficheiro System.Data.SqlServerCe.dll nessa localização.

Alterações incluídas nesta correcção

Depois de aplicar esta correcção, a enumeração RepairOption é melhorada da seguinte forma. Reveja cuidadosamente.
  • RecoverAllOrFail Esta é uma opção nova introduzida esta correcção. Se o método de reparação é invocado utilizando o valor de RecoverAllorFail , a recuperação vai ser bem sucedida se existe sem perda de dados. Se for detectada perda de dados, a recuperação for interrompida e é accionada uma excepção. Esta é a opção preferencial para garantir que a reparação da base de dados é concluída com êxito e que não existe nenhuma perda de dados. É a opção mais eficaz para ajudar a proteger contra perda de dados e danos da base de dados reparada.
  • RecoverAllPossibleRows Esta é uma opção nova introduzida esta correcção. Se o método de reparação for invocado utilizando o valor de RecoverAllPossibleRows , a base de dados irá tentar ler dados de páginas danificadas. Isto resulta potencialmente mais dados a ser recuperado. No entanto, esta opção não garante que os dados recuperados será gratuito de qualquer tipo de danos. Por isso, mesmo que a próxima Verificar chamar na base de dados reparada devolve um valor de true , a base de dados pode conter danos lógico. Por exemplo, um valor de chave externo poderão existir sem o valor da chave primária correspondente. Se isto ocorreu, a definição de esquema de restrição externa na base de dados de destino irá falhar e estar em falta. A recuperação é efectuada desta forma para melhorar o desempenho.
  • DeleteCorruptedRows Se o método de reparação for invocado utilizando o valor de DeleteCorruptedRows , todas as páginas danificadas são eliminadas da base de dados. Isto poderá resultar na perda de dados significativos. Com esta opção, mesmo que a próxima Verificar chamada a base de dados reparada devolve um valor de true , a base de dados pode conter danos lógico. Por exemplo, um valor de chave externo poderão existir sem o valor da chave primária correspondente. Se isto ocorreu, a definição de esquema de restrição externa na base de dados de destino irá falhar e estar em falta. A recuperação é efectuada desta forma para melhorar o desempenho.
  • RecoverCorruptedRows Esta opção não é considerada eficaz e não deve ser utilizada. Em vez disso utilize RecoverAllPossibleRows.
notas
  • O método de reparação não garante a recuperação de dados concluída para cada base de dados suspeito. Algumas formas de danos de dados não não possível corrigir completamente, independentemente da opção de reparação que está seleccionada pela aplicação.
  • Independentemente da opção de reparação que está seleccionada, o método de reparação pode escrever detalhes sobre inconsistências da base de dados num ficheiro de registo. Este ficheiro é escrito no mesmo directório que contém o ficheiro de .sdf de base de dados de origem. A aplicação ou um administrador de base de dados, deve examinar este ficheiro de registo para determinar se a base de dados resultante é válido. Isto é um passo importante quando a aplicação não utiliza a opção RecoverAllOrFail.
  • Quando a aplicação não utiliza a opção RecoverAllOrFail, é da responsabilidade da aplicação ou de administrador da base de dados para validar a base de dados resultante. Isto é conseguido examinando o ficheiro de registo para determinar se a base de dados é fiável.
  • Se a aplicação ou o utilizador não consegue validar a base de dados resultante, restaure a base de dados a partir de uma cópia de segurança ou re-construct manualmente a base de dados. Deverá efectuar este procedimento antes de utilizar a base de dados de produção.

Referências

Para obter mais informações sobre o modelo de assistência Incremetal, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
935897  (http://support.microsoft.com/kb/935897/ ) Um modelo de assistência incremental está disponível a equipa do SQL Server para proporcionar correcções para problemas comunicados
Para obter mais informações sobre o esquema de atribuição de nomes para as actualizações do SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
822499  (http://support.microsoft.com/kb/822499/ ) Novo esquema de atribuição de nomes de ficheiros para pacotes de actualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia de actualização de software, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684  (http://support.microsoft.com/kb/824684/ ) Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server Compact 3.5
  • Microsoft SQL Server 2005 Compact Edition
Palavras-chave: 
kbmt kbsurveynew kbhotfixserver kbautohotfix kbexpertiseadvanced kbqfe kbfix KB967963 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 967963  (http://support.microsoft.com/kb/967963/en-us/ )