2010MSDN & TechNet聯合版聚 – 台北場

很難得的因CTCB停電,才有機會參加版聚,要不然我應該是在加班中吧!!
也或許是很久沒參加類似的活動了,相當期待!!

雖然我不是第一次當SA,但這次的經驗還真驚奇,
我己經不知怎麼形容了,除了一般開需求、訪談的工作,
還需DEBUG寫爛的程式,特別是大陸寫的品質…
「吼!!我受夠了!!」
還需釐清是AP程式寫錯,還是系統平台提供的程式出了問題,
「吼!!自己的問題可以自己找嗎??
為什麼都要別人把答案找給你」
需要花時間,而本專案最缺的就是時間,
加班…應付USER動不動的CR,我真的累了,真的累了…..

我只好想單純的去寫程式,只有種好想回去寫程式的衝動.
也許這也是為我什麼我很期待這次版聚吧!!

回到這次主題,版聚談論的主題相當輕鬆,
而且台灣微軟很海派的提供PIZZA、KFC炸雞、蛋塔吃到飽外…..
我也終放知道原來蛋塔吃太多是會噁心的.

第一單元是我很有興趣的職業-講師,
我很欣賞其中一段話,「機會是身旁人給你的,端看你如何把握」

第二單元是我不熟悉的主題….手機系統…..雖然很有市場….但有機會再說吧!!

第三單元我只記得,「保持熱情是很重要的」

第四單元,異想世界…屠老師搞笑的能力真是一流…..
「要做出一套好的遊戲軟体,就先交個會美工的女朋友」
真是說到所有程式人員的心坎裡.

後續還有兩論壇的版主分享心得,
「建立容易,維護難呀!!」

對了,中間串場的大怒神-發表對MS產品的不滿,也是爆笑到了極點,但也有不少人是來亂的啦!!

而這次聚會看到不少ID的真面目,也算是另外的收獲吧!!

如何取得目前程式執行的根目錄

轉貼來源:http://www.AllenKuo.com.tw ( 格子樑 | 艾倫 郭 )

若在 asp.net 裡想取得根目錄的實體位置,可以寫成
string path = Server.MapPath(“/”);

若在 Windows Forms可以寫成
string path = Application.StartupPath ;

若在 Console Application 可以寫成 
string path=System.AppDomain.CurrentDomain.BaseDirectory;

如果您想寫一支 dll 專案,供上述專案類型參考並叫用, 而您想在 dll 取得目前該專案的根目錄, 則可以寫成
string path=System.AppDomain.CurrentDomain.BaseDirectory;

是可以在上述三種專案裡同時正確執行

net 裡想取得根目錄的實體位置,可以寫成
string path = Server.MapPath(“/”);

若在 Windows Forms可以寫成
string path = Application.StartupPath ;

若在 Console Application 可以寫成 
string path=System.AppDomain.CurrentDomain.BaseDirectory;

如果您想寫一支 dll 專案,供上述專案類型參考並叫用, 而您想在 dll 取得目前該專案的根目錄, 則可以寫成
string path=System.AppDomain.CurrentDomain.BaseDirectory;

是可以在上述三種專案裡同時正確執行

asp.net裡寫javascript

http://www.dotblogs.com.tw/aspnet0403/archive/2009/09/10/10526.aspx

裡面有提及:

建議您到ASP.NET後不要使用這樣的寫法。

如果需要在server端註冊js,

可以透過

Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), “RegisterJS_ID”“alert(‘您輸入信箱或密碼錯誤!!’)”true);

或是透過ScriptManager.RegisterClientScriptBlock。

否則您的寫法在有UpdatePanel裡,會出現error。

如果該畫面您有用Ajax的話,那麼註冊就不是用ClientScript這物件囉,要改用ScriptManager來註冊。

「睡眠模式」與「休眠模式」有什麼不同?

老實說,我們常常搞不清楚睡眠與休眠的差異在哪裡。也許是中文字義太過相近,容易使人產生混淆。

睡眠(Sleep Mode)」在 Windows XP 裡又稱為「待機(Standby)」,當電腦進入睡眠模式時,它並不會完全關機,而是關閉螢幕、硬碟以及其它一些用不到的裝置,以極低的耗電量保存記憶體裡的資料,達到「節能減碳」的目的。之後當我們「喚醒」它的時候,又可以在極短的時間內讓電腦恢復之前的工作內容。

休眠模式(Hibernate Mode)」與睡眠不同的是,它會讓電腦完全關機,但是在關機之前會把工作內容儲存到硬碟裡,以 Windows 7 來說就是 hiberfil.sys。當下次開機時便可以從這個檔案原還最後的工作內容。


在Windows XP中,電腦關機跟待機狀態可分為「關機」、「待命」與「休眠」三種:

關機:完整關機,完全關閉電腦電源,開(關)機速最慢。

待命:將目前狀態儲存至記憶體中,開(關)機速度最快,但主機板與記憶體需持續供電。

休眠:將目前狀態儲存至硬碟中,開(關)機速度較慢,主機板、記憶體與硬體週邊不用供電。


在Windows Vista中,有「休眠」、「睡眠」跟「交互式睡眠」三種模式:

睡眠:跟XP中的「待命」類似,將目前狀態儲存至記憶體中,開(關)機速度最快,但主機板與記憶體需持續供電。

休眠:跟XP中的「休眠」一樣,將目前狀態儲存至硬碟中,開(關)機速度較慢,主機板、記憶體與硬體週邊不用供電。

交互式睡眠:又稱「混合式睡眠」,此功能混合睡眠+休眠的功能,先將目前狀態儲存於記憶體中,再將相關資訊也儲存一份到硬碟中,避免因為睡眠期間電腦不正常斷電而使得資料遺失。

[轉貼]將資料庫表格中的資料以 INSERT INTO 指令的方式匯出

原文網址:http://twg.idv.tw/dv_rss_xhtml_155_85551_2.html

通常我們從 SQL Server 匯出資料到另一台主機大致上有幾種方式:

  1. 使用 bcp.exe 匯出成純文字格式,在到另一台主機用 bcp.exe 匯入資料
  2. 使用 DTS (Data Transformation Services) 或 SSIS (SQL Server Integration Services) 將資料封裝成檔案,並帶到另一台 Server 匯入資料。
  3. 備份整個資料庫,將備份檔(*.bak)帶到另一台主機還原資料
  4. 卸載(Detach)資料庫,將資料庫檔(*.mdf 與 *.ldf)帶到另一台主機附加(Attach)資料庫

我以前常用 MySQL 資料庫,匯出資料庫的時候都是 DDL ( CREATE TABLE, … ), DML (INSERT INTO, … ) 的格式儲存,要移轉資料到其他主機都很方便。但改用 SQL Server 時這些東西都不見了,讓我困擾了好久,有時後為了轉移一些資料都要花費很大的力氣將資料轉移到遠端的主機,因為有些遠端的 SQL Server 是無法直接用 Management Studio 遠端連接,只能用 Web 介面管理時,就很很麻煩。

但我今天在這裡發現一個神奇的預儲程序(Stored Procedure),作者是一位叫做 Narayana Vyas Kondreddi 的仁兄,光看名字實在看不出是哪一國人 :-p

他寫的 T-SQL 可以將表格中的資料全部都轉成 INSERT INTO 的形式,方便你將資料帶到另一台主機,只要執行 INSERT INTO 指令就可以將資料新增到另一台主機了。

這個預儲程序的優點有:

  • Data from both tables and views can be scripted
  • No CURSORs are used
  • Table names and column names with spaces are handled
  • All datatypes are handled except images, large text and binary columns with more than 4 bytes
  • NULLs are gracefully handled
  • Timestamp columns are handled
  • Identity columns are handled
  • Very flexible and configurable
  • Non-dbo owned tables are handled
  • Computed columns are handled
  • You can filter the rows for which you want to generate INSERTs

下載 Stored Procedure:

原作者的網站有 14 個使用說明範例(Usage Example),各位可以上去看看。執行完下載的 T-SQL Script 之後會在 master 資料庫中新增一個 dbo.sp_generate_inserts 預儲程序物件,如下圖示:

執行完下載的 T-SQL Script=

不過缺點是這個方法沒辦法適用於有文字欄位內容超過 8KB 的資料,因為輸出的結果是顯示在 SSMS ( SQL Server Management Studio ) 中,輸出的欄位長度是有限制的。

另外,這個預儲程序我有發現一個小問題,就是當執行完畢後,匯出的資料中如果內容中有「斷行符號」的話,全部都會被置換成「空白」字元,導致匯入的時候所有斷行字元都會被換成空白符號,資料就被破壞掉了。

我個人花了 2 個小時將這個 Script 研究過一遍並將問題給修正了(只改了兩行),用 T-SQL 產生 T-SQL 的程式碼真的會讓人眼花撩亂,一大堆單引號 Quote 來 Quote 去的,你自己看程式碼就知道了,我將更新過的 T-SQL Script 放在以下檔案中,我只有改寫 SQL 2005 的版本而已:

成就感

常在想,最近工作遇到的困境在哪?
缺乏動力!! 不適應環境!! 工作量多!! 壓力大!! 付出不夠!!
 
是成就感,讓我踏上程式之路的東西消失了,
現在所遇到的只有挫折、不甘心,
因為沒經驗,還是因為沒用心,在專案裡,我沒有存在感!!
一個沒有存在感的人,還談什麼成就感呢?
 
努力把SA的能力學起來吧!! 在加入專案初期一直抱持這個想法,
二個月過去了,我還是適應不良。
 
雖然我愛cowork的感覺,但更討厭team member間皮笑肉不笑,
加上持續的被採到線,只能壓抑住自己的情緒,我很不開心。
 
或許社會就是如此的現實,只是我還太天真而已。