線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1641
推到 Plurk!
推到 Facebook!

Delphi 與 SQL Collation 的排序不同

尚未結案
andyclt
一般會員


發表:1
回覆:0
積分:0
註冊:2012-12-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-12-29 13:00:30 IP:61.93.xxx.xxx 訂閱
 最近遇到一個 Delphi 與 SQL Collation 的問題如下, 需要向各位求教 :

SQL 版本 : 2008R2
SQL Collation : Chinese_Traditional_Stroke_Order_100_CI_AS

Delphi 版本 : Delphi 5
Client Side 主機的地區 : 台灣

最初發現的問題是, 在 Delphi Program 介面看見 Grid 的排序與 SQL Stored Procedure 處理的結果不一樣, 後來發現這與 SQL 的 Collation 有關. 在上述的 SQL Server 執行以下的 Statement, 結果是 "Wrong", 需然"-" 的 ASCII 碼是 45, 而 '~' 是 126, 但 SQL (因 Collation 關係) 會排 'a-c' 比 'a~c' 後.

if ('a-c' < 'a~c') select 'Correct' as result else select 'Wrong' as result

上網查看以後, 把 Database 的 Collation 設為 Chinese_Taiwan_Stroke_BIN, 以後排序就正常了, 但這又引申一個問題, 所有 SQL 命令的欄位 (e.g. 欄位名稱是 fldname1, Select FLDname1 便會出錯) 的大小寫都一定要與 table 一樣, 否則便出錯誤.

因為現時系統已很龐大, 要逐一修改 SQL 語句 相當困難. 所以想請教大家, 有沒有什麼簡單一些的方法可以處理. 如 : 可否令 Delphi 以與 SQL Collation 同一排序方式 ?

謝謝各位 !


------
普通人
leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-12-30 00:36:36 IP:111.240.xxx.xxx 訂閱
1.將資料庫的table和欄位名稱都改成大寫
2.修改TQuery(資料庫相關VCL)的Source 將傳進的SQL指令都變成大寫


===================引 用 andyclt 文 章===================
最近遇到一個 Delphi 與 SQL Collation 的問題如下, 需要向各位求教 :

SQL 版本 : 2008R2
SQL Collation : Chinese_Traditional_Stroke_Order_100_CI_AS

Delphi 版本 : Delphi 5
Client Side 主機的地區 : 台灣

最初發現的問題是, 在 Delphi Program 介面看見 Grid 的排序與 SQL Stored Procedure 處理的結果不一樣, 後來發現這與 SQL 的 Collation 有關. 在上述的 SQL Server 執行以下的 Statement, 結果是 "Wrong", 需然"-" 的 ASCII 碼是 45, 而 '~' 是 126, 但 SQL (因 Collation 關係) 會排 'a-c' 比 'a~c' 後.

if ('a-c' < 'a~c') select 'Correct' as result else select 'Wrong' as result

上網查看以後, 把 Database 的 Collation 設為 Chinese_Taiwan_Stroke_BIN, 以後排序就正常了, 但這又引申一個問題, 所有 SQL 命令的欄位 (e.g. 欄位名稱是 fldname1, Select FLDname1 便會出錯) 的大小寫都一定要與 table 一樣, 否則便出錯誤.

因為現時系統已很龐大, 要逐一修改 SQL 語句 相當困難. 所以想請教大家, 有沒有什麼簡單一些的方法可以處理. 如 : 可否令 Delphi 以與 SQL Collation 同一排序方式 ?

謝謝各位 !


系統時間:2017-12-12 20:24:29
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!