Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Échec de la mise à jour de la base de données .mdf car la base de données est en lecture seule (application Windows)

La grande chose qui a changé entre Windows XP et Windows Vista/7 est l'introduction de l'UAC qui signifie que les utilisateurs, même s'ils sont créés en tant qu'administrateurs, n'ont pas systématiquement accès en lecture/écriture aux emplacements "importants" tels que le %programfiles% (Généralement C:\Program Files ou C:\Program Files (x86) ) répertoire. C'est pourquoi votre application fonctionne sur Windows XP et non sur Windows Vista.

Vous devez stocker vos DONNÉES dans le %programdata% répertoire (qui est généralement C:\ProgramData ) si les données sont partagées entre les utilisateurs sur la machine ou %appdata% (qui est généralement C:\Users\USERNAME_GOES_HERE\AppData\Roaming ) s'il est spécifique à un utilisateur donné. Vous ne rencontrerez plus le problème de l'impossibilité d'écrire dans le fichier.

La raison en est que en stockant des données dans le répertoire d'installation de vos programmes, vous faisiez la mauvaise chose . Windows ne vous a pas empêché de le faire auparavant, mais il a été assez largement documenté que %programfiles% n'était pas l'endroit approprié pour stocker des données.