Subject Re: sql
From Charlie <tm@tc.com>
Date Tue, 11 Dec 2018 04:29:31 -0500
Newsgroups dbase.getting-started

Hi Mervyn... Thanks so much.  Works well now!

I was trying to mix params with property filter which actually works in dbase.  But if you inno and run a setup file, then try to run the routine it crashes in windows which took me a while to figure out what was happening......

Mervyn Bick Wrote:

> On 2018-12-10 11:55 PM, Charlie wrote:
> > Hi... In a form you make the sql statement for each query.  If you make the order (by order) how or what statement can you make later in the form to change the order?
> >
> > Thanks!!
> >
>
> When accessing data using an index to order the data all one needs to do
> is change the rowset's active index and the new order is applied
> immediately.  Unfortunately it's not quite as simple (although it's not
> difficult) when using an ORDER BY clause in a query's SELECT statement.
>
> You will need to set the query's active property false, replace the
> query's SQL property with a SELECT statement which includes the new
> ORDER BY clause and then set the query's active property true again.
> You may also find it necessary to execute the rowset's refreshContols()
> method if you change anything other than the order by clause.
>
> A little example is attached.
>
> Mervyn,
>
>
> ** END HEADER -- do not remove this line
> //
> // Generated on 2018-12-11
> //
> parameter bModal
> local f
> f = new test_changeorderForm()
> if (bModal)
>    f.mdi = false // ensure not MDI
>    f.readModal()
> else
>    f.open()
> endif
>
> class test_changeorderForm of FORM
>    with (this)
>       height = 26.3636
>       left = 81.5714
>       top = 1.8182
>       width = 77.1429
>       text = ""
>    endwith
>
>    this.DBASESAMPLES1 = new DATABASE(this)
>    with (this.DBASESAMPLES1)
>       left = 16.0
>       top = 1.0
>       width = 11.0
>       height = 1.0
>       databaseName = "DBASESAMPLES"
>       active = true
>    endwith
>
>    this.EMPLOYEES1 = new QUERY(this)
>    with (this.EMPLOYEES1)
>       left = 6.0
>       top = 1.0
>       width = 8.0
>       height = 1.0
>       database = form.dbasesamples1
>       sql = "select employeeId,firstName,lastName from EMPLOYEES.DBF"
>       active = true
>    endwith
>
>    this.GRID1 = new GRID(this)
>    with (this.GRID1)
>       dataLink = form.employees1.rowset
>       height = 15.5
>       left = 3.0
>       top = 5.5
>       width = 68.0
>    endwith
>
>    this.PUSHBUTTON1 = new PUSHBUTTON(this)
>    with (this.PUSHBUTTON1)
>       onClick = class::PUSHBUTTON1_ONCLICK
>       height = 1.0909
>       left = 10.0
>       top = 23.0
>       width = 15.2857
>       text = "Natural order"
>    endwith
>
>    this.PUSHBUTTON2 = new PUSHBUTTON(this)
>    with (this.PUSHBUTTON2)
>       onClick = class::PUSHBUTTON2_ONCLICK
>       height = 1.0909
>       left = 28.0
>       top = 23.0
>       width = 15.2857
>       text = "First name order"
>    endwith
>
>    this.PUSHBUTTON3 = new PUSHBUTTON(this)
>    with (this.PUSHBUTTON3)
>       onClick = class::PUSHBUTTON3_ONCLICK
>       height = 1.0909
>       left = 48.0
>       top = 23.0
>       width = 15.2857
>       text = "Last name order"
>    endwith
>
>    this.rowset = this.employees1.rowset
>
>    function PUSHBUTTON1_onClick()
>       form.employees1.active = false
>       form.employees1.sql ="select employeeId,firstName,lastName from EMPLOYEES.DBF"
>       form.employees1.active = true      
>       return
>
>    function PUSHBUTTON2_onClick()
>       form.employees1.active = false
>       form.employees1.sql ="select employeeId,firstName,lastName from EMPLOYEES.DBF order by firstName"
>       form.employees1.active = true
>       return
>
>    function PUSHBUTTON3_onClick()
>       form.employees1.active = false
>       form.employees1.sql ="select employeeId,firstName,lastName from EMPLOYEES.DBF order by lastName"
>       form.employees1.active = true
>       return
>
> endclass
>