簡體   English   中英

VB6 ADO 記錄集字段名區分大小寫取決於 Windows 語言設置

[英]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 , nyNY被理解為一個字母(齶鼻音 [ɲ])。 NX不是匈牙利語中的有向圖,因此它按您的預期工作。

只是為了好玩,嘗試使用其他匈牙利有向圖: cszsgylynytydzszdzs字母dzs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM