>  > Also what would be a syntax to make a same selection using
>  > session.query(th)?
>
>  what would you like the ORM query to return ?  Object instances ?
>  currently, using group_by() and such with Query implies you're getting
>  individual column tuples back using _values(), in which case its
>  sess.query(THsClass).group_by(whatever)._values(<col expressions>).


I would like to get similar result like I would via query.all, because
it allows me to look through it multiple times.

b=session.query(th).filter(th.RECORD_NO==5).all()

I will iterate through b multiple times, and getting it via select I
would have to get it from the database each time I loop. (correct?)

So I tried instead of doing:

s=sqlalchemy.select([th.RECORD_NO,sqlalchemy.func.count(th.RECORD_NO)],sqlalchemy.and_(th.APPLIED_TEST==1,th.CODING_DATE=='20080404')).group_by(th.RECORD_NO).execute()

do this:

a=session.query(th).add_column(sqlalchemy.func.count(th.c.RECORD_NO).label('MYGREAT_COUNT')).filter(sqlalchemy.and_(th.APPLIED_TEST==1,th.CODING_DATE=='20080325')).group_by(th.RECORD_NO).all()
or
a=session.query(th).group_by(th.RECORD_NO).filter(sqlalchemy.and_(th.APPLIED_TEST==1,th.CODING_DATE=='20080325')).all()

but I get an error.
Am I using incorect syntax here?


Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "sqlalchemy/orm/query.py", line 853, in all
    return list(self)
  File "sqlalchemy/orm/query.py", line 914, in __iter__
    return self._execute_and_instances(context)
  File "sqlalchemy/orm/query.py", line 917, in _execute_and_instances
    result = self.session.execute(querycontext.statement,
params=self._params, mapper=self.mapper,
instance=self._refresh_instance)
  File "sqlalchemy/orm/session.py", line 605, in execute
    return self.__connection(engine,
close_with_result=True).execute(clause, params or {})
  File "sqlalchemy/engine/base.py", line 844, in execute
    return Connection.executors[c](self, object, multiparams, params)
  File "sqlalchemy/engine/base.py", line 895, in execute_clauseelement
    return self._execute_compiled(elem.compile(dialect=self.dialect,
column_keys=keys, inline=len(params) > 1), distilled_params=params)
  File "sqlalchemy/engine/base.py", line 907, in _execute_compiled
    self.__execute_raw(context)
  File "sqlalchemy/engine/base.py", line 916, in __execute_raw
    self._cursor_execute(context.cursor, context.statement,
context.parameters[0], context=context)
  File "sqlalchemy/engine/base.py", line 958, in _cursor_execute
    self.dialect.do_execute(cursor, statement, parameters, context=context)
  File "sqlalchemy/databases/mssql.py", line 805, in do_execute
    super(MSSQLDialect_pyodbc, self).do_execute(cursor, statement,
parameters, context=context, **kwargs)
  File "sqlalchemy/databases/mssql.py", line 499, in do_execute
    cursor.execute("SET IDENTITY_INSERT %s OFF" %
self.identifier_preparer.format_table(context.compiled.statement.table))
SystemError: 'finally' pops bad exception

Lucas

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to