pCloud Partner Program

如何移動已存在的SQL Server 2005中的user database

程式技術/Database 2009/03/27 15:43
views: 97443 times
有時候主機的硬碟空間不足或是因為要調整硬碟配置, 會動到資料庫的存放位置, 這裡有一篇 kb 在處理這個作業.

移動使用者資料庫

內容說明蠻詳細的, 我這裡簡單列出操作的方式:

1. 先找出該 db 的所有檔案, 利用以下指令(其中USERDB是假設的使用者資料庫名稱):
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'USERDB')
用戶插入圖片
(基本上至少會有兩個, 一個是放 data 的 mdf, 一個是放 log 的 ldf 檔案的所在位置)

2. 接下來將資料庫先離線:
ALTER DATABASE USERDB SET OFFLINE;
(可能會花一些時間)

3. 再來就是將資料庫的實體檔案搬移到指定位置, 這裡假設是 d:\sqldata\

more..


top

slideshare出mobile版本了

手機大未來 2009/03/25 12:22
views: 77930 times
之前介紹的 slideshare 網站, http://diary.tw/tim/190 已經出了 mobile 版本囉, 雖然還是 beta, 不過可以可以用了呢, 而且也可以直接由 desktop 的 browser 去訪問. 網址在: http://m.slideshare.com
用戶插入圖片


這個功能其實也十分方便, 原來 slideshare 是將簡報放在網路上做分享, 現在再進一步放到手機上來分享, 這個的確十分有用, 可以在外面隨時看自己分享的簡報耶.

我們來看看手機上的長相:
用戶插入圖片用戶插入圖片

雖然小, 不過也非常方便了呢, 給大家參考看看, 基本上, slideshare 是很有用的簡報分享網站, 再加上了手機上的瀏覽應用, 雖然字會小很多, 有時會看不清楚, 不過若是用於示意圖又或是圖片的分圖, 真的是再方便不過了..


top

jQuery traverse元件屬件

程式技術/Javascript 2009/03/19 18:54
views: 109822 times
traverse 是程式寫作上一個還算蠻重要的 runtime information. 尤其在 web 上, jQuery 的概念整個就是建立在這樣概念上. 利用 selector 將要找的東西找出來, 再進行更動或讀取這樣的狀況.

現在利用一個小案例來說明這個 case. 我要找出頁面上所有有 onclick 屬性的 anchor, 並加以標註出來, 語法是這樣的:

$("a[onclick]").addClass("highlight1");

是的, 你沒看錯, 就是這樣一句而已. 這句語法的解釋是這樣的:

1. $("a") 是找出所有的 anchor
2. $("a[onclick]") 是找出所有的 anchor 而且有 onclick 屬性的
3. addClass 就是加上一個 css class

就只是這樣而已. 我們來看看範例吧: http://sample.diary.tw/17/j1.html 其中的 button: [find anchor with onclick attr.] 按下後, 會將有 onclick 屬性的 anchor 用 highlight1 的 lightgreen 的背景色加上, 就很清楚了. 其中只有 f1(), f2() 會呈現出來效果, 而其他的 anchor 沒有下 onclick 屬性的, 都不會被影響.

接下來找出 anchor 的連結屬性, 開頭是 http://www 的, 這個也很有趣, 語法如下:

$("a[href^='http://www']").addClass("highlight2");

也是一樣, 一行搞定, 語法說明如下:

1. $("a[href^='http://www']")是指 anchor 中, href 屬性開頭為 http://www 的.
2. addClass 就是加上一個 css class
(在1.2版時, 還可以使用 @在 href 前, 也就是 @href^='xxx' 這樣, 不過在 1.2 已不推薦使用, 1.3 時已不支援了, 要特別注意 @ 這個符號囉)

一樣來看範例, http://sample.diary.tw/17/j1.html 其中的 button: [find anchor start with http://www] 按下後, 其中開頭為 http://www 的 anchor 會套用 lightblue 的背景色, 是不是很方便呢?

其中的 ^= 是開頭為, 而 $= 是結束為, 而 *= 是含有, 所以若是要找連結為 .pdf 結尾的, 可以使用:

$("a[href$='.pdf']")

再來就是談 traverse 的語法, 其實也很單純, 是利用 each 這個方法, 再利用匿名函數取得陣列代號, 就可以將符合條件的元素陣列逐一列舉出來, 如下:


程式碼說明如下:
1. 先將符合條件的 objects 都放入 elements 陣列
2. 再利用 each 方法, 配合匿名函數, 將 elements 陣列內的 object 的 href 屬性結合成產生的字串訊息
3. 最後再將訊息秀出

參考範例: http://sample.diary.tw/17/j1.html 其中的 button: [traverse anchor start with http://www] 就會將所有開頭為 http://www 的 object 的 href 屬性 alert 出來囉.

相信對於使用 jQuery 的朋友們, 能更清楚整個運作的邏輯..



top

.net下enum列舉與string文字間的轉換

程式技術/.NET 2009/03/18 18:54
views: 81994 times
有時會用到這樣的功能, 就是列舉的名稱和列舉的值做轉換. 這個在 delphi 裡是利用 RTTI (Runtime Type Information)來達成, 在 .net 裡的作法也很單純, 利用 Enum 的 CLASS 方法(靜態方法)就可以做到了.

先來看看由 enum 轉回字串, 是使用 Enum.GetName 方法, 要傳入的是 enum 的 type 及該 enum object 即可, 程式碼如下:



再來是利用 string value 轉入 enum 的方法, 使用 Enum.Parse , 傳入一樣是 enum 的 type, 及傳入 string 的值, 最後有個參數是是否忽略區分大小寫的真值, 範例如下:


其中關於第一個部分, 使用 Enum.GetName 其實可以直接用 fruit1.ToString() 就拿到了, 不過根據這篇文章: http://www.cnblogs.com/smalldust/archive/2007/02/27/384657.html 提到了, 效率不太一樣, 就我個人覺得, ToString() 還是少用吧, 用 GetName 還是比較正規一點, 再加上效率有差的話, 其實還是用 GetName 好.

後面利用 string 轉入 enum 則要注意一下, 若發生找不到的狀況時, 將會有 exception 發生, 這個是需要注意的, 因為本來就有可能會發生這個問題, 要處理好這個部分的程式碼囉.

參考資料:
http://snipplr.com/view/3585/enum-to-string-and-string-to-enum/
http://www.cnblogs.com/smalldust/archive/2007/02/27/384657.html
top

apache deny ip設定

系統技術/FreeBSD/Linux 2009/03/16 12:26
views: 196200 times
想要將 apache 的站台, 拒絕讓某個(某群ip)存取的方式, 有幾個方法, 其中最單純最俱體的方式就是直接利用 <Directory></Directory> 這個 tag 中的限制存取來操作最為單純方便 (當然, 虛擬主機可不行, 可以直接利用 .htaccess 設定該層目錄的存取權限)

一般來設, 設定如下:

<Directory "/usr/home/website1">
    order deny,allow
</Directory>

這樣即可. 就是判斷 deny , 預設為 allow 的條件, 也就是所謂公開站台的設定, 若有要限制某些 ip 存取, 可以這樣下:

<Directory "/usr/home/website1">
   order deny,allow
    deny from 1.2.3.4
    deny from 11.22.33.
</Directory>

其中的 deny from 1.2.3.4 是限制某個單一 ip, 而 deny from 11.22.33. 是指 11.22.33.* 都是拒絕存取的, 如此一來, 便能有效管理不想讓某些 ip (例如爬蟲類或是一些吃資源的 ip, 又或是攻擊的 ip)訪問做好限制.

不過發生了一個有趣的狀況, 也就是之前設了, 發現沒有用, 在多次交叉比對檢查後, 發現是這個原因, 就是在 <VirtualHost> 內的 DocumentRoot 指定為 /home/website1 而在 <Directory> 內的目錄指向是 /usr/home/website1 , 這樣一來, apache 在存取該 website1 的檔案時, 是走 /home/website1 下的檔案, 雖然和 /usr/home/website1 一樣, 不過對 apache 來說卻是不同, 這個要特別注意才行, 否則可能會有設定好的 <Directory> 的限制 ip, 但實際上沒有作用, 原因就有可能發生在這裡了.

又或反過來說, 設定的路徑一定要一致, 而且儘量用完整路徑, 不要用簡化的 link 路徑指向檔案, 也比較容易除錯一些. 所以原則上是這樣的:

<VirtualHost *:80>
    ServerName test.diary.tw
    Document /usr/home/www/test
    .....
</VirtualHost>

<Directory "/usr/home/www/test">
    order deny,allow
    deny from 1.2.3.4
</Directory>

這樣就 ok 啦, 千萬要注意紅字部分要一致的這件事, 否則可能設了沒有作用, 原因就在這裡了..

另外補充一下, 若是這種方式限制存取的話, client 會拿到 403 的存取失敗代碼.

top




Patriot美商博帝 BURST 960G 2.5吋 SSD固態硬碟
TEAM十銓 L5 Lite 3D 1TB 2.5吋 SSD固態硬碟
統一 番茄汁(6入/組)
UNITEK TYPE-C 轉VGA/HDMI/PD充電/HUB 鋁合金多功能轉接器
亞果元素 CASA Hub VH1 Type-C 轉 VGA - HDMI二合一顯示轉接器
realme XT (8G/128G) 6.4吋6400萬畫素 四鏡頭鷹眼猛獸


 Waiting...