SQLServer 的樹狀結構寫法

參考網址

1. 建立樹狀結構範例 TABLE

CREATE TABLE tblDepartments(
DepartmentID int,
DepartmentName varchar(50),
ParentDepartmentID int,
constraint tblDepartments_P0 primary key (DepartmentID)
)


2. 建立測試資料
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(1, 'HR', NULL);
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(2, 'IT', NULL);
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(3, 'Networking', 2);
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(4, 'Development', 2);
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(5, 'ASP.NET Development', 4);
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(6, 'J2EE Development', 4);
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(7, 'C#.NET', 5);
INSERT INTO tblDepartments(DepartmentID, DepartmentName, ParentDepartmentID) VALUES(8, 'VB.NET', 5);



3. 寫出樹狀結構 SQL (若 Branch 為 'Y' 表示是別人的父親(分支))
WITH Hierarchy(DepartmentID, DepartmentName, ParentDepartmentID, HLevel)
AS
(
SELECT DepartmentID
,DepartmentName
,ParentDepartmentID
,0 HLevel
FROM tblDepartments
WHERE ParentDepartmentID is Null
UNION ALL
SELECT SubDepartment.DepartmentID
,SubDepartment.DepartmentName
,SubDepartment.ParentDepartmentID
,HLevel + 1
FROM tblDepartments SubDepartment INNER JOIN Hierarchy ParentDepartment
ON SubDepartment.ParentDepartmentID = ParentDepartment.DepartmentID
)
SELECT M.DepartmentID
,DepartmentName = Replicate('.', M.HLevel) + M.DepartmentName
,CASE
WHEN D.ParentDepartmentID IS NULL THEN 'N'
ELSE 'Y'
END Branch
,M.HLevel
,M.ParentDepartmentID
FROM Hierarchy M Left Outer Join
(SELECT DISTINCT ParentDepartmentID FROM Hierarchy WHERE ParentDepartmentID is Not Null) D
ON M.DepartmentID = D.ParentDepartmentID

在 IE 執行剪貼簿功能

原文網址




如果你想讓使用者按下一個按鈕就把整段文字的內容填入剪貼簿,那麼你或許會想要使用如下的 JavaScript 指令:

CopiedTxt = document.getElementById('myText").createRange();
CopiedTxt.execCommand(”Copy”);

很不幸的,在 IE 瀏覽器中可能不能執行這段指令,它會指出 createRange 這道指令「物件不支援此屬性或方法」。事實上,你光從 Visual Studio 2008 中 JavaScript 的 Intellisense 下面已經找不到物件的 select()、createRange() 或 execCommand() 等方法了,這表示上述方法都並不受到支援。

對於 IE 瀏覽器,你應該使用 JavaScript 的 window.clipboardData.setData() 指令,如下例:

 

<script type="text/javascript" language="javascript">
        function CopyToClipboard() {
            var ite = document.getElementById('myGridView’);
            ite.focus();
            window.clipboardData.setData('Text', ite.innerHTML);
        }
</script>
...
<input name="btnCopyToClipboard" type="button" value="複製" onclick="CopyToClipboard();" />
<div id="myGridView">
        <asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" ShowHeader="true"
        ...
</div>


在這個範例中,當使用者按下「複製」按鈕後,程式會把 GridView 控制項內容完整的複製到剪貼簿裡面去,以方便他/她再貼到 Word 或 Excel 裡。

那麼,如果你是想把剪貼簿裡的資料取出來,那麼可以使用 JavaScript 的 window.clipboardData.getData('Text') 指令。

Windows XP 鎖定電腦的功能那哪裡?

原文網址

Windows XP 若要使用「鎖定電腦」的功能,登入方式就需改為傳統的登入方式(即同時按 CTRL、ALT、DEL)
若使用 XP新創的「歡迎畫面」這一種登入模式的話, 同時按 CTRL、ALT、DEL 就沒有鎖定電腦這一種功能,而是直接叫出工作管理員。

如何變更登入模式?如何取消「使用歡迎畫面」?
* 按「開始」,到「控制台」
*「使用者帳戶」,進入「變更使用者登入或登出的方式」
* 不勾「使用歡迎畫面」,按套用選項。

關閉使用者帳戶視窗、關閉控制台。
現在同時按下 CTRL、ALT、DEL 三鍵,這時就會蹦出如同 Windows 2000 下的 Windows 安全視窗,按「鎖住電腦」鈕,就可以鎖定電腦。

中文的免費還原光碟軟體

本篇文章不知道出處,知道的人請告訴偶,偶再補上企..

分享一個製作中文免費版還原光碟的系統~

Clonezilla - 再生龍還原系統
免費開放原始碼的還原系統,可製作免費還原光碟哦(內建有中文介面)

http://drbl.nchc.org.tw/clonezilla/

大量部署作業系統的時候(不管是微軟Windows或是Linux),用 Norton Ghost
製作成印象擋再複製到每台用戶端是現行最常使用的方法。然而適合用來做大量複製的
Symantec Ghost Corporate
Edition 需要不少的費用,而且電腦越多,費用越高。此外,因為它不是自由軟體,所以靈活度不高,不能自己客製化修改。若是使用
Norton Ghost 又必須一台台的做, 頗為曠時費日。
再生龍Clonezilla提供您一個完整的環境,這是一個整合的系統,包含還原程式以及作業系統。搭配網路開機功能,你可以忘了軟碟或是光碟...
以國家高速網路與計算中心C教室為例,共有41台機器同時進行還原的動作,還原一個5.6
GBytes的微軟Windows XP
image到41台客戶端電腦,以群播(multicast)的方式處理,只要10分鐘左右(若採用unicast的話,約需50分鐘)。

使用Clonezilla Live的理由
提到備份還原軟體,最有名的是賽門鐵克的GHOST,就連許多品牌電腦的還原光碟也是用GHOST來製作的,很多人可能想,我會用GHOST就好了,為什麼要用Clonezilla
Live呢?

我知道GHOST是目前大多數人的選擇,寫病毒的人也知道,去年在大陸肆虐的熊貓燒香病毒就會把硬碟中的GHOST備份檔刪除,許多受害者中毒了系統掛掉,要還原時找不到檔案欲哭無淚…

一、再生龍特點:
自由軟體,國網中心所開發。
可還原再生多種作業系統,包含Linux (ext2, ext3, reiserfs, xfs, jfs), 微軟Windows
(fat, ntfs)
支援GNU/Linux下的LVM2 (尚未支援LVM1)
支援群播(Multicast)。配合PXE網路開機,搭配DRBL的Clonezilla可以使用播(multicast)的方式,適合用來大備份與還原。硬體設備功能足夠時(用戶端支援Wake
on LAN與PXE),可以遠端操作,人不需到現場
不同於Partimage或是ntfsclone只能處理分割區,Clonezilla包含其他程式的撰寫與整合,因此可以備份與複製分割區或是整顆硬碟
Clonezilla對於支援的檔案系統(ext2, ext3, reiserfs, xfs, jfs, fat,
ntfs),只備份有存資料的硬碟空間,因此可以節省備份時間與硬碟空間。其他不支援的檔案系統Clonezilla採用dd的方式處理。
透過本實驗室開發的另外一套自由軟體drbl-winroll,可以指定還原後微軟Windows的主機名稱、工作群組,亦可寫入隨機的SID。
另有單機版免安裝的還原系統Clonezilla Live可以使用
二、再生龍的安裝與使用:


http://drbl.nchc.org.tw/clonezilla/clonezilla-live/


Clonezilla Live對Windows系統的備份與還原

http://hc.cyc.edu.tw/exe/clonezilla_live/

免安裝的單機版還原系統
說明:適合單台電腦備份或是還原
一、版權說明
本文版權屬於全體作者所有,且以 GNU FDL 授權合約發佈。在遵守 GNU FDL
授權合約的情況下,您可以複製、散佈,以及修改本文件。唯請保持作者列表的完整,若您修改過此份文件,也請在作者列表中加入您的大名。
同時請注意本文件沒有任何擔保,若因本文件而產生任何直接或間接的損失,本文作者群均不負任何法律及道義上的責任。

二、作者列表
蕭志榥 (steven _at_ nchc org tw)
黃國連 (klhaung _at_ gmail com)
王順泰 (c00wht00 _at_ nchc org tw)
孫振凱 (ceasar _at_ nchc org tw)
王耀聰 (jazzwang _at_ nchc org tw)
蔡育欽 (thomas _at_ nchc org tw)

三、Clonezilla Live說明
搭配DRBL使用的Clonezilla乃是適合來大量部署作業系統的時候使用,不過這樣的限制是一定要有一台DRBL伺服器,而且要被備份的電腦一定要能網路開機。由於GNU/Linux
Live CD的成熟,將Clonezilla和GNU/Linux Live
CD結合,達成免安裝就能備份還原單台電腦就非常實用。因此,本實驗室結合Debian
Live與Clonezilla,另外開發一個Clonezilla Live套件,專門就是用來單台電腦的還原與備份。Clonezilla
Live可以放在光碟上,或者USB隨身碟等開機媒體。當然,Clonezilla
live這樣的環境就不適合用來大量還原一個電腦教室,而且所能存的印象檔也可能會受限於開機媒體的儲存空間的大小。不過,如果要被備份的電腦可以連接網路,透過網路磁碟機,例如sshfs或是Samba(網路芳鄰),開機媒體的儲存空間大小的限制就可以打破,我們可以直接把印象檔的存取放在網路磁碟機上。

四、如何製作Clonezilla Live
三個方法:
方法一:直接下載來燒到光碟片或是放到USB隨身碟上。
方法二:透過Clonezilla的相關程式來產生Clonezilla
live,把它放在光碟片或是USB隨身碟上,你也可以把一個已經存在Clonezilla伺服器上的image直接透過程式,塞到Clonezilla
live上,這樣,直接用那片光碟片或是隨身碟就可以還原某台機器。
方法三:自己客製化的程式運用在clonezilla live中。

下載點:光碟版和usb版
http://drbl.nchc.org.tw/clonezilla/

製作還原光碟方法:http://drbl.nchc.org.tw/clonezilla/related_article/006_Clonezilla_live_recreate/Tsai_clonezilla_live_recreate_960926.pdf

系統路徑變數

轉貼網址
這在寫批次檔時非常有用,特別是如果系統不是安裝在 C: 時,指定安裝路徑就全部靠這個了。

以下變數在 Win2000 與 WinXP 皆可適用。

系統相關:
%SystemDrive% > C:\
%HomeDrive% > C:\ (同上)
%SystemRoot% > C:\Windows\
%Windir% > C:\Windows\ (同上)
%ProgramFiles% > C:\Program Files\

使用者相關:
%HomePath% > C:\Documents and Settings\user\
%UserProfile% > C:\Documents and Settings\user\ (同上)
%AppData% > C:\Documents and Settings\user\Application Data\
%Temp% > C:\Documents and Settings\user\Local Settings\Temp\
%AllUsersProfile% > C:\Documents and Settings\All Users\