Sintomas
Considere o seguinte cenário:
-
Instalar o Microsoft SQL Server Compact 3.5 num computador.
-
Criar um subscritor no SQL Server Compact 3.5.
-
Transferir várias linhas de uma publicação de impressão em série para uma base de dados enquanto o publisher sincroniza com o subscritor. As linhas contêm muitos artigos e restrições.
Neste cenário, uma mensagem de erro semelhante à seguinte é registada no registo de erros do SQL Server:
Erro de System.Data.SqlServerCe.SqlCeExceptionNative = 0, HRESULT =-2147217873, mensagem de erro: um valor especificado violou as restrições de integridade para uma coluna ou tabela.
NotaEste problema ocorre no sistema operativo de 32 bits e o sistema operativo de 64 bits.
Causa
Este problema ocorre porque um ID de troca inválida é utilizado. Quando várias linhas para transferência estiverem num estado pendente, SQL Compact Client Agent chama um método de repetição que utiliza um ID inválido de exchange. Por conseguinte, o problema mencionado na secção "Sintomas" ocorre.
Resolução
A correcção que resolve este problema está incluída no pacote de actualização cumulativa 5 para SQL Server Compact 3.5 Service Pack 2 (SP2). Para mais informações sobre como obter o pacote de actualização cumulativa 5 para o SQL Server Compact 3.5 SP2, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2553608 Actualização cumulativa 5 para SQL Server Compact 3.5 Service Pack 2