sql >> Database teknologi >  >> RDS >> Sqlserver

Redigering af postproblemer i Access / SQL (Write Conflict)

Mulige problemer:

1 samtidige redigeringer

En årsag kan være, at den pågældende post er blevet åbnet i en form, som du redigerer. Hvis du ændrer posten programmatisk under din redigeringssession og derefter forsøger at lukke formularen (og dermed forsøger at gemme posten), siger access, at posten er blevet ændret af en anden (selvfølgelig er det dig, men Access ved det ikke ).

Gem formularen, før du ændrer posten programmatisk.
I formularen:

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

'Now, make changes to the record programmatically

2 Manglende primærnøgle eller tidsstempel

Sørg for, at SQL-Server-tabellen har en primær nøgle samt en tidsstempelkolonne.

Tidsstempelkolonnen hjælper Access med at bestemme, om posten er blevet redigeret, siden den sidst blev valgt. Access gør dette ved at inspicere alle felter, hvis intet tidsstempel er tilgængeligt. Måske fungerer dette ikke godt med null-indtastninger, hvis der ikke er nogen tidsstempelkolonne (se 3 Null-bits problem ).

Tidsstemplet gemmer faktisk et rækkeversionsnummer og ikke et tidspunkt.

Glem ikke at opdatere tabellinket i Access efter tilføjelse af en tidsstempelkolonne, ellers vil Access ikke se det. (Bemærk:Microsofts Upsizing Wizard opretter tidsstempelkolonner, når Access-tabeller konverteres til SQL-Server-tabeller.)

3 null bit problem

Ifølge @AlbertD.Kallal kunne dette være et problem med null bits beskrevet her:KB280730 (sidste snapshot på WayBackMachine, den originale artikel blev slettet). Hvis du bruger bitfelter, skal du indstille deres standardværdi til 0 og erstatte eventuelle NULL'er indtastet før med 0 . Jeg bruger normalt en BIT DEFAULT 0 NOT NULL for booleske felter, da det bedst matcher ideen om en boolsk.

KB-artiklen siger, at man skal bruge en *.adp i stedet for en *.mdb; dog Microsoft indstillede supporten til Access Data Projects (ADP) i Access 2013 .



  1. Udskiftning af \r\n (nylinjetegn) efter at have kørt json_encode

  2. Sådan fjerner du konfigurationsparameter

  3. SQL kan ikke oprette tabel (fejlnr:150)

  4. LIMIT / OFFSET i Oracle 11G