Hi,

I am new to SQL and SQLite, so please excuse me if I appear thick at
times.

I have an application that generates data from a moving vehicle.  At a
position there may be 10s of pairs of data.  Position is given as an
integer, and the data pairs are an integer and a float (real).  So I set
up a database like this (in Tcl);

db eval {CREATE TABLE position(\
                position_id INTEGER PRIMARY_KEY, \
                odo INTEGER, \
                time CURRENT_TIMESTAMP);}

db eval {CREATE TABLE data(\
                data_id INTEGER PRIMARY_KEY, \
                position_id INTEGER, \
                x INTEGER, \
                y REAL);}

So far so good.  Now I have a heap of stored data in a binary file, that
I use to insert into the tables, with statements like;

db eval {BEGIN;}

# loop reading in file...
while {..} {

#when a new odo value is read...
db eval {INSERT INTO position(odo) values($odo);} 
set pos_id [db eval {SELECT last_insert_rowid();}]

#for every data pair
db eval {INSERT INTO data(position_id, x, y) values($pos_id, $x, $y);}

}

db eval {COMMIT;}

There are no errors returned.  Now I try a couple of queries, which
return data, but not quite what I expect.

#This kinda works as expected, but position_id and time columns are not
#poulated.  Why not?
db eval {SELECT * FROM position WHERE ROWID BETWEEN 100 AND 101;}

#This does not work, returns nothing.  I thought (after reading the
#SQLite doco) that position_id would be populated with ROWID...
db eval {SELECT * FROM position WHERE position_id BETWEEN 100 AND 101;}

#This kinda works, but data_id is not populated...
db eval {SELECT * FROM data where position_id BETWEEN 100 AND 101;}

#A more complicated query...runs quite slowly.  How can this be sped up?
db eval {SELECT position.odo, data.x, data.y from position, data WHERE
position.odo BETWEEN 10000 AND 10020;}

Is SQLite going to be able to handle, say, 2,000,000 data pairs, and say
60,000 positions, efficiently and quickly?

How can I help SQLite perform queries like the last above, as fast as
possible?

Regards,
James.


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to