Re: [sqlite] Problem when asking for databases that don't exist

2005-04-09 Thread Ken & Deb Allen
To determine whether a specific database exists, check to see if the 
file exists before calling sqlite3_open(), using stat() or some other 
call.

To determine if a specific schema exists within an open database, use 
the query "SEELCT COUNT(*) FROM sqlite_master WHERE type = 'table' AND 
name IN ('Table12', 'Table2', ...)" and check that the resulting count 
is the expected value.

-ken
On 9-Apr-05, at 6:18 AM, Jochen Müller wrote:
Hello!
I am new to SQL and have a simple question concerning sqlite. I am 
using the functions sqlite3_open, sqlite3_get_table and 
sqlite3_free_table and sqlite3_close.

Because i do not yet know how to check whether a database exists or 
not, i always call the sqlite3_get_table function. If it returns an 
error, the database probably not exist. But if this function returns 
an error, all further calls to sqlite3 fail. In detail:

sqlite3_open(...)
sqlite3_get_table(...)
copy the columns to a string grid if sqlite3_get_table(...) succeeded
sqlite3_free_table(...)
sqlite3_close(...)
The first time sqlite3_get_table(...) fails, no further starts of this 
sequence work. I get no errors when executing the statements, but 
there's no table sqlite3_get_table copies to the given pointer 
variables.

There would be two solutions to my problem. I have to check first if a 
database exists or i have to make sqlite keep on working after 
sqlite3_get_table fails.

Sorry for my poor english.
Regards,
  Jochen




[sqlite] Problem when asking for databases that don't exist

2005-04-09 Thread Jochen Müller
Hello!

I am new to SQL and have a simple question concerning sqlite. I am using the 
functions sqlite3_open, sqlite3_get_table and sqlite3_free_table and 
sqlite3_close.

Because i do not yet know how to check whether a database exists or not, i 
always call the sqlite3_get_table function. If it returns an error, the 
database probably not exist. But if this function returns an error, all further 
calls to sqlite3 fail. In detail:

sqlite3_open(...)
sqlite3_get_table(...)
copy the columns to a string grid if sqlite3_get_table(...) succeeded
sqlite3_free_table(...)
sqlite3_close(...)

The first time sqlite3_get_table(...) fails, no further starts of this sequence 
work. I get no errors when executing the statements, but there's no table 
sqlite3_get_table copies to the given pointer variables.

There would be two solutions to my problem. I have to check first if a database 
exists or i have to make sqlite keep on working after sqlite3_get_table fails.

Sorry for my poor english.

Regards,
  Jochen