[APSW] SELECT COUNT(*) not succesfull?

Gilles Ganault nospam at nospam.com
Wed Oct 22 18:31:46 CEST 2008


Hello

I'm trying to use the APSW package to access a SQLite database, but
can't find how to check if a row exists. I just to read a
tab-separated file, extract a key/value from each line, run "SELECT
COUNT(*)" to check whether this tuple exists in the SQLite database,
and if not, run an INSERT.

The problem is that "if not row" isn't run:

==========
import apsw

connection=apsw.Connection("test.sqlite")
cursor=connection.cursor()

data = {}

f = open("data.tsv", "r") 
textlines = f.readlines()
f.close()

p = re.compile('^(\d+)\t(\d+)$') 
for line in textlines:
	m = p.search(line)
	if m:
		data[m.group(1)] = m.group(2)

for (key,value) in data.items():
	sql = "SELECT COUNT(*) FROM mytable WHERE key='%s'" % key
	row=cursor.execute(sql)

	#Why not run?
	if not row:
		print "Row doesn't exist : %s" % key
		sql = "INSERT INTO mytable (key,value) VALUES ('%s',%u)" %
key,value
		cursor.execute(sql)

connection.close(True)
sys.exit()
==========

Any idea what's wrong with the above?

Thank you.



More information about the Python-list mailing list