Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Editando problemas de registro no Access/SQL (Write Conflict)


Possíveis problemas:

1 edições simultâneas

Um motivo pode ser que o registro em questão foi aberto em um formulário que você está editando. Se você alterar o registro programaticamente durante sua sessão de edição e depois tentar fechar o formulário (e assim tentar salvar o registro), o acesso diz que o registro foi alterado por outra pessoa (claro que é você, mas o Access não sabe ).

Salve o formulário antes de alterar o registro programaticamente.
No formulário:
'This saves the form's current record
Me.Dirty = False

'Now, make changes to the record programmatically

2 Chave primária ou carimbo de data/hora ausentes

Certifique-se de que a tabela do SQL-Server tenha uma chave primária e uma coluna de carimbo de data/hora.

A coluna de carimbo de data/hora ajuda o Access a determinar se o registro foi editado desde a última seleção. O Access faz isso inspecionando todos os campos, se nenhum carimbo de data/hora estiver disponível. Talvez isto não funcione bem com entradas nulas se não houver uma coluna de carimbo de data/hora (veja Problema de 3 bits nulos ).

O carimbo de data/hora, na verdade, armazena um número de versão de linha e não uma hora.

Não se esqueça de atualizar o link da tabela no acesso após adicionar uma coluna de carimbo de data/hora, caso contrário, o Access não a verá. (Observação:o Assistente de upsizing da Microsoft cria colunas de carimbo de data/hora ao converter tabelas do Access em tabelas do SQL-Server.)

Problema de 3 bits nulos

De acordo com @AlbertD.Kallal, isso pode ser um problema de bits nulos descrito aqui:KB280730 (último instantâneo no WayBackMachine, o artigo original foi excluído). Se você estiver usando campos de bits, defina seu valor padrão para 0 e substitua quaisquer NULLs inseridos antes por 0 . Eu costumo usar um BIT DEFAULT 0 NOT NULL para campos booleanos, pois mais se aproxima da ideia de um booleano.

O artigo da KB diz para usar um *.adp em vez de um *.mdb; no entanto, A Microsoft descontinuou o suporte para Access Data Projects (ADP) no Access 2013 .