2013-10-26 98 views
3

當我使用查詢:SELECT DISTINCT f.id FROM foo f, bar b WHERE f.id=b.id AND b.type='baz'運行作者網站提供的官方SQLite二進制文件時,不管sqlite是以管理員身份還是以普通身份運行,它都會返回不同的結果。如何/爲什麼會發生這種情況?爲什麼SQLite以管理員權限運行時返回不同的值?

我不知道如何複製這種行爲來顯示你沒有提供實際的數據庫本身(我不能這樣做)。因此,任何想法來幫助我解決這個問題將不勝感激。

編輯:查詢SELECT name, rootpage FROM sqlite_master;也返回不同的結果:有行丟失和頁索引也不同。

+1

您是否試圖訪問位於Windows Vista或更新版本的Program Files中的數據庫? –

+0

@MatteoItalia是的,你知道這個問題嗎? – chacham15

+2

這是由於自動文件夾重定向。如果一個不支持Vista的程序嘗試在程序文件中使用未授權的帳戶進行寫入,則Windows會將這些新文件悄悄地重定向到一個用戶特定的文件夾中,以強制執行安全設置而不會破壞舊的應用程序。一般來說,你的應用程序不應該寫在程序文件中。 –

回答

2

(從註釋移動)

這是由於自動文件夾重定向。如果一個不支持Vista的程序嘗試在程序文件中使用未授權的帳戶進行寫入,則Windows會將這些新文件悄悄地重定向到一個用戶特定的文件夾中,以強制執行安全設置而不會破壞舊的應用程序。一般來說,你的應用程序不應該寫在程序文件中。

有關更多信息,請參閱http://blogs.windows.com/windows/archive/b/developers/archive/2009/08/04/user-account-control-data-redirection.aspx

相關問題