星期一, 5月 25, 2009

Windows 2003 x64無法安裝之處理

又一篇個人筆記,最近實在沒有生產力呀...

今天用一台桌上型商用PC灌Windows 2003 Server x64,一直灌不起來,調整BIOS裏各種參數均無效。Windows 2003 Server x64安裝程式無法進入安裝畫面,load driver後就BSoD
,連死在哪個.sys都沒有。這已經是我用nLite做出的整合光碟,沒有更新的driver了。

原本用兩顆HD做Raid 1,但似乎有嚴重的問題,不但開機光碟進不去,連TrueImage都只能進Safe Mode,調整回AHCI模式才能使用TrueImage的Full Mode。但是Windows 2003 Server x64安裝程式仍舊是無法進入安裝畫面,幸好有以前同機型的tib備份檔,就使用TrueImage還原到AHCI模式的硬碟。

這件事告訴我們:以後要灌Windows Server,還是買台真正Server吧。(除非灌Linux/FreeBSD)

星期五, 5月 22, 2009

寫.Net程式時慎選專案名稱

小時候我們寫程式時,老師有說過不要亂取變數名稱(誤,我小時候沒上過電腦課),有許多保留字像class等不要用。

今天遇到的非常鳥的錯誤,試著寫一個行事曆,於是把專案名字叫Calendar,變數名稱與Class名稱我都很小心地避開Calendar這種有內建Class的字,但是事情就這麼發生了...

會用Visual Studio寫Asp.net的朋友都知道,Visual Studio會用專案名稱當做namespace,所以編譯時都過了,在有一個叫Site1.master的MasterPage情況下,執行時出現下面的錯誤訊息。
編譯器錯誤訊息: CS0426: 型別 'System.Web.UI.WebControls.Calendar' 中沒有型別名稱 'Site1'
這就是在下喜歡Java的命名方式,namespace都會叫com.foo.xxx。唉,我果然不適合寫code呀...

星期二, 5月 19, 2009

Visual Studio連線到 SQL Server Express 2008問題

故事背景:

某個無聊網管在公司把自己工作用PC灌了Ubuntu玩到膩之後,今年開始裝Windows 7 beta 64 bit,前陣子更新到Windows 7 RC build 7100時發現 SQL Express 2008是32bit,於是移掉改裝為SQL Exress 2008 64bit,結果遇到
連線到 SQL Server 檔案 (mdf) 都需要 SQL Server Express 2005,才能正確運作。 請確認從 URL 下載的元件的安裝:
http://go.microsoft.com/fwlink/?LinkId=49251

過程:

這裏有官方解說,用白話解說如下:老子不讓你用64bit啦,這是進階功能,要用的話拿小朋友來換。是的,有patch但不能下載。

鳥毅不像VB超人的偶像璉璉有免費點數可用,只好摸摸鼻子換回32bit,結果遇到另一個問題:由於無法啟動使用者執行個體的處理而無法產生SQL Server 的使用者執行個體。此連接將會關閉,幸好有解,在XP把
%USERPROFILE%\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS
目錄刪除就可用,Vista/2008/Win7是在
%USERPROFILE%\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS


正當終於用32 bit SQL Express 2008時,又看到SQL Express 2008 x64 Integration with Visual Studio 2008 SP1,原來國外的高手找到方法(hotfixr)可以直接下載patch。可別忘了啟動Named Pipes呀!

結論:

64bit Windows之路真是辛苦,此時我真的希望微軟能夠學Mac把程式包成一個package直接用呀!

星期三, 5月 06, 2009

64bit SQLServer無法匯入Excel問題

同事遇到在64bit SQLServer無法在SQLServer直接匯入Excel檔的問題,原因是Jet Engine並沒有64bit版本。
事實上,MS Office並沒有64bit版本,所以Jet Engine也沒有64bit版本呀!
類似 http://www.eggheadcafe.com/software/aspnet/32766378/excel-import.aspx 的情形。

不過,如果選完整安裝的朋友,會在工具列看到「匯出和匯入資料(32位元)」,這個就是32bit版的DTS精靈,產生出來的SSIS封裝可以存在64bit SQLServer上,也可以直接執行。

所以會用Visual Studio寫SSIS封裝的朋友,就可以放心寫了。

什麼?要在Stored Procedure匯入Excel?請參考How to call SSIS package from the stored procedure

參考資料:
64-bit Considerations for Integration Services
how to call a stored procedure in SSIS