According to your model, valor is a text field, and projection queries do 
not allow text fields either.

Anthony

On Tuesday, June 12, 2012 7:54:04 AM UTC-4, Alex Benfica wrote:
>
> Hi Anthony,
>
> You are rigth... but I left only the Field valor and still returns empty. 
> :)
>
> That is the table...
>
>             Field('nome',
>                   'string',          
>
>                   required = True,            
>             ),
>             
>             Field('valor',
>                   'text',          
>                   label="Valor: caso seja string ou numérico 
> (opcional)",          
>             ),
>
>             Field('valor_blob',
>                   'blob',),
>             
>             Field('upl_valor', 
>                   'upload', 
>                   uploadfield='valor_blob', 
>                   label="Valor binario (opcional)",
>                   ),
>                                            
>             Field('descricao',
>                   'text',          
>             ),
>
>
>
>
>
>
> On Monday, June 11, 2012 10:54:00 PM UTC-3, Anthony wrote:
>>
>> Is tabela.valor_blob a Blob field? The GAE documentation says projections 
>> can only include indexed properties, so no Text or Blob properties -- see 
>> https://developers.google.com/appengine/docs/python/datastore/queries#Query_Projection.
>>  
>> I would think that would result in an error, though.
>>
>> Anthony
>>
>> On Monday, June 11, 2012 9:35:28 PM UTC-4, Alex Benfica wrote:
>>>
>>> Hi Massimo and howesc!
>>>
>>> Testing again... I found a problem:
>>>
>>> Do not return errors ( but returns no rows... ).
>>>         rows = self.db(self.tabela.nome == 
>>> nome).select(self.tabela.valor, self.tabela.valor_blob)
>>>         
>>> Returns the desired rows...
>>>         rows = self.db(self.tabela.nome == nome).select()
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Monday, June 11, 2012 10:10:18 PM UTC-3, Alex Benfica wrote:
>>>>
>>>> Hello people!
>>>>
>>>> First of all... thank you Massimo and howesc!
>>>>
>>>> About this question that I did and Massimo and howesc answerd on Stack 
>>>> Overflow.
>>>> I tried to put some code there... but I could't...
>>>>
>>>>
>>>> http://stackoverflow.com/questions/10940995/does-google-app-engine-projection-queries-are-supported-by-web2py
>>>>
>>>> I did the web2py update to trunk and some parts of my code stopped 
>>>> working.
>>>> Most of problems I got where like this below, that I still don't know 
>>>> how to solve and keep it efficient, as I need to find the values by 
>>>> "name", 
>>>> not by id.
>>>>
>>>> I order to make it work, I just removed the fields I specified.
>>>>
>>>> Was this way (causing errors)
>>>> self.db(self.tabela.nome == nome).select(self.tabela.valor, 
>>>> self.tabela.valor_blob, self.tabela.nome)
>>>>
>>>> I did that... now it selects all fields again... but works!
>>>> self.db(self.tabela.nome == nome).select()
>>>>
>>>> I'm problably missing something! How can I use projection queries with 
>>>> web2py? The ID field that web2py creates are the same ID used by datastore 
>>>> on GAE?
>>>> I have a product that I need find by name... can I query it using 
>>>> projection queries? Is that?
>>>>
>>>>
>>>>
>>>>
>>>> rows = self.db(self.tabela.nome == nome).select(self.tabela.valor, 
>>>> self.tabela.valor_blob, self.tabela.nome)
>>>>   File "D:\Dropbox\Devel\www\web2py\gluon\dal.py", line 8161, in select
>>>>     return adapter.select(self.query,fields,attributes)
>>>>   File "D:\Dropbox\Devel\www\web2py\gluon\dal.py", line 4149, in select
>>>>     for t in fields] for item in items]
>>>>   File "C:\Program Files 
>>>> (x86)\Google\google_appengine\google\appengine\ext\db\__init__.py", line 
>>>> 2313, in next
>>>>     return self.__model_class.from_entity(self.__iterator.next())
>>>>   File "C:\Program Files 
>>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py",
>>>>  
>>>> line 2809, in next
>>>>     next_batch = self.__batcher.next()
>>>>   File "C:\Program Files 
>>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py",
>>>>  
>>>> line 2671, in next
>>>>     return self.next_batch(self.AT_LEAST_ONE)
>>>>   File "C:\Program Files 
>>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py",
>>>>  
>>>> line 2708, in next_batch
>>>>     batch = self.__next_batch.get_result()
>>>>   File "C:\Program Files 
>>>> (x86)\Google\google_appengine\google\appengine\api\apiproxy_stub_map.py", 
>>>> line 604, in get_result
>>>>     return self.__get_result_hook(self)
>>>>   File "C:\Program Files 
>>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_query.py",
>>>>  
>>>> line 2450, in __query_result_hook
>>>>     self._batch_shared.conn.check_rpc_success(rpc)
>>>>   File "C:\Program Files 
>>>> (x86)\Google\google_appengine\google\appengine\datastore\datastore_rpc.py",
>>>>  
>>>> line 1214, in check_rpc_success
>>>>     raise _ToDatastoreError(err)
>>>> BadRequestError: cannot use projection on a property with an equality 
>>>> filter
>>>>
>>>

Reply via email to