Never been to DZone Snippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world

Simplify using SQL in pys60 (See related posts)

I wrote a similar snippet a while ago.
This one add a select_all function and try/except for type 16 (long varbin).
import e32db
db = e32db.Dbms()
dbv = e32db.Db_view()
db.open(u'C:\\system\\data\\bookmarks1.db')

def select_row(query):
    dbv.prepare(db, unicode(query))
    dbv.first_line()
    dbv.get_line()
    result = []
    for i in range(dbv.col_count()):
        try:
            result.append(dbv.col(i+1))
        except:    # in case coltype 16
            result.append(None)
    return result

def select_all(query):
    dbv.prepare(db, unicode(query))
    dbv.first_line()
    rows = []
    for i in range(dbv.count_line()):
        dbv.get_line()
        result = []
        for i in range(dbv.col_count()):
            try:
                result.append(dbv.col(i+1))
            except:    # in case coltype 16
                result.append(None)
        rows.append(result)
        dbv.next_line()
    return rows

Now I can simply call
>>> select_row('SELECT * FROM Favourites')  # 1 row
>>> select_all('SELECT * FROM Favourites')  # all rows

For non-select SQL, you can simply use db.execute(query).

You need to create an account or log in to post comments to this site.


Click here to browse all 4861 code snippets

Related Posts