Hi,
This is on Python 2.5.5 with SQLObject 0.11.0 and MySQL 5.1.41-3 (on
Debian Squeeze).
I'm a little mystified about the SQLBuilder subselector NOTIN(). I
have the following MySQL query:
SELECT db_stock_code FROM stock WHERE
(db_stock_code LIKE "XXX%")
AND (id NOT IN (SELECT db_stock_id FROM cont_item));
...which works for me. "stock" is a very simple table (no joins or
anything), and "cont_item" is like:
class ContItem (SQLObject) :
dbCont = ForeignKey('Cont')
dbStock = ForeignKey('Stock')
dbQuantity = IntCol()
(The actual table has "db_stock_id" and "db_cont_id" columns.) I tried
to use this SQLBuilder expression:
my_selection = dbase.Stock.select(
sqlobject.sqlbuilder.AND(
dbase.Stock.q.dbStockCode.startswith("XXX"),
sqlobject.sqlbuilder.NOTIN(
sqlobject.sqlbuilder.Outer(dbase.Stock).q.id,
sqlobject.sqlbuilder.Select(dbase.ContItem.q.dbStock,
dbase.ContItem)))
...but when it executes, I get:
[coming from that last line of my expression above]
File "/usr/lib/python2.5/site-packages/sqlobject/main.py", line
1365, in select
join=join, forUpdate=forUpdate)
File "/usr/lib/python2.5/site-packages/sqlobject/sresults.py", line
36, in __init__
for table in clauseTables:
TypeError: iteration over non-sequence
I'd like to point out that (a) the whole SELECT statement above
returns a few hundred results, and (b) the second clause to AND does
exclude some entries.
Please CC me on replies :)
Cheers,
Jason
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
sqlobject-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss