sqlobject-discuss Mailing List for SQLObject (Page 384)
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
You can subscribe to this list here.
2003 |
Jan
|
Feb
(2) |
Mar
(43) |
Apr
(204) |
May
(208) |
Jun
(102) |
Jul
(113) |
Aug
(63) |
Sep
(88) |
Oct
(85) |
Nov
(95) |
Dec
(62) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(38) |
Feb
(93) |
Mar
(125) |
Apr
(89) |
May
(66) |
Jun
(65) |
Jul
(53) |
Aug
(65) |
Sep
(79) |
Oct
(60) |
Nov
(171) |
Dec
(176) |
2005 |
Jan
(264) |
Feb
(260) |
Mar
(145) |
Apr
(153) |
May
(192) |
Jun
(166) |
Jul
(265) |
Aug
(340) |
Sep
(300) |
Oct
(469) |
Nov
(316) |
Dec
(235) |
2006 |
Jan
(236) |
Feb
(156) |
Mar
(229) |
Apr
(221) |
May
(257) |
Jun
(161) |
Jul
(97) |
Aug
(169) |
Sep
(159) |
Oct
(400) |
Nov
(136) |
Dec
(134) |
2007 |
Jan
(152) |
Feb
(101) |
Mar
(115) |
Apr
(120) |
May
(129) |
Jun
(82) |
Jul
(118) |
Aug
(82) |
Sep
(30) |
Oct
(101) |
Nov
(137) |
Dec
(53) |
2008 |
Jan
(83) |
Feb
(139) |
Mar
(55) |
Apr
(69) |
May
(82) |
Jun
(31) |
Jul
(66) |
Aug
(30) |
Sep
(21) |
Oct
(37) |
Nov
(41) |
Dec
(65) |
2009 |
Jan
(69) |
Feb
(46) |
Mar
(22) |
Apr
(20) |
May
(39) |
Jun
(30) |
Jul
(36) |
Aug
(58) |
Sep
(38) |
Oct
(20) |
Nov
(10) |
Dec
(11) |
2010 |
Jan
(24) |
Feb
(63) |
Mar
(22) |
Apr
(72) |
May
(8) |
Jun
(13) |
Jul
(35) |
Aug
(23) |
Sep
(12) |
Oct
(26) |
Nov
(11) |
Dec
(30) |
2011 |
Jan
(15) |
Feb
(44) |
Mar
(36) |
Apr
(26) |
May
(27) |
Jun
(10) |
Jul
(28) |
Aug
(12) |
Sep
|
Oct
|
Nov
(17) |
Dec
(16) |
2012 |
Jan
(12) |
Feb
(31) |
Mar
(23) |
Apr
(14) |
May
(10) |
Jun
(26) |
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(1) |
Nov
|
Dec
(6) |
2013 |
Jan
(4) |
Feb
(5) |
Mar
|
Apr
(4) |
May
(13) |
Jun
(7) |
Jul
(5) |
Aug
(15) |
Sep
(25) |
Oct
(18) |
Nov
(7) |
Dec
(3) |
2014 |
Jan
(1) |
Feb
(5) |
Mar
|
Apr
(3) |
May
(3) |
Jun
(2) |
Jul
(4) |
Aug
(5) |
Sep
|
Oct
(11) |
Nov
|
Dec
(62) |
2015 |
Jan
(8) |
Feb
(3) |
Mar
(15) |
Apr
|
May
|
Jun
(6) |
Jul
|
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
(19) |
2016 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
(4) |
May
(3) |
Jun
(7) |
Jul
(14) |
Aug
(13) |
Sep
(6) |
Oct
(2) |
Nov
(3) |
Dec
|
2017 |
Jan
(6) |
Feb
(14) |
Mar
(2) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(4) |
Nov
(3) |
Dec
|
2018 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
(44) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
(1) |
2021 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(2) |
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2025 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Scott R. <sc...@to...> - 2004-04-26 16:18:29
|
ODBC and JDBC connectors would be nice for the MS SQL, sybase, oracle, etc. guys, but I'm certainly not volunteering this week. :) On Mon, 2004-04-26 at 11:53, Ian Bicking wrote: > Samir Patel wrote: > > At one point, I read that there is somebody working on MS SQL Server > > backend for SQL Object? Where can I find it? If my information is not > > correct and nobody is working on this, how difficult it is to create one? I > > don't mind doing it if it is not that difficult. > > I don't remember anyone talking about it before. There is some > not-quite-complete Sybase support in there now, which should mostly > apply to SQL Server as well. (I believe it's fairly complete insofar as > it goes, but it might not implement all features) > > Ian > > > ------------------------------------------------------- > This SF.net email is sponsored by: The Robotic Monkeys at ThinkGeek > For a limited time only, get FREE Ground shipping on all orders of $35 > or more. Hurry up and shop folks, this offer expires April 30th! > http://www.thinkgeek.com/freeshipping/?cpg=12297 > _______________________________________________ > sqlobject-discuss mailing list > sql...@li... > https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss |
From: Ian B. <ia...@co...> - 2004-04-26 15:56:42
|
Marek Kubica wrote: > On Mon, 26 Apr 2004 07:10:37 -0400 > Scott Russell <sc...@to...> wrote: > > >>On Mon, 2004-04-26 at 07:08, Marek Kubica wrote: >> >>>Trying to run it: >>>File "C:\sqlobject\sqlobject\main.py", line 943, in dropTable >>> if ifExists and not cls._connection.tableExists(cls._table): >>>AttributeError: 'NoneType' object has no attribute 'tableExists' >>> >>>That doesn't wonder. But where in sqlite can I find tableExists? >>> > > >>First, you need to read your error. This is a basic python error, >>stating that your code is trying to call a method of None, of which >>none exist. Something failed to initialize. > > In my file there is a line > gadfly = None > but in the sqlite file it's the same > sqlite = None This is for lazy loading -- you'll note that SQLiteConnection imports sqlite in its __init__. But you're probably encountering a more mundane problem where you aren't giving your SQLObject subclass a _connection object, so the connection is simply None. Ian |
From: Ian B. <ia...@co...> - 2004-04-26 15:53:54
|
Samir Patel wrote: > At one point, I read that there is somebody working on MS SQL Server > backend for SQL Object? Where can I find it? If my information is not > correct and nobody is working on this, how difficult it is to create one? I > don't mind doing it if it is not that difficult. I don't remember anyone talking about it before. There is some not-quite-complete Sybase support in there now, which should mostly apply to SQL Server as well. (I believe it's fairly complete insofar as it goes, but it might not implement all features) Ian |
From: Samir P. <sp...@la...> - 2004-04-26 15:23:16
|
At one point, I read that there is somebody working on MS SQL Server backend for SQL Object? Where can I find it? If my information is not correct and nobody is working on this, how difficult it is to create one? I don't mind doing it if it is not that difficult. - Samir |
From: Scott R. <sc...@to...> - 2004-04-26 12:32:41
|
On Mon, 2004-04-26 at 08:29, Marek Kubica wrote: > Where I can find informations about SO? SO is SqlObject, and the only real way to learn how the source is put together is by reading it. In this case, grep tableExists /path/to/sqlobject/source will answer the question you are asking, but probably not solve your problem. |
From: Marek K. <pyt...@we...> - 2004-04-26 12:16:03
|
On Mon, 26 Apr 2004 07:10:37 -0400 Scott Russell <sc...@to...> wrote: > On Mon, 2004-04-26 at 07:08, Marek Kubica wrote: > > Trying to run it: > > File "C:\sqlobject\sqlobject\main.py", line 943, in dropTable > > if ifExists and not cls._connection.tableExists(cls._table): > > AttributeError: 'NoneType' object has no attribute 'tableExists' > > > > That doesn't wonder. But where in sqlite can I find tableExists? > > > First, you need to read your error. This is a basic python error, > stating that your code is trying to call a method of None, of which > none exist. Something failed to initialize. In my file there is a line gadfly = None but in the sqlite file it's the same sqlite = None > As for the question you thought you were asking: You may want to try a > grep in the sqlobject source. _connection isn't a sqllite object here, > it's a SO SQLiteConnection... > Might I suggest you go and really deeply understand how SO (or at > least it's connection management) and python work before trying this? > Otherwise, you'll wind up asking a lot more questions that you could > easily answer yourself. Where I can find informations about SO? greets, Marek |
From: Marek K. <pyt...@we...> - 2004-04-26 12:15:42
|
Hello, On Mon, 26 Apr 2004 12:55:44 +0200 Philippe Normand <sw...@fr...> wrote: > > Have a look at sqlobject/sqlite/sqliteconnection.py Already done (I've taken this file as base for gadflyconnection.py). greets, Marek |
From: Scott R. <sc...@to...> - 2004-04-26 11:10:53
|
On Mon, 2004-04-26 at 07:08, Marek Kubica wrote: > Trying to run it: > File "C:\sqlobject\sqlobject\main.py", line 943, in dropTable > if ifExists and not cls._connection.tableExists(cls._table): > AttributeError: 'NoneType' object has no attribute 'tableExists' > > That doesn't wonder. But where in sqlite can I find tableExists? > First, you need to read your error. This is a basic python error, stating that your code is trying to call a method of None, of which none exist. Something failed to initialize. As for the question you thought you were asking: You may want to try a grep in the sqlobject source. _connection isn't a sqllite object here, it's a SO SQLiteConnection... Might I suggest you go and really deeply understand how SO (or at least it's connection management) and python work before trying this? Otherwise, you'll wind up asking a lot more questions that you could easily answer yourself. |
From: Philippe N. <sw...@fr...> - 2004-04-26 11:08:02
|
On Mon, Apr 26, 2004 at 01:08:15PM +0200, Marek Kubica wrote: >=20 > Trying to run it: > File "C:\sqlobject\sqlobject\main.py", line 943, in dropTable > if ifExists and not cls._connection.tableExists(cls._table): > AttributeError: 'NoneType' object has no attribute 'tableExists' >=20 > That doesn't wonder. But where in sqlite can I find tableExists? >=20 > greets, > Marek >=20 >=20 Have a look at sqlobject/sqlite/sqliteconnection.py --=20 Philippe Normand |
From: Marek K. <pyt...@we...> - 2004-04-26 10:54:13
|
Gadfly can be used both embedded (like sqlite) and standalone (like mysql), although I havent tested this before. But I'll only work on the embedded version. First I checked out SQLObject revision 104. I started the work by copying the sqlite package and replacing all 'sqlite' by 'gadfly'. (Gadfly is probably very like SQLite). Then I added to the main __init__.py. In the file gadflyconnection.py I modified the code to open a gadfly database. That's where I paused. I also modified the simpleperson.py for the Gadfly backend: File: simpleperson.py: from sqlobject import * __connection__ = GadflyConnection('gad.fly.db') class Person(SQLObject): _connection = __connection__ firstName = StringCol() middleInitial = StringCol(length=1, default=None) lastName = StringCol() Person.dropTable(ifExists=True) Person.createTable() Trying to run it: File "C:\sqlobject\sqlobject\main.py", line 943, in dropTable if ifExists and not cls._connection.tableExists(cls._table): AttributeError: 'NoneType' object has no attribute 'tableExists' That doesn't wonder. But where in sqlite can I find tableExists? greets, Marek |
From: Ian B. <ia...@co...> - 2004-04-24 18:02:08
|
On Apr 24, 2004, at 6:51 AM, Marek Kubica wrote: > Hello! > I'm interessted in SQLObject, and I wanted to ask you how difficult it > would be to write a Gadfly wrapper. Maybe I could try to write one. It should be quite easy. Though I think SQLite is a better alternative, and is already supported. > Don't you know any way to get SQLObject running on Python 2.1? That would be quite difficult, and the resulting objects wouldn't look like they do now. It really expects a lot of 2.2 features. -- Ian Bicking | ia...@co... | http://blog.ianbicking.org |
From: fingerclick <fc...@bo...> - 2004-04-23 22:13:21
|
Scott Russell wrote: > You need to let SQLobject do the work. :) > > class Login(SQLObject): > firstName = StringCol() > middleInitial = StringCol(length=1, default=None) > lastName = StringCol() > > class db_request(SQLObject): > new_file = IntCol(default=1) > DbRequest = ForeignKey('Login') > DbSource = ForeignKey('Login') > > ... snip ... > > r1 = db_request.new(new_file=1, DbRequest=p1, DbSource=p2 ) > > Notice all I did was remove "Id" from the end of your column names. > Fields ending in _id are special items to SQLobject. Besides, you > didn't want to reference the id - you wanted to reference the object. > Let SO worry about the IDs, unless you're doing something especially > tricky. > > I also flipped the BoolCol to an IntCol because I've never used it and I > couldn't figure out how to. :) (Is BoolCol a postgres-only column?) > > - Scott > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click Thanks to much man for all help. :) Now i´m stating to inderstand he way SQLObject works, and i think it´s my right choice. |
From: Ian B. <ia...@co...> - 2004-04-23 20:33:31
|
jws...@ra... wrote: > To what degree does SQLObject or SQLbuilder prevent SQL injection attacks? I > will be accepting user input that may contain ('),("), or (;). Do I need to > filter this in my app or does it 'just work'? SQLBuilder handles it, or if you generate your own SQL you can use self.sqlrepr() to do the necessary quoting (like "some_column = %s" % self.sqlrepr(user_input)") |
From: <jws...@ra...> - 2004-04-23 20:23:59
|
To what degree does SQLObject or SQLbuilder prevent SQL injection attacks? I will be accepting user input that may contain ('),("), or (;). Do I need to filter this in my app or does it 'just work'? |
From: Oleg B. <ph...@ph...> - 2004-04-23 18:02:37
|
On Fri, Apr 23, 2004 at 12:41:22PM -0500, Ian Bicking wrote: > sqlbuilder.DESC(Patient.q.registrationTime) Yes, that works. Thank yoy very much! Sorry for bothering you with it. Now I am eagerly waiting 0.5.3... Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Ian B. <ia...@co...> - 2004-04-23 17:41:59
|
Oleg Broytmann wrote: > On Fri, Apr 23, 2004 at 12:04:07PM -0500, Ian Bicking wrote: > >>Ah... I found the bug, in _mungeOrderBy; which should look like: > > > Aha, now it is much better. orderBy="-registration_time" now works! > Thank you. > > orderBy=-Patient.q.registrationTime still does not work, though with > a different error: If you are using that, you should use sqlbuilder.DESC(Patient.q.registrationTime) |
From: Oleg B. <ph...@ph...> - 2004-04-23 17:38:06
|
On Fri, Apr 23, 2004 at 12:04:07PM -0500, Ian Bicking wrote: > Ah... I found the bug, in _mungeOrderBy; which should look like: Aha, now it is much better. orderBy="-registration_time" now works! Thank you. orderBy=-Patient.q.registrationTime still does not work, though with a different error: Traceback (most recent call last): [snip] File "/usr/local/lib/python2.3/site-packages/SQLObject/SQLObject.py", line 1381, in __iter__ return conn.iterSelect(self) File "/usr/local/lib/python2.3/site-packages/SQLObject/DBConnection.py", line 167, in iterSelect select, keepConnection=False) File "/usr/local/lib/python2.3/site-packages/SQLObject/DBConnection.py", line 361, in __init__ self.cursor.execute(self.query) ProgrammingError: ERROR: Unable to identify a prefix operator '-' for type 'character varying' You may need to add parentheses or an explicit cast SELECT ... ORDER BY - patient.registration_time Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Ian B. <ia...@co...> - 2004-04-23 17:04:41
|
Oleg Broytmann wrote: > On Fri, Apr 23, 2004 at 11:18:15AM -0500, Ian Bicking wrote: > >>"-registrationTime"? Both should work, but maybe they don't. > > > Traceback (most recent call last): > [snip] > File "/usr/local/lib/python2.3/site-packages/SQLObject/DBConnection.py", line 168, in _iterSelect > cursor.execute(query) > ProgrammingError: ERROR: Non-integer constant in ORDER BY > > SELECT ... ORDER BY 'registrationTime' DESC > > Both does not. DB is Postgres. Ah... I found the bug, in _mungeOrderBy; which should look like: def _mungeOrderBy(self, orderBy): if isinstance(orderBy, str) and orderBy.startswith('-'): orderBy = orderBy[1:] desc = True else: desc = False if isinstance(orderBy, (str, unicode)): if self.sourceClass._SO_columnDict.has_key(orderBy): val = self.sourceClass._SO_columnDict[orderBy].dbName if desc: return '-' + val else: return val else: if desc: return '-' + orderBy else: return orderBy else: return orderBy |
From: Eddie C. <ed...@ho...> - 2004-04-23 17:02:10
|
Date: Fri, 23 Apr 2004 11:47:56 -0500 From: Ian Bicking <ia...@co...> CC: sql...@li... X-Spam-Level: Eddie Corns wrote: > Hi all, I started trying out SQLObject a short while ago as a back-end to a > web app. Yesterday I tried to use a groupBy select, imagine my horror when it > said unknown keyword "groupBy". AFAICT it's been removed but I couldn't find > any more details. Is it gone for good? I just threw it in there without thinking about what it meant. Sigh, I realise now that I was trying to us it "without thinking about what it meant." Just when I thought my stupidity quotient was diminishing. Time for a holiday. Thanks, Eddie |
From: Oleg B. <ph...@ma...> - 2004-04-23 16:50:34
|
On Fri, Apr 23, 2004 at 06:05:40PM +0200, Philippe Normand wrote: > Quoting the online doco (http://sqlobject.org/docs/SQLObject.html): > > "You can use the keyword arguments orderBy to create ORDER BY in the > select statements: orderBy takes a string, which should be the > database name of the column, or a column in the form > Person.q.firstName." As I have shown both variants don't work. By different reasons. Probably bugs... this is exactly what I want to understand - are they bugs? are they fixable in 0.5.2? Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Ian B. <ia...@co...> - 2004-04-23 16:48:35
|
Eddie Corns wrote: > Hi all, I started trying out SQLObject a short while ago as a back-end to a > web app. Yesterday I tried to use a groupBy select, imagine my horror when it > said unknown keyword "groupBy". AFAICT it's been removed but I couldn't find > any more details. Is it gone for good? I just threw it in there without thinking about what it meant. Then I realized what it meant made no sense -- it only makes sense in combination with an accumulation (count, sum, etc), since GROUP BY collapses all the rows with equal values for the given column; you can then accumulate other column values, categorized by the grouped-by-column. Since head has a general way to accumulate results (thanks to Phillippe), maybe groupBy would make sense again... but even then it's a little complicated. You'd get a tuple back (or a dict or something), not SQLObject instances, since you'd dealing with categorization and accumulation. Ian |
From: Oleg B. <ph...@ph...> - 2004-04-23 16:46:33
|
On Fri, Apr 23, 2004 at 11:18:15AM -0500, Ian Bicking wrote: > "-registrationTime"? Both should work, but maybe they don't. Traceback (most recent call last): [snip] File "/usr/local/lib/python2.3/site-packages/SQLObject/DBConnection.py", line 168, in _iterSelect cursor.execute(query) ProgrammingError: ERROR: Non-integer constant in ORDER BY SELECT ... ORDER BY 'registrationTime' DESC Both does not. DB is Postgres. Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Eddie C. <ed...@ho...> - 2004-04-23 16:31:34
|
Hi all, I started trying out SQLObject a short while ago as a back-end to a web app. Yesterday I tried to use a groupBy select, imagine my horror when it said unknown keyword "groupBy". AFAICT it's been removed but I couldn't find any more details. Is it gone for good? As I type this message I'm beginning to see different ways to approach the problem (eg individual requests for each group) but nevertheless I'm still curious in case I'm likely to run into problems further down the line. On the whole though, SQLObject is looking like a nice interface. Eddie |
From: Ian B. <ia...@co...> - 2004-04-23 16:18:59
|
Oleg Broytmann wrote: > On Fri, Apr 23, 2004 at 07:48:06PM +0400, Oleg Broytmann wrote: > >>On Fri, Apr 23, 2004 at 05:22:00PM +0200, Philippe Normand wrote: >> >>>And, still the dash doesn't make sense to me >>>because orderBy has to be a string, not a number. Anyway ... > > > Let do it with strings: > > patients = Patient.select(None, orderBy="-registration_time") > > Traceback (most recent call last): > [snip] > File "/usr/local/lib/python2.3/site-packages/SQLObject/DBConnection.py", line 168, in _iterSelect > cursor.execute(query) > ProgrammingError: ERROR: Non-integer constant in ORDER BY > > SELECT ... ORDER BY 'registration_time' DESC > > See? SQLObject have added excessive apostrophes to the column name :( Huh... this is exactly what happens in SliceTest and NamesTest: self.counterEqual(Counter.select('all', orderBy='number'), range(100)) self.assertEqual([(n.fname, n.lname) for n in Names.select().orderBy(['fname', 'lname'])], [('aj', 'baker'), ('joe', 'baker'), ('joe', 'robbins'), ('tim', 'jackson'), ('zoe', 'robbins')]) And those work and don't quote their arguments. Should it be "-registrationTime"? Both should work, but maybe they don't. Ian |
From: Philippe N. <sw...@fr...> - 2004-04-23 16:17:48
|
On Fri, Apr 23, 2004 at 07:53:29PM +0400, Oleg Broytmann wrote: > On Fri, Apr 23, 2004 at 07:48:06PM +0400, Oleg Broytmann wrote: > > On Fri, Apr 23, 2004 at 05:22:00PM +0200, Philippe Normand wrote: > > > And, still the dash doesn't make sense to me > > > because orderBy has to be a string, not a number. Anyway ... >=20 > Let do it with strings: >=20 > patients =3D Patient.select(None, orderBy=3D"-registration_time") >=20 > Traceback (most recent call last): > [snip] > File "/usr/local/lib/python2.3/site-packages/SQLObject/DBConnection.py"= , line 168, in _iterSelect > cursor.execute(query) > ProgrammingError: ERROR: Non-integer constant in ORDER BY >=20 > SELECT ... ORDER BY 'registration_time' DESC >=20 > See? SQLObject have added excessive apostrophes to the column name :( >=20 > Oleg. Quoting the online doco (http://sqlobject.org/docs/SQLObject.html): "You can use the keyword arguments orderBy to create ORDER BY in the select statements: orderBy takes a string, which should be the database name of the column, or a column in the form Person.q.firstName." Cheers --=20 Philippe Normand |