Subject Re: [IBO] Mixed case table & field names.
Author Helen Borrie
At 09:14 AM 4/04/2003 +0000, you wrote:
>Hi all.
>
>I'm trying to write an IBO broker for Instant Objects (see
>www.seleqt.com). Instant Objects brokers take care of interfacing the
>persistence layer with any particular DB. I have one almost working,
>but only if I let Interbase create the tables using upper case names
>for the tables and the fields.
>(e.g. Table Contact becomes CONTACT and field Contact.Name becomes
>CONTACT.NAME -> CREATE TABLE CONTACT (NAME varchar(50)...))
>If I use the provided IBX broker, it creates tables with mixed case
>names for both the table and the fields. (e.g. Contact.Name -> CREATE
>TABLE "Contact" ("Name" varchar(50)...)
>What I would like is to have case sensitive field names using IBO so I
>can test my IBO broker using an Interbase DB that is already in
>production and was created with the original IBX broker.
>So far, by overriding the CreateTable method of the TIBOTable
>component, I'm able to create the DB in that way.
>But when trying to retrieve data, it doesn't work. After debugging a
>little, it seems that the underlying native IBO components set all the
>field names to upper case in their internal SQL.
>Does anyone know a way to access a DB that has mixed case field names?
>Btw, I'm using the TDataset IBO components (ver 4.2i).

Gerard,
If the columns were *created* with double-quoted identifiers, then they are
forced by the server to be case-sensitive. This means that you must
*always* provide the double-quotes in all references (in SQL statements,
automatic parameter names, etc.) and use the case-sensitive-correct
characters. IBO only uppercases case-insensitive identifiers.

Helen