Create a view or materialized view in the db, and then just create a DAL 
model based on that view (turn off migrations for that model so the DAL 
does not attempt to create a table for it). From that point, you can use 
that model for queries via the DAL.

Anthony

On Thursday, April 27, 2017 at 10:25:35 PM UTC-4, George D Elig wrote:
>
> Postgres supports views and stored procedures. Assuming I can create a 
> query statement to call a view or stored procedure, can't that query be 
> passed to SQLFORM?
>
> On Apr 27, 2017, at 1:20 PM, Richard Vézina <[email protected]> 
> wrote:
>
> You surely can create a view, if you can, you can mimic one with 
> db.executesql() where you do your union, and then construct you grid with 
> web2py html HELPERS() or other means... Sadly you can use SQLFORM.grid() as 
> previously said but it not a big deal as you avoid convulated form 
> processing to maintain in sync an unionize entity which would be a pretty 
> bad idea as if you can't improve schema this probably mean your app is not 
> the only system accessing this database which may lead to an off sync 
> unionize entity...
>
> Richard
>
> On Thu, Apr 27, 2017 at 12:30 PM, Anthony <[email protected]> wrote:
>
>> Does your database support views/materialized views?
>>
>> Anthony
>>
>>
>> On Thursday, April 27, 2017 at 8:48:26 AM UTC-4, George D Elig wrote:
>>>
>>> Unfortunately, I cannot combine the two tables. The existing product 
>>> uses one of them extensively for queue processing and I don't want to 
>>> possibly break any of that functionality. All I want to do is update the 
>>> SQLFORM with information from the new table. I can use db.executesql but 
>>> won't that require me to remove SQLFORM? If so, is there another framework 
>>> element I can leverage for displaying the rows?
>>>
>>> On Wednesday, April 26, 2017 at 8:14:05 PM UTC-4, Alfonso Serra wrote:
>>>>
>>>> You can try:
>>>> sql = """
>>>> SELECT * FROM table1
>>>> UNION SELECT * FROM table2"""
>>>>
>>>> rows = db.executesql(sql, fields = [
>>>>    Field("name", "string")
>>>>    , Field("age", "integer")
>>>>    , Field("apt_time", "datetime")
>>>> ])
>>>>
>>>>
>>>>
>>>> Always that both tables are the same size and types.
>>>> Then style your view however you like.
>>>>
>>>> It is true the table structures are not good. Theres no need for 2 
>>>> tables to store animals. just one with an animal type field to distinguish 
>>>> between cats, dogs, birds, etc.
>>>>
>>>> -- 
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> -- 
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> --- 
> You received this message because you are subscribed to a topic in the 
> Google Groups "web2py-users" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/web2py/lnjK7nibOqw/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to