Re: pysqlite - Checking the existance of a table

2005-06-19 Thread Dave Cook
On 2005-06-17, rh0dium [EMAIL PROTECTED] wrote:

 I am starting to play with pysqlite, and would like to know if there is
 a function to determine if a table exists or not.

sqlite_master has already been mentioned, so I'll point out some useful
pragmas (under Pragmas to query the database schema):

http://sqlite.org/pragma.html

Dave Cook
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pysqlite - Checking the existance of a table

2005-06-18 Thread Cousin Stanley
| I am starting to play with pysqlite,
| and would like to know if there is a function
| to determine if a table exists or not.

rh0dium 

   One way to get at a list of table names
   in an SQLite data base is to query
   the  sqlite_master  table 


import sys
import sqlite

this_db  = sys.argv[ 1 ]

list_sql = [ select tbl_name ,
  from   sqlite_master ]

str_sql  = '\n'.join( list_sql )

dbc  = sqlite.connect( db = %s % this_db )

curs = dbc.cursor()

curs.execute( str_sql )

list_tables = curs.fetchall()

print '\nTable Names in SQLite DB  %s \n' % ( this_db )

for table_name in list_tables :

 print %s  % ( table_name )

print

dbc.close()


-- 
Stanley C. Kitching
Human Being
Phoenix, Arizona

== Posted via Newsfeeds.Com - Unlimited-Uncensored-Secure Usenet News==
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ 
Newsgroups
= East and West-Coast Server Farms - Total Privacy via Encryption =
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pysqlite - Checking the existance of a table

2005-06-18 Thread Gerhard Häring
rh0dium wrote:
 Hi all,
 
 I am starting to play with pysqlite, and would like to know if there is
 a function to determine if a table exists or not.

You can try to access the table in a try-catch block, something like:

cur.execute(select * from tablename where 1=2)

and check if it fails.

Or you can query the sqlite_master table (don't know any specification 
off-hand, but it contains the schema information).

Instead of doing a select on sqlite_master, you can use pragma 
table_info, which returns information for each column in the table, 
and, apparently, an empty list if the table does not exist:

  cur.execute(pragma table_info(foo))
  print cur.fetchall()
[(0, u'bar', u'integer', 0, None, 0)]

  cur.execute(pragma table_info(foo_does_not_exist))
  print cur.fetchall()
[]

HTH,

-- Gerhard
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pysqlite - Checking the existance of a table

2005-06-18 Thread Peter Hansen
Gerhard Hring wrote:
 Or you can query the sqlite_master table (don't know any specification 
 off-hand, but it contains the schema information).

Item #9 in the FAQ (http://www.sqlite.org/faq.html#q9) shows it as:

CREATE TABLE sqlite_master (
   type TEXT,
   name TEXT,
   tbl_name TEXT,
   rootpage INTEGER,
   sql TEXT
);


-Peter
-- 
http://mail.python.org/mailman/listinfo/python-list


pysqlite - Checking the existance of a table

2005-06-17 Thread rh0dium
Hi all,

I am starting to play with pysqlite, and would like to know if there is
a function to determine if a table exists or not.


Thanks

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: pysqlite - Checking the existance of a table

2005-06-17 Thread Matthias Kluwe
Simply use the internal table SQLite_Master:

select name from SQLite_Master

will return all existing tables.

Regards,
Matthias

-- 
http://mail.python.org/mailman/listinfo/python-list