分類
Database

查詢SQL Server中Table是否有Primary Key

資料庫中的 table, 大家都知道 primary key對 table的效能影響很大, 沒有主鍵的 table, 對於一般在程式實作時會有一定的困難, (某些狀況下例外, 例如 log), 尤其是在更新列時, 沒有 primary key時的時候, 效能根本是很糟糕的, 更危險的是可能會有資料本身邏輯上的問題. 今天我們不是來探討 primary key 的重要性, 而是找出資料庫中, 沒有 primary key 的 table.

其實很簡單地可以利用 sysobjects 這個系統表來查詢, 簡單描述如下, 我們利用 sysobjects 對自已對照, 並利用 parent_obj 這個欄位來串接起來自已對應自己的查詢, sysobjects 內有 table, view, primary key (index), 等資訊, 而我們就利用這樣的方式來進行查詢, 整理好的查詢如下:

分類
懶得分類

如何在ASP內判定BIG5碼中文字

大多數的 asp 應用程式若是在 utf-8 模式下開發, 前面多會有這麼一行:

<%@LANGUAGE=”VBSCRIPT” CODEPAGE=”65001″%>

然而有個很麻煩的事是在處理判定 BIG5 編碼的中文字. 在正常的狀況下, 應該不會用到這樣的功能, 因為無論是 BIG5 或非 BIG5 的中文字都是可以在 UTF-8 的環境下良好並存的, 但若是和一些舊的程式或其他異質環境介接, 就會遇到這種問題, 解決的方式是利用 asp 的 codepage 來轉換內碼後判定即可. 方式如下:

Function IsBig5(strChar)

    ' check A440~C67E 常用字, C940~F9D5 次常用字

    session.codepage="950"
    Dim lngAsc
    lngAsc = Asc(strChar)
    IsBig5 = (lngAsc >= -23488 And lngAsc <= -14722)
    If Not IsBig5 Then IsBig5 = (lngAsc >= -14016 And lngAsc <= -1579)
    session.codepage="65001"
End Function
分類
Database

x64下odbc建立問題

今天在處理一個 odbc 建立在 x64 (64bit) server 2003 上的狀況, 狀況十分奇妙, 一般我們在設定 odbc 時, 是直接使用 [系統管理工具] 裡的 odbc 來進行設置, 當我設置好了之後, 有趣的事發生了, 居然透過 odbc 連接 db 的程式有個這樣的 exception:

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

如此一來設置好的 odbc 就形同虛設, 查了半天也查不出原因, 後來在 google 上找到一篇 citrix 的 kb (link) 試了一下, 居然就好了, 可以找得到了, 仔細檢查一下原因, 整理如下:

在 x64 內透過 ui 建立的 odbc 是 64bit 的 odbc, 而原來執行的程式若是 32bit 的話, 是看不到這組 odbc 的, 也就是說 odbc 也是有區分 64bit / 32bit 的. 如何判斷原來 ui 上的 odbc 是 64bit 的呢, 我們看一下畫面截圖:

分類
懶得分類

好好玩的手機特效鏡

剛在逛博客來時, 不小心發現了這個好玩的東東, 手機鏡頭, 如同一般數位相機, 這種鏡頭是外接在手機上面的, 看了一下, 其實價格不貴, 而且又是 kenko 的, 十分有趣, 在這裡介紹給大家看看囉!

這是廣角鏡:

https://addons.books.com.tw/G/N00/4/N000021044.jpg

可以做出這樣的效果:

http://219.84.164.83/G/CD/item/Accessory/Kenko/MPL-WA/3.gif

另外有偏光鏡, 近攝鏡, 側拍鏡, 等好玩的鏡頭, 其中還有一個三菱鏡很特別:

https://addons.books.com.tw/G/N00/1/N000020931.jpg

可以拍出這樣的特效耶:

http://219.84.164.83/G/CD/item/Accessory/Kenko/MPL-3MH/3.gif

真的是很特別哦!
其他有趣的鏡頭可以參考這頁: link