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

Reply via email to