這幾天做了一個程式,VS 2005 SQL Server Express,仔細查閱文檔,發現 SQL Server Express 支援 XCOPY 部署方式,也就是說,只要目標電腦有了 SQL Server Express,那麼只需要把資料庫拷貝過去,可以在程式的同一個目錄中,然後在連接字串中配置 AttachDBFileName 參數即可。資料庫會自動掛接到 SQL Server Express 中,運行完後自動 Deattch。感覺不錯,照貓畫虎,結果出現了一個錯誤:“資料庫已被壓縮,無法建立,需要解壓縮”。暈死,什麼時候壓縮了?莫非是 Shinrk 的問題?搞了 n 個小時,無解,睡覺。
次日再戰,查閱資料無解,查閱 Internet 無解,想放棄,又捨不得。無意中發現,在管理介面中 Attach 資料庫居然也是這個錯誤,而在原先目錄中的資料庫居然沒問題。把資料庫拷貝到程式目錄(在 D: 盤,SQL Server Express 安裝在 C: 盤)就會出錯。不會是這個問題吧?
將程式目錄移動到 C 盤,居然一切正常,然後徹底暈死。難道自動掛接資料庫必須在 C 盤???
另,如果將資料庫檔案設定為唯讀,則無論在哪個盤都可掛接,只是成為唯讀資料庫。
雖說解決了問題,可是不懂原理,是 Bug,還是我的系統問題?
其實,Sybase 的 SQL Anywhere 真的不錯,在啟動資料庫的時候才啟動資料庫管理系統,系統運行結束,資料庫管理系統自動結束,如果 SQL Server Express 也支援這個功能就好了,我可不喜歡不用資料庫的時候還有一個 SQL Server 服務在運行。Access 連預存程序都不支援,微軟,想說愛你並不容易。
BLOG:ZhangJinglin
http://www.bkjia.com/PHPjc/631007.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631007.htmlTechArticle這幾天做了一個程式,VS 2005 SQL Server Express,仔細查閱文檔,發現 SQL Server Express 支援 XCOPY 部署方式,也就是說,只要目標電腦有了 SQL...