2010年8月31日 星期二

ASP 操作 Excel 簡單範例 (三)

補充一些小東東

<%
   '// A1~C1 合併放入 "Header" 字樣
   Set HeaderRange = xlSheet.Range("A1:C1")
   HeaderRange.MergeCells = true
   xlSheet.Cells(1,1) = "Header"

   '// 設定A1背景色 (15=淺灰色)
   Set MergeHeaderRange = xlSheet.Range("A1")
   MergeHeaderRange.Interior.ColorIndex = 15

   '// 設定第一行為日期格式
   Set AColRange = xlSheet.Range("A:A")
   AColRange.NumberFormatLocal = "yyyy/mm/dd"

   '// 隱藏第四行
   Set DColRange = xlSheet.Range("D:D")
   DColRange.Columns.Hidden = true

   '// 將第一列凍結視窗
   xlSheet.Cells(2,1).Select
   xlApp.ActiveWindow.FreezePanes = true
%>

參考前篇:ASP 操作 Excel 簡單範例(二)

T-SQL Like 的小玩意兒

偶然發現 T-SQL Like 的一個小玩意兒
所以記錄一下

SELECT * FROM TableA
WHERE Col1 LIKE '[TB]est%' --查詢出來以 'Test' 開頭或 'Best' 開頭的資料

在一些情況下, 善用這個方式, 就不用一直 LIKE OR LIKE 了

2010年8月26日 星期四

ASP Function Variable

最近 ASP 自訂 Function 的結果不如預期
測了一下, 發現是 Variable 的問題
所以記錄一下

<%
   function BadFunction(a)
      Dim a1
      a1 = a
      a1 = a1 + 1
      BadFunction = a
   end function

   function GoodFunction(a)
      Dim a1
      a1 = a + 1
      GoodFunction = a1
   end function

   Variable_Bad = 2
   Variable_Good = 2
   response.write "Variable_Bad : " & Variable_Bad & "<br>"
   response.write "BadFunction : " & BadFunction(Variable_Bad) & "<br>"
   response.write "Variable_Bad : " & Variable_Bad & "<br>"
   response.write "Variable_Good : " & Variable_Good & "<br>"
   response.write "GoodFunction : " & GoodFunction(Variable_Good) & "<br>"
   response.write "Variable_Good : " & Variable_Good & "<br>"
%>

輸出如下:
Variable_Bad : 2
BadFunction : 3
Variable_Bad : 3                      ---> function 外的變數也被改變了
Variable_Good : 2
GoodFunction : 3
Variable_Good : 2

依結果看來
變數似乎是傳址 (Call by address), 而非傳值 (Call by value)
以致於如果 function 內直接對 input 變數做任何異動時
function 外的變數也會隨之改變

所以最好宣告另一個變數, 儲存 input 變數處理後的結果
不要直接處理 input 變數...