消失的空間

前幾個星期Windows突然通知我說系統空間不足,我一看才發現,C槽竟然只剩下10MB不到的空間,問題是我明明就記得還有20幾G的容量,怎麼可能會用光了。但奇怪的是當我全選所有的檔案是,包含所有的系統隱藏檔在內只用了19G,也就是有20G的空間就這樣憑空消失了。
繼續閱讀 “消失的空間"

資料庫分頁 (續)

上一篇中提到像SQL Server、DB2 AS400只能做到Top n,但還是可以透過一些小技巧來變相地達成類似分頁的效果,而不用一股腦地把資料全部抓出來。
以會員列表來說,如果是一頁要顯示20筆資料,按照姓名排序,則可以透過如下的語法:

SELECT TOP 20 ID, CNAME, EMAIL
FROM MEMBERS
WHERE CNAME > 'Yanni'
ORDER BY CNAME

其中的 “Yanni" 這個值則是目前顯示頁中最後一筆資料姓名欄位的值,在按下「下一頁」的同時當成參數傳過去,這樣就可以選出之後的20筆資料了。

不過這個方法就沒辦法實作出「到n頁」的功能了 🙁

資料庫分頁

為了在程式中加上一個基本的分頁功能,找了些資料後發現許多的實作方式都是將所有付合條件的資料select出來後,再於程式中計算顯示。但這麼一來,資料量一大時,勢必會浪費許多不必要的記憶體空間與網路頻寬,但如果資料庫本身有支援offset的話,其實從資料庫層來實作是比較好的方法。剛好Masu提醒了我,其實Hibernate裡就有實作出分頁的功能,所以我就trace了一下Hibernate的source code,整理出常用資料庫實作分頁的語法。
繼續閱讀 “資料庫分頁"

CSS Box Model

愈玩CSS就覺得愈神奇愈複雜,簡單的幾句語法就可以產生許多千變萬化的效果。不過對初學者來說,卻也常常恍若陷入迷霧之中不知所措。CSS的Box Model就是常令初學者頭大的模型之一,什麼border、margin、padding的,往往教了再教學生還是迷迷糊糊的。網路上有位老兄做了個很酷的CSS Box Model Demo,看過後就真的是一目瞭然了!