[英]VB6 ADO recordset fieldname case sensitivity depends on Windows language settings
我有一個連接到訪問數據庫的 ado 記錄集。 我有一個 SELECT * 查詢。 我訪問字段為:
rs!ROMRightMinX
rs!ROMRightMaxX
rs!ROMRightMinY
rs!ROMRightMaxY
當我將 Windows 切換到匈牙利語時,rs!ROMRightMinY 中的 nY 組合變得區分大小寫。 意義
rs!ROMRightMinY Displays value
rs!ROMRightMInY Displays value
rs!ROMRigHTMinY Displays value
rs!ROMRightMiny Field not found
rs!ROMRightMiNy Field not found
rs!ROMRightMiNY Field not found
其他字段正常工作。 同樣rs!ROMLeftMinY
也有同樣的問題。 我已將該字段重命名為rs!ROMRightMiYY
,它不再區分大小寫。
所有字段在其他 Windows 語言中都能正常工作。
有什么想法嗎?
表名和字段名的大小寫敏感性因數據庫系統而異。 SQL92 規范說不帶引號的標識符應該不區分大小寫。 但是,帶引號的標識符應該區分大小寫。
如果您無法控制基礎記錄源中字段名稱的大小寫,請將 SELECT 查詢更改為如下所示:
SELECT ROMRightMinX AS [ROMRightMinX], ROMRightMaxX AS [ROMRightMaxX],
ROMRightMinY AS [ROMRightMinY], ROMRightMaxY AS [ROMRightMaxY] ...
(引用可能因系統而異,我這里用的是[])
這樣,底層列獲得不區分大小寫的匹配,但返回的列區分大小寫,因此它們應該與您在所有語言環境中的代碼匹配。
我的猜測是因為匈牙利語中的NY
是一個有向圖。 它與您所描述的行為相對應。 Ny
, ny
和NY
被理解為一個字母(齶鼻音 [ɲ])。 NX
不是匈牙利語中的有向圖,因此它按您的預期工作。
只是為了好玩,嘗試使用其他匈牙利有向圖: cs
、 zs
、 gy
、 ly
、 ny
、 ty
、 dz
、 sz
和dzs
字母dzs
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.