熱門文章

2011年8月2日 星期二

Visual Studio 中好用的除錯技巧與快捷鍵

Visual Studio 的除錯技巧,想必用Windows開發工具寫程式的同好們再熟悉不過了...

不過今天在網路上瀏覽到一篇文章寫的還蠻詳細的

在此分享一下


除錯的輔助功能

我們都知道按下 F5 可以啟動或繼續除錯的動作, 但你或許不知道按下 Shift-F5 (Stop Debugging) 可以停止除錯, 並且立即回到設計畫面。此外, 按下 Ctrl-Shift-F5 (Restart) 可以重新啟動除錯, 這在我們修改程式碼之後的繼續除錯很有幫助。
在設定程式的中斷點之後, 我們可以按下 F10 或 F11 以逐步執行的方式來觀察每一行程式的執行結果。其中 F10 和 F11 都是讓你一行一行的往下執行, 其差異在於按下 F10 時, 畫面並不會切換到中斷行所呼叫的函式。例如你的程式中有一個方法叫做 protected int calc(int a, int b), 如果中斷點執行到這個方法時, 例如 int result = calc(100, 200); 此時如果按下 F10 (Step Over), 畫面只會繼續進行到該行的下一行 (這時候你可以把滑鼠游標移到 result 這個變數上面, 就可以看到 calc() 方法所傳回的結果); 但是如果剛才你按的是 F11 (Step Into) 而不是 F10, 那麼畫面會跳進 calc() 方法裡面, 那麼會變成你是在檢查 calc() 方法中的程式了。
在這個情況下, 如果你剛才按的是 F11, 畫面切入 calc() 方法, 而偏偏 calc() 方法又臭又長, 但你卻已經不想在 calc() 方法中浪費時間了, 怎麼辦? 很簡單, 你可以立刻按下 Shift-F11 (Step Out), 它會讓你直接從目前的函式中跳回上一層, 然後再繼續。
我個人覺得上面所提的三個按鍵幾乎已經是我日常工作中對於除錯功能的全部需求了。不過我的一位同事很喜歡使用 Watch 功能; 如果你有需要同時監看多個變數, 或許你也可以參考他的習慣做法。方法很簡單, 你可以在除錯階段中, 在變數上面按下滑鼠右鍵, 再選擇 Add Watch, 之後這個變數就會在監看視窗中列出來, 供你在逐步除錯時快速監看各個變數的變化值。不過這個功能有個缺點, 就是你時常需要以手動方式把 Watch 刪除, 否則監看視窗很快就會擠滿一大堆東西。
此外, 我個人蠻喜歡逐步執行和「繼續」混合運用的除錯方式。由於你可以很自由的在除錯時期加入和取消中斷點, 所以你可以視情況在適當的地方加入新的中斷點, 然後按下 F5 (Continue), 讓程式直接執行到新中斷點所在。你也可以在程式迴圈裡的適當地點加入中斷點, 然後按下 F5, 那麼程式會立即執行到迴圈的下一個回合。等你檢查得差不多的時候, 把迴圈內的中斷點取消, 再設定其它的中斷點, 再按下 F5, 程式又會執行到其它地方 (當然, 你也可以按下滑鼠右鍵, 再選擇「執行到游標處」; 看哪一種適合你的情況)。

2011年3月15日 星期二

[MSSQL] BEGIN TRY ... CATCH

在Stored Procedures裡面加上 BEGIN TRY ... CATCH,從中加上交易控制,若發生錯誤就返回並丟出錯誤訊息。

具體寫法

BEGIN TRY

write your code...

END TRY

BEGIN CATCH

END CATCH

但在實際應用上,我會顯示錯誤訊息並發送E-MAIL給相關聯絡人...

BEGIN TRY

BEGIN TRAN

BEGIN

Write your code...

COMMIT TRAN

END

END TRY

BEGIN CATCH

ROLLBACK TRAN
SET @strERROR = 'Error Code: '+CONVERT(VARCHAR(20),ERROR_NUMBER()) + CHAR(13) + 'Error Message: ' + ERROR_MESSAGE()
SET @SPFLAG = 'N';
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DB_NAME',
@RECIPIENTS= 'EMAIL_ADDRESS1;EMAIL_ADDRESS2',
                 @SUBJECT='Error_Message',
@BODY = @strERROR,
@body_format = 'HTML' ;
END CATCH

2011年3月14日 星期一

MCITP Database Developer 2008

繼去年考到MCTS Database Development 2008之後,想說做這行多學一些,並趁年輕時考取些Licenses。

接觸MSSQL SERVER 2008也已經有一段時間,工作上做了些SSIS、SSAS、SSRS的應用...

在大公司做BI需有一定的深度和經驗,往後會再多花時間繼續研究!

今年初花了些時間做Lab,考到MCITP Database Developer 2008 and Business Intelligence Developer 2008,如下圖

For Front-end Web Developers

在國外網站意外發現一篇實用的連結文章, 在此分享~


看來做WEB前端的工程師越來越幸福了...
http://sixrevisions.com/resources/cheat_sheets_web_developer/

2011年2月25日 星期五

[MSSQL] 關於SQL排序


SELECT * FROM TEMPTABLE ORDER BY 1
按查詢中的第一列排序,默認用ASC
SELECT * FROM TEMPTABLE ORDER BY 1,2
以此類推,按查詢中的第一、二列排序

2011年2月24日 星期四

[MSSQL] 撈出Table Schema

今天工作上剛好有用到, 做個小筆記

只撈出整個Table Schema, 不撈出全部資料

example

select * into temptable from XXX where 1=0

where 1=0 等於條件永遠不成立

另外

where 1=1 等於條件永遠成立

select * from XXX and where1=1

2011年2月19日 星期六

Miscrosoft MCPD 考試系列

分享給要考Microsoft MCPD的同好們!

Microsoft Visual Studio 2008

MCPD: Windows Developer 3.5 (70-536,70-505,70-563)

MCPD: Web Developer 3.5 (70-536,70-562,70-564)

MCPD: Enterprise Application Developer 3.5 (70-536,70-505,70-562,70-561,70-503,70-565)


Microsoft Visual Studio 2010

MCPD: Windows Developer 4 (70-511,70-513,70-516,70-518)

MCPD: Web Developer 4 (70-515,70-513,70-516,70-519)


Windows Azure

MCPD: Windows Azure Developer 4 (70-511 or 70-515,70-513,70-516,70-583)