sql >> Databáze >  >> RDS >> Sqlserver

Problémy s úpravou záznamů v Access / SQL (konflikt zápisu)

Možné problémy:

1 souběžné úpravy

Důvodem může být to, že dotyčný záznam byl otevřen ve formuláři, který upravujete. Pokud během editační relace programově změníte záznam a poté se pokusíte zavřít formulář (a pokusíte se tedy záznam uložit), přístup říká, že záznam byl změněn někým jiným (samozřejmě jste to vy, ale Access to neví ).

Před změnou záznamu programově uložte formulář.
Ve formuláři:

'This saves the form's current record
Me.Dirty = False

'Now, make changes to the record programmatically

2 Chybí primární klíč nebo časové razítko

Ujistěte se, že tabulka SQL-Server má primární klíč a také sloupec časového razítka.

Sloupec časové razítko pomáhá Accessu určit, zda byl záznam od posledního výběru upraven. Access to provede kontrolou všech polí, pokud není k dispozici žádné časové razítko. Možná to nefunguje dobře s nulovými položkami, pokud není sloupec s časovým razítkem (viz Problém s 3 nulovými bity ).

Časové razítko ve skutečnosti ukládá číslo verze řádku, nikoli čas.

Po přidání sloupce časového razítka nezapomeňte v Accessu aktualizovat odkaz na tabulku, jinak ho Access neuvidí. (Poznámka:Průvodce přenesením Microsoftu vytvoří sloupce s časovým razítkem při převodu tabulek Accessu na tabulky SQL-Server.)

Problém se 3 nulovými bity

Podle @AlbertD.Kallal by to mohl být problém s nulovými bity popsaný zde:KB280730 (poslední snímek na WayBackMachine, původní článek byl smazán). Pokud používáte bitová pole, nastavte jejich výchozí hodnotu na 0 a všechny dříve zadané hodnoty NULL nahraďte 0 . Obvykle používám BIT DEFAULT 0 NOT NULL pro booleovská pole, protože se nejvíce shoduje s myšlenkou booleanu.

V článku znalostní báze je uvedeno, že se má místo *.mdb použít *.adp; nicméně Microsoft ukončil podporu pro Access Data Projects (ADP) v Accessu 2013 .



  1. Řešení chyb Oracle

  2. Čistá instalace VestaCP

  3. SQL Řaďte ​​podle řetězce, čísla se zobrazují jako poslední

  4. Jak převést datum UTC na místní časové pásmo v MySql Select Query