sqlobject: для этого потока или процесса не определено соединение - PullRequest
0 голосов
/ 09 июня 2010

Я использую sqlobject в Python.Я подключаюсь к базе данных с помощью

conn = connectionForURI(connStr)
conn.makeConnection()

Это успешно выполняется, и я могу выполнять запросы на соединение:

g_conn = conn.getConnection()
cur = g_conn.cursor()
cur.execute(query)
res = cur.fetchall()

Это работает как задумано.Однако я также определил некоторые классы, например:

class User(SQLObject):
    class sqlmeta:
        table = "gui_user"
    username = StringCol(length=16, alternateID=True)
    password = StringCol(length=16)
    balance = FloatCol(default=0)

Когда я пытаюсь выполнить запрос, используя класс:

User.selectBy(username="foo")

Я получаю исключение:

...
  File "c:\python25\lib\site-packages\SQLObject-0.12.4-py2.5.egg\sqlobject\main.py", line 1371, in selectBy
    conn = connection or cls._connection
  File "c:\python25\lib\site-packages\SQLObject-0.12.4-py2.5.egg\sqlobject\dbconnection.py", line 837, in __get__
    return self.getConnection()
  File "c:\python25\lib\site-packages\SQLObject-0.12.4-py2.5.egg\sqlobject\dbconnection.py", line 850, in getConnection
    "No connection has been defined for this thread "
AttributeError: No connection has been defined for this thread or process

Как определить соединение для потока?Я только что понял, что могу передать ключевое слово connection, которое я могу дать conn, чтобы оно заработало, но как мне заставить его работать, если я этого не сделал?

1 Ответ

3 голосов
/ 09 июня 2010

Do:

from sqlobject import sqlhub, connectionForURI

sqlhub.processConnection = connectionForURI(connStr)
...