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.

