Ok, you don't need it to works all the time.

Did you get it to update your records?

If not, and if as you said it is a one trip, you can just treat the whole
records batch by batch...

Look here :
http://web2py.com/books/default/chapter/29/14#Populating-database-with-dummy-data

for i in range(10):
    populate(db.mytable,100)
    db.commit()


In this example only 100 records are populated at a time between
db.commit()... So maybe you just have to wrap for loop that will
db.commit() a couples of time during your processing.

Richard


On Thu, May 10, 2012 at 3:32 PM, szimszon <szims...@gmail.com> wrote:

> I had to store files and a lot of properties for it. It was in csv. But
> after I processed it we figured out that not all value was correct in csv
> but it was a bit redundant. So I can correct it by go through all the
> records row by row. So that was a one time trip.
>
> I just realized after the process I had no memory left. So now I'm
> investigating what happened...
>
> 2012. május 10., csütörtök 21:00:05 UTC+2 időpontban Richard a következőt
> írta:
>>
>> Yes but in this case it is not for the entire reecords...
>>
>> Why would you return a full list of all the records?
>>
>> I don't understand what is the purpose of listar that you return in the
>> view under a html table, why do you need to return all the 100000+ entries?
>>
>> Richard
>>
>> On Thu, May 10, 2012 at 2:56 PM, szimszon <szims...@gmail.com> wrote:
>>
>>> In book it is a recommended way to iterate over sql results:
>>>
>>> http://web2py.com/books/**default/chapter/29/6<http://web2py.com/books/default/chapter/29/6>
>>>
>>> You can do all the steps in one statement:
>>>
>>> 1.
>>> 2.
>>> 3.
>>>
>>> >>> for row in db(db.person.name=='Alex').sel**ect():
>>>
>>>         print row.name
>>> Alex
>>>
>>>
>>>
>>>
>>> 2012. május 10., csütörtök 20:42:22 UTC+2 időpontban Bruce Wade a
>>> következőt írta:
>>>
>>>> Sorry, you really need to read more about how python works. If you
>>>> learn how for loops work and memory you will understand the problem.
>>>>
>>>> One solution do the query before the for loop then loop through the
>>>> objects. This may help at bit. Research xrange vs range
>>>>
>>>>
>>>> On Thu, May 10, 2012 at 11:30 AM, szimszon <szims...@gmail.com> wrote:
>>>>
>>>>> Sorry I don't understand. What do you mean "achieve with join"?
>>>>>
>>>>> There is an empty for loop with db.executesql() without join. And it
>>>>> is eating up the memory. :(
>>>>>
>>>>> 2012. május 10., csütörtök 19:12:30 UTC+2 időpontban Richard a
>>>>> következőt írta:
>>>>>
>>>>>> You can't manage what you want to achieve with join?
>>>>>>
>>>>>> Richard
>>>>>>
>>>>>> On Thu, May 10, 2012 at 10:48 AM, szimszon <szims...@gmail.com>wrote:
>>>>>>
>>>>>>> Sorry for my dumbness but if something is wrong with my code please
>>>>>>> point me the right line. I'm not so good in English if it comes to 
>>>>>>> "object
>>>>>>> instance count" and so. Yeah I know I should go and do some milkmaid 
>>>>>>> job :)
>>>>>>> but I'm curious.
>>>>>>>
>>>>>>> I'm just define some variable:
>>>>>>>
>>>>>>> lista = list()
>>>>>>> last_row = None
>>>>>>> next_page_number = 0
>>>>>>>
>>>>>>> Go in a for loop that just assign the db query result one-by-one to
>>>>>>> row variable.
>>>>>>>
>>>>>>> After that I assign the TABLE() helper to a list variable. That is
>>>>>>> it.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2012. május 10., csütörtök 16:34:49 UTC+2 időpontban Bruce Wade a
>>>>>>> következőt írta:
>>>>>>>
>>>>>>>> Using direct sql query or DAL is going to cause the exact same
>>>>>>>> problem in this situation.
>>>>>>>>
>>>>>>>> On Thu, May 10, 2012 at 7:28 AM, szimszon <szims...@gmail.com>wrote:
>>>>>>>>
>>>>>>>>> It's postgres:// in a
>>>>>>>>> Version 1.99.7 (2012-04-23 11:26:23) dev of web2py, and
>>>>>>>>>
>>>>>>>>> Python 2.7.3 (default, Apr 20 2012, 22:44:07)
>>>>>>>>> [GCC 4.6.3] on linux2
>>>>>>>>>
>>>>>>>>> python-psycopg2 2.4.5-1
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2012. május 10., csütörtök 15:40:36 UTC+2 időpontban rochacbruno a
>>>>>>>>> következőt írta:
>>>>>>>>>
>>>>>>>>>> Just for curiosity, what happens if you do it in pure sql?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> for row in db.executesql("**sele********ct * from
>>>>>>>>>> file_properties where id > 0"):
>>>>>>>>>>
>>>>>>>>>>     # do something
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Does it have a lower memory usage?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, May 10, 2012 at 4:14 AM, Bruce Wade <<bruce.w...@gmail.com>
>>>>>>>>>> > wrote:
>>>>>>>>>>
>>>>>>>>>>> for row in db( db.file_**propert********ies.id > 0 ).select(
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
>>>>>>>>>> Bruno Rocha
>>>>>>>>>> [http://rochacbruno.com.br]
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> --
>>>>>>>> Regards,
>>>>>>>> Bruce Wade
>>>>>>>> http://ca.linkedin.com/in/**bruc******elwade<http://ca.linkedin.com/in/brucelwade>
>>>>>>>> http://www.wadecybertech.com
>>>>>>>> http://www.fittraineronline.**co******m<http://www.fittraineronline.com>-
>>>>>>>>  Fitness Personal Trainers Online
>>>>>>>> http://www.warplydesigned.com
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> Regards,
>>>> Bruce Wade
>>>> http://ca.linkedin.com/in/**bruc**elwade<http://ca.linkedin.com/in/brucelwade>
>>>> http://www.wadecybertech.com
>>>> http://www.fittraineronline.**co**m <http://www.fittraineronline.com>- 
>>>> Fitness Personal Trainers Online
>>>> http://www.warplydesigned.com
>>>>
>>>>
>>

Reply via email to