2011年7月1日 星期五

MSSQL 不支援此種介面 (No such interface supported)

下面要分享的是解決問題的過程和方法.

今天發生客戶的主機, 無法進行全文檢索的指令, 在執行SQL 指令後, 會發生
"不支援此種介面" (No such interface supported) 的錯誤.




這個問題, 似乎在2年前我有處理過, 由於都沒有留下文件, 而且年代久遠已經完全忘記發生過什麼事情及如何解決, 所以重新再處理一次.

■ step 1: 先用中文字 google 看看, 發現都沒有相關的文章.

■ step 2: 改用英文字 google 看看, 看了很多篇, 似乎也無解.

■ step 3: 縮小 google seareh 的範圍, 加入 /site:microsoft.com , 似乎也無解.

■ step 4: google 無效, 改成比較正式機與測試機間的差異. 開始提出可能的假設.

■ step 4.1: 由於客戶給的Database 主機是給一般的 user 帳號, 所以很多指令無法執行, 先假設是權限造成. 請客戶用管理員帳號, 重建一次全文目錄, 結果還是一樣, 會出錯, 所以排除是權限因素.

■ step 4.2: 測試看看, 使用不同語言的詞庫來斷詞, 看看是否能成功. 結果可以, 但由於詞庫不合, 用英文來斷中文字, 會查不出資料. 可以確定原因之一是: 是中文繁體斷詞出錯.

■ step 4.3: 檢查測試機與正式機上面斷詞的相關參數, 發現 classid 不一致.

v12.0 版就是使用 SQL server 2005 的斷詞 classid 應該是:
954F1760-C1BC-11D0-9692-00A0C908146E

v2.0 就是不斷詞 classid 應該是:
1680E7C3-9430-4A51-9B82-1E7E7AEE5258


■ step 5: 請客戶設定 class id 後, 重啟 SQL Server 服務, 就大功告成, 正常運作了.

沒有留言:

張貼留言

Facebook 留言板