[Gambas-user] Query for sorting not work

gian bagoneo at libero.it
Mon Sep 5 12:25:57 CEST 2022


Il 04/09/22 19:13, T Lee Davidson ha scritto:
> On 9/4/22 12:15, Benoit Minisini wrote:
>> I'm currently thinking, maybe I could add new substitution syntaxes to 
>> tell Gambas if we want to substitute a value, a column name or a table name. 
>>
>>
>> Something like that:
>>
>> DB.Exec("SELECT * FROM [&1] WHERE column = &2 SORT BY '&3'", 
>> sTableName, sValue, sSortColumn)
> 
> That would make for cleaner looking SQL query building as opposed to 
> using string concatenation with the ampersand. I agree with Gianluigi 
> that what we already have is sufficient, but it would be a nice 
> enhancement.
> 
> If you decide to add that enhancement, may I suggest the use of the 
> back-tick (`) to mark column names since the single-quote is sometimes 
> used for data values? Ie.:
> DB.Exec("SELECT * FROM [&1] WHERE column = &2 SORT BY `&3`", sTableName, 
> sValue, sSortColumn)
> 
> 

Hi Benoit,

I tried the last master with MySQL and if I write the code like this it 
works, but I always have to use a concatenation string for ASC and DESC.
I read the wiki several times but I didn't understand how I could add 
sSort with the substitution method.
'-------------------------------------------------------
Public Sub GridView1_Sort()

   Dim aArg As String[] = ["uskey", "usnam", "ussur"]
   Dim sTable, sColumn, sSQL As String
   Dim sSort As String = " ASC"

   db.Debug = True
   sTable = "tuser"
   sColumn = aArg[$iCurrentColumn]
   sSQL = "SELECT * FROM [&1] ORDER BY `&2`"
   ' or
   ' sSQL = "SELECT * FROM [&1] ORDER BY '&2'"
   If Not GridView1.Columns.Ascending Then sSort = " DESC"
   $hResult = $hConn.Exec(sSQL & sSort, sTable, sColumn)
   GridView1.Rows.Count = $hResult.Count
   GridView1.Columns.Width = -1

Catch
   Print Error.Text

End
'-------------------------------------------------------

Regards
Gianluigi


More information about the User mailing list