有一個排序問題, SQL陳述句是 select work_years from workers
然后執行時想對 work_years 排序,代碼為
cds1.Close;
cds1.Open;
cds1.IndexFieldNames := 'work_years';
但是顯示的結果卻是
1
10
11
12
2
20
3
我想顯示的結果是
1
2
3
10
11
12
20
現在不能改SQL陳述句,請問怎么處理代碼能得到以上排序的結果呢?
uj5u.com熱心網友回復:
在取得資料后,加入索引(記憶體中的)按鈕事件中加入代碼:
ClientDataSet1.AddIndex('a','work_years',[],'','',0);
ClientDataSet1.IndexName:='a';
uj5u.com熱心網友回復:
前面顯示的是按字串排序的效果,后面是整數排序效果。如果不改SQL的那就改表,把work_years欄位改為整數型別。要顯示整數排序一定在某個步驟變成整數型別。uj5u.com熱心網友回復:
work_years欄位型別應該是字串。它的排序,就是首字符排序,再第二字符排序。建議:
1、work_years欄位型別修改為int
2、如果不改欄位型別,可以修改欄位的值,一個字符前面加“0”字符。
當然,比較好的辦法是:work_years欄位型別修改為 int
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/59144.html
標籤:VCL組件開發及應用
