這幾天做了一個程序,vs 2005 + sql server express,仔細查閱文檔,發(fā)現 sql server express 支持 xcopy 部署方式,也就是說,只要目標計算機有了 sql server express,那么只需要把數據庫拷貝過去,可以在程序的同一個目錄中,然后在連接字符串中配置 attachdbfilename 參數即可。數據庫會自動掛接到 sql server express 中,運行完后自動 deattch。感覺不錯,照貓畫虎,結果出現了一個錯誤:“數據庫已被壓縮,無法建立,需要解壓縮”。暈死,什么時候壓縮了?莫非是 shinrk 的問題?搞了 n 個小時,無解,睡覺。
    
次日再戰(zhàn),查閱資料無解,查閱 internet 無解,想放棄,又舍不得。無意中發(fā)現,在管理界面中 attach 數據庫居然也是這個錯誤,而在原先目錄中的數據庫居然沒問題。把數據庫拷貝到程序目錄(在 d: 盤,sql server express 安裝在 c: 盤)就會出錯。不會是這個問題吧?
    
將程序目錄移動到 c 盤,居然一切正常,然后徹底暈死。難道自動掛接數據庫必須在 c 盤???
    
另,如果將數據庫文件設置為只讀,則無論在哪個盤都可掛接,只是成為只讀數據庫。
    
雖說解決了問題,可是不懂原理,是 bug,還是我的系統問題?
    
其實,sybase 的 sql anywhere 真的不錯,在啟動數據庫的時候才啟動數據庫管理系統,系統運行結束,數據庫管理系統自動結束,如果 sql server express 也支持這個功能就好了,我可不喜歡不用數據庫的時候還有一個 sql server 服務在運行。access 連存儲過程都不支持,微軟,想說愛你并不容易。 
新聞熱點
疑難解答