程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server 的語言設置

SQL Server 的語言設置

編輯:關於SqlServer

MySQL的中文亂碼問題是很有名的,簡單的解決辦法是查詢前先執行 SET NAMES ''utf8''。

以前一直都在本機上調試SQL Server的程序,沒遇到過什麼奇怪的問題,但是這兩天發現一個程序在本地運行的很正常,而且都是簡單的數據庫操作,但換到另一台電腦上,一涉及到時間的語句執行就會出錯,用事件探查器跟蹤下來,發現出錯的信息是:
Error 242, Serverity : 16, State : 3

網上找的結果是:http://www.derkeiler.com/Newsgroups/microsoft.public.sqlserver.security/2004-07/0308.Html
時間格式出錯。並且舉出例子,執行以下語句時會重現這個錯誤:

set language us_english
declare @k datetime
set @k=''25/07/2004''

再用事件探查器跟蹤安全審核,其中的Audit Login事件,發現在連接時,有這樣的連接信息:
-- network protocol: LPC

set quoted_identifIEr on

set implicit_transactions off

set cursor_close_on_commit off

set ansi_warnings on

set ansi_padding on

set ansi_nulls on

set concat_null_yIElds_null on

set language romana
set dateformat ymd

set datefirst 7

其中的 set language romana 不是中文,可能問題就在這裡。再用查詢分析器登錄一下,裡面的語句是:
set language 簡體中文

這樣看那只要在程序裡設置一下,應該就沒有問題了。
程序是用 Delphi 裡的ADO做連接,可以設置高級參數,其中的Current Language,設成 簡體中文。為了保險,同時程序裡還有動態創建連接的部分,索性在所有連接數據庫的地方,連接完成後,都執行一下這個語句,再運行程序就正常了。 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved