PRB: ADO Recordset Field Name with Letter "i" Is Case-sensitive with Turkish Settings (279651)
The information in this article applies to:
- Microsoft Data Access Components 2.5
- Microsoft Data Access Components 2.5 SP1
- Microsoft Data Access Components 2.6
- Microsoft Data Access Components 2.7
This article was previously published under Q279651 SYMPTOMS When you reference the fields of an ActiveX Data Objects
(ADO) Recordset by name, for example, rs.Fields("ProductID").Value, in code
that is running on a computer with Turkish regional settings, and those field
names contain the letter "i" or "I", the evaluation of those field names may
fail at run time. If the case of the letter "i" does not match the case of the
field name in the database itself, you may receive the following error message:
Runtime error 3265, Item cannot be found in the
collection corresponding to the requested name or ordinal. Although
this behavior is most commonly seen with Recordset field names, it also occurs
with any other database object names (for example, table names) that are used
as strings in ADO client code. This problem does not occur in
Microsoft Data Access Components (MDAC) version 2.1. CAUSE This problem occurs because the Turkish alphabet has two
distinct letters that resemble the dotted and undotted letter "i". Beginning
with MDAC 2.5, ADO treats the English lowercase letter "i" as a different
Turkish letter than the English uppercase letter "I". This gives the impression
of a case-sensitive comparison where a case-insensitive string comparison is
expected. RESOLUTION To resolve this problem with Turkish regional settings,
make sure that database object names that are used as strings in ADO code
correspond to the case of the letter "i" that is used in the database itself.
REFERENCES For more information on various localization issues that
involve the Turkish letter "i", see the following Microsoft Web site:
Modification Type: | Major | Last Reviewed: | 11/5/2003 |
---|
Keywords: | kbDatabase kbprb KB279651 |
---|
|