On 2013-10-03 19:07, bob gailer wrote:
On 10/3/2013 9:52 PM, Alex Kleider wrote:
The following class method
"""
def insert(self, DataBase=DataBase, Table=Table):
"""
Insert instance of ClassMate into <DataBase> <Table>.
"""
with sqlite3.connect(DataBase) as con:
cur = con.cursor()
row = \
('NULL', self.first, self.last, self.partner,
self.address, self.phone, self.email, )
directive = "INSERT INTO %s VALUES ?;" % (Table, )
cur.execute(directive, row)
"""
gives the following error:
"""
Traceback (most recent call last):
File "./v_temp.py", line 155, in <module>
go_on.insert()
File "./v_temp.py", line 70, in insert
cur.execute(directive, row)
sqlite3.OperationalError: near "?": syntax error
"""
(explanation: 'go_on' is an instance of my class in the __main__)
It was working fine when I was using string formatting but I can't
seem to get the syntax right using the qmark method which the
documentation suggests is the better way to do it.
Can anyone spot what should be changed?
Try: directive = "INSERT INTO %s VALUES (?,?,?,?,?,?,?);" % (Table, )
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor
Thanks, I discovered that when I went I read further in the
documentation.
This is the part that lead me a stray:
"""
# Larger example that inserts many records at a time
purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
('2006-04-06', 'SELL', 'IBM', 500, 53.00),
]
c.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)
"""
I made the incorrect assumption that individual question marks
represented tuples, (as they do here with 'executemany') but I guess not
so with 'execute'.
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor