首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

VC6.0 ADO Access 查詢 ORDER BY 中文欄位名不生效:特殊字元與型別陷阱

     編輯:程式設計綜合問答

問題 SQL

CString SQL = "SELECT TOP 1 * FROM employees ORDER BY [廢鋼重/t] DESC";

未按 廢鋼重/t 數值降序排列。

原因分析

  1. 欄位資料型別為文字:若欄位型別為 Text,排序依字典序('10' < '9'),而非數值序。需確認欄位為 Number/Currency。
  2. 特殊字元需方括號:中文、斜線 / 屬特殊字元,[廢鋼重/t] 寫法正確。
  3. 建議重命名欄位:改為純英文無特殊字元(如 ScrapWeightPerTon),避免編碼、驅動程式相容性問題。

驗證步驟

  1. 在 Access 中直接執行該 SQL,觀察排序結果。
  2. 若 Access 正確、VC 不正確,檢查 ADO 遊標類型/鎖定類型(adOpenStatic, adLockReadOnly)。
  3. 嘗試 ORDER BY VAL([廢鋼重/t]) DESC 強制轉數值(Access 支援 VAL())。

最佳實踐

  • 資料庫設計階段強制英文欄位名、無保留字、無特殊符號。
  • 數值運算欄位嚴禁用 Text 型別。
  • VC6.0 早已停止支援,建議遷移至 VS2019+ + ADO.NET / Entity Framework。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved