KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q62055: QBX ISAM Capitalizes the Field Names of a Table in an .EXE

Article: Q62055
Product(s): See article
Version(s): 7.00
Operating System(s): MS-DOS
Keyword(s): ENDUSER | SR# S900508-29 | mspl13_basic
Last Modified: 22-MAY-1990

Microsoft BASIC Professional Development System (PDS) version 7.00
ISAM behaves in a slightly different manner in the QBX.EXE environment
than when compiled. In a compiled program, when a database is created,
the ISAM engine capitalizes all field names in the TYPE used to create
the table. In the QBX.EXE environment, the ISAM engine leaves field
names in whatever case they were coded in. This slight difference in
behavior of the ISAM engine should not cause any problems in ISAM.
BASIC variable names are not case sensitive. This includes the
variable names used to create and access ISAM tables and indexes.

This information applies to Microsoft BASIC PDS version 7.00 for MS-DOS.

The following program displays this behavior. Run the program in the
QBX.EXE environment, then use the ISAMPACK.EXE utility on the file the
program creates. ISAMPACK.EXE displays the structure of the database
as it repairs the file. It also shows the case on all tables, fields
in the table, and indexes. Compile the program, run it, and use
ISAMPACK to display the database structure again. This shows the
difference in the case of the field names.

This difference occurs no matter how ISAM is used. ISAM can be used
in four different ways: PROISAM(d) TSR with or without the run-time
module; linked directly into the program itself; or linked into the
run-time module. All forms of accessing the ISAM engine behave the
same way.

Code Example
------------

    TYPE table
        Field1      AS LONG
        Field2      AS LONG
        Field3      AS LONG
    END TYPE
    ' Check if the table already exists. If so, delete it.
    IF (DIR$("db1.mdb") <> "") THEN
        DELETETABLE "db1.mdb", "Table1"
    END IF
    OPEN "db1.mdb" FOR ISAM table "Table1" AS 1
    CREATEINDEX 1, "Idx", 1, "Field1", "Field2", "Field3"
    CLOSE
    END

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.