----- Original Message ----
From: Martin Phillips <MartinPhill
...@ladybridge.com>
To: OpenQM <OpenQM@googlegroups.com>
Sent: Thursday, September 4, 2008 5:40:44 AM
Subject: Re: Case
Hi again Eugene,
There are three case sensitivity mechanisms that may be of interest.
1. Case insensitive record ids
I don't think this is relevant to your problem but is worthy of a
quick
discussion anyway.
The QM file system uses case insensitive record ids by default except
for
directory files where case sensitivity depends on the underlying
operating
system. For hashed files, there is an option to choose case
insensitivity in
which case records with ids AA, aa, Aa and aA are all the same.
2. Case insensitivity in the query processor
The query processor is case sensitive by default. The various
operators used
in a selection clause all support the NO.CASE option, for example
LIST CUSTOMERS WITH NAME LIKE NO.CASE "Mr..."
or
LIST VOC WITH TYPE EQ NO.CASE "v"
Note that our implementation truly is case insensitive unlike the
unusable
version recently added to UniVerse where it simply translates what you
type
to upper case and compares with the data as stored in the record. The
first
example above would find "MR JONES" but not "Mr Jones". (I have moaned
to
IBM who admitted that it does seem to be wrong).
The OPTION QUERY.NO.CASE command can be used to make the query
processor
case insensitive by default.
3. Case insensitivity in QMBasic
The $NOCASE.STRINGS compiler directive (or its equivalent in the
$BASIC.OPTIONS record) can be used to make string comparisons case
insensitive.
Martin Phillips
Ladybridge Systems Ltd
17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB
+44-(0)1604-709200