On Fri, Feb 22, 2013 at 4:26 PM, Jim Byrnes <jf_byr...@comcast.net> wrote: > I am cleaning up my code and have a number of sqlite3 execute statements > that extend far past 80 characters. > > From my reading implicit line joining with (), [] or {} seems to be the > preferred method, but > > cur.execute('SELECT Account FROM pwds WHERE Category=? ORDER BY Account > COLLATE NOCASE', cat) > > gives this error: > > jfb@jims1204:~/MyProgs/passwords$ python passwords.py > File "passwords.py", line 50 > cur.execute('SELECT Account FROM pwds WHERE Category=? ORDER BY Account > ^ > SyntaxError: EOL while scanning string literal
Single quoted strings aren't allowed to have line breaks in them. If you have two string literals separated only by whitespace, though, they get joined together, so you could do this: cur.execute('SELECT Account FROM pwds WHERE Category=? ORDER BY Account' 'COLLATE NOCASE', cat) You can also use triple quoted strings instead, which is my preference. Triple quoted strings are allowed to have line breaks, and the whitespace doesn't matter in your SQL query. So I'd do something like this: cur.execute ('''select account from pwds where category = ? order by account collate nocase''', cat) You can break the query up over however many lines it needs to be readable, of course. -- Jerry _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor