<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'><p abp="1110">Hello
<br abp="1111">
<br abp="1112">Is it possible to run a Pony ORM query in a different thread.
<br abp="1113">In the following example the first call to 'printPersons' works fine, but the 
call from the thread throws an exception:
<br abp="1114">OperationalError: no such table: Person
<br abp="1115">
</p><p abp="1116"><br abp="1117">from pony.orm import *
<br abp="1118">import threading
<br abp="1119">
<br abp="1120">db = Database('sqlite', ':memory:')
<br abp="1121">class Person(db.Entity):
<br abp="1122">    name = Required(unicode)
<br abp="1123">    age = Required(int)
<br abp="1124">db.generate_mapping(create_tables=True)
<br abp="1125">with db_session:
<br abp="1126">    p1 = Person(name="Bing Bang", age="31")
<br abp="1127">    p2 = Person(name="Kick Mick", age="75")
<br abp="1128">
<br abp="1129">def printPersons():
<br abp="1130">    print "print persons: "
<br abp="1131">    with db_session:
<br abp="1132">        ps = Person.select(lambda p: True)
<br abp="1133">        for p in ps:
<br abp="1134">            print p.name
<br abp="1135">
<br abp="1136">printPersons()
<br abp="1137">print "-------------------------"
<br abp="1138">ppt = threading.Thread(target = printPersons)
<br abp="1139">ppt.daemon = True
<br abp="1140">ppt.start()
<br abp="1141">a = raw_input('[Enter]')
<br abp="1142">
</p><p abp="1143"> </p><p abp="1144"><br abp="1145">Thanks in advance,
<br abp="1146">Tom
</p>                                        </div></body>
</html>