Em Sáb, 2005-11-12 às 16:58 +0100, Bogusław Brandys escreveu:
> Luiz Americo Pereira Camara wrote:
> > Em Qui, 2005-11-10 Ă s 14:39 -0600, Matt Henley escreveu:
> > 
> >>Luiz,
> >>
> >>Thanks for the quick response.  I have installed it and it seems to be
> >>okay.  I tried to open a database file generated with SQLite Database
> >>Browser (I think.. it may be SQLiteSpy.. I put them into the same
> >>directory..)  its called World.db3 and its openable by both of the
> >>above programs.  When i try to make the database active in lazarus, I
> >>get the following error:
> >>
> >>Field Type "TEXT" not recognised.  Does this mean that it calls
> >>character data something else? 
> > 
> > 
> > Sqlite is typeless: ignores the type of the field (you can add any name
> > to a field or none).
> > 
> > In the recent versions of TSqliteDataset, if a field type is not one of
> > the used internally (VARCHAR-> String, INTEGER -> Integer, etc ) it will
> > not be loaded (your case). Before it was loaded as a String field. It
> > was done to avoid inconsistencies/ambiquosity. For example, if you have
> > a table with type NUM and you load in fpc/TSqliteDataset, you'd expect
> > to be treated as a Integer or Float field. Other example: you have a
> > field TEXT and expect to be treated as a Memo field. 
> > 
> > I'm finishing an app that converts a table created elsewhere to use the
> > syntax used by TSqliteDataset. I'll post when it's done.
> > 
> > The other solution, if you are creating table outside the class (using
> > CreateTable function), is to name a field using the names recognised by
> > TSqliteDataset: VARCHAR->StringField, the others are straight forward
> > (MEMO ->MemoField, AUTOINC->AutoIncField etc)
> > 
> > FYI: The tables created with the fpc class can be manipulated by other
> > programs without problems. Only ensure that you dont insert incompatible
> > data,e.g. Characters in Integer fields.
> > 
> > Luiz
> 
> Woudn't be better for TSqlitedataset to recognize VARCHAR(X) , CHAR(X),
> NUMERCI(X) and other standard types and revert to string type when it is
> not recognized ?

It would add an overhead without a clear advantage. 
The only drawback i see in the current approach is when you already have
a file with data and you want to use in fpc/TDataset. This situation
will be comtempled with the tool i'm developing.

Please keep in mind somethings:
- VARCHAR(X), CHAR(X), NUMERIC(X), whatever has the same meaning for
sqlite
- Most of the cases an application will create the table structure at
runtime (also can be created inside the Lazarus IDE)
- The table created with fpc/TSqliteDataset.CreateTable can be
manipullated in any sqlite tool

Luiz


_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to