Hello,

Thx for the answer, thx to Alexandre to translate my mail.

Sorry, i continue in english, i tried to do that at the end of my
declaration file :

Base.metadata.create_all(engine)
import sqlalchemy.orm.query
class MyQuery(sqlalchemy.orm.query.Query):
    def __init__(*arg, **kw):
       self._populate_existing = True
       super(MyQuery, self).__init__(*arg, **kw)
Session = scoped_session(sessionmaker(autocommit=True, bind=engine))
session = Session()
print "Le temps de déclaration SQL ALCHEMY", time.time()-xref

Is it correct? i m not very good in subclassing :S
It seems to not work.
When i add a print in the __init__, i never see it during the execution of
my program so MyQuery is not used i think.
Can u tell me where should i subclass Query? In the declaration.py? in
module sqlalchemy?
I tried to add myquery here
Session = scoped_session(sessionmaker(autocommit=True, bind=engine,
query_cls=MyQuery))
but it does error
  File
"C:\Python25\lib\site-packages\sqlalchemy-0.5.6-py2.5.egg\sqlalchemy\orm\
session.py", line 899, in query
    return self._query_cls(entities, self, **kwargs)
  File "Z:\Declaration.py", line 1451, in __init__
    self._populate_existing = True
NameError: global name 'self' is not defined

I can t touch to the sqlalchemy module because the interpreter and libraries
are installed on multiple computers which execute one unique code on a
shared network path.
So it's more easy to change my source code than sqlalchemy code...

i just want to change session.query behavior without change the code of
sqlalchemy itself, please help me.

2009/9/17 Michael Bayer <mike...@zzzcomputing.com>

>
> Alexandre Conrad wrote:
> >
> > Christian,
> >
> > 2009/9/17 Christian Démolis <christiandemo...@gmail.com>:
> >> Bonjour,
> >>
> >> Tu es français je pense au vu de ton prénom.
> >> Je continue donc en français.
> >
> > Nice guess.
> >
> > I understand it feels more comfortable writing in French rather than
> > in English, but many people are reading this list (or is only Mike
> > doing support? ;) ) and may be interested at the topic. And more eyes
> > and brains may answer your question. So please keep conversations on
> > this list to its native language - English. If you really want to
> > switch to a non-English language with someone particular, please
> > exchange off-list, but I believe you'll dramatically reduce your
> > chances of solving your problem.
> >
> > So for the record, you were explaining that you have 25000 lines of
> > code and you'd like to avoid to add refresh or
> > session.query().populate_existing() all around the place. You have
> > attempted to override the query method but couldn't make it. You have
> > pointed out the PreFilteredQuery
> > http://www.sqlalchemy.org/trac/wiki/UsageRecipes/PreFilteredQuery but
> > was unsuccessful achieving what you wanted.
> >
> > Sorry, maybe someone else can help you there. I haven't played with
> > Query overriding myself.
>
> a Query subclass which just says
>
> def __init__(*arg, **kw):
>    self._populate_existing = True
>    super(MyQuery, self).__init__(*arg, **kw)
>
> should do it....
>
>
>
>
>
> >
> > Alex
> >
> > >
> >
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to