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

Impossibile aggiornare il database .mdf perché il database è di sola lettura (applicazione Windows)

La cosa più importante che è cambiata tra Windows XP e Windows Vista/7 è l'introduzione dell'UAC, il che significa che gli utenti, anche se creati come amministratori, non hanno normalmente accesso in lettura/scrittura a posizioni "importanti" come il %programfiles% (Di solito C:\Program Files o C:\Program Files (x86) ) directory. Questo è il motivo per cui la tua applicazione funziona su Windows XP e non su Windows Vista.

Devi memorizzare i tuoi DATI nel %programdata% directory (che di solito è C:\ProgramData ) se i dati sono condivisi tra utenti sulla macchina o %appdata% (che di solito è C:\Users\USERNAME_GOES_HERE\AppData\Roaming ) se è specifico per un determinato utente. Ora non incontrerai più il problema di non essere in grado di scrivere sul file.

Il motivo è che memorizzando i dati nella directory di installazione dei programmi, stavi facendo la cosa sbagliata . Windows non ti ha impedito di farlo in precedenza, ma è stato ampiamente documentato che %programfiles% non era il luogo appropriato per archiviare i dati.