| Subject |
Re: touppercase |
| From |
Helen Prior <web2@htsol.co.uk> |
| Date |
Sat, 08 Oct 2022 08:46:39 -0400 |
| Newsgroups |
dbase.getting-started |
Dear Mervyn
Thank you - You are a real gem Mervyn
It was your example of the variable a= etc
I built into my wfm
"fieldA = lower(fieldA)" and then saving the file
which resulted in it working perfectly
Thank you once again
--
Regards
Helen
Mervyn Bick Wrote:
> On 2022/10/07 10:26, Helen Prior wrote:
> >
> > Dear Mervyn
> >
> > Thank you for the upper/lower - That partially works but fails if the first character is in upper and the rest of the search word is in lower.
> > Going back to touppercase
> > Will this command permanently lower case to upper case? - If so how might that be achieved?
> > That might hopefully be the answer - It is so frustrating that dbase/sql cannot search ignoring upper/lower case
> > Regards
> > Helen
>
>
> Upper() and lower() are functions in both dBASE and localSQL. They
> accept a string as an argument and return a new copy of the string
> converted to all upper case or all lower case. These functions do not
> alter the string passed as an argument unless the programmer deliberate
> writes the returned value back into the source.
>
> Try the following in the Command Panel
>
> a = 'This is a Test'
> ?a
> ?lower(a)
> ?upper(a)
> ?a
> a = upper(a) //Write the upper case text back to the variable
> ?a
>
> An attached screenshot shows the results.
>
> toUpperCase() is also a function which returns a value without changing
> the argument passed to it but as it is tied to a string object it is
> called a method. In this case it doesn't take an argument between the
> brackets but acts on the string contained in the object's value
> property. As with the stand-alone functions it it does not change the
> source value unless the programmer does this deliberately.
>
> Try the following in the Command Panel
>
> oStr = new string()
> oStr.value = 'This is a Test'
> ?oStr.value
> ?oStr.value.toUpperCase()
> ?oStr.value
> oStr.value = oStr.value.toUpperCase() //Force oStr.value to upper case
> ?oStr.value
>
> An attached screenshot shows the results.
>
>
> Some dBASE commands do have the facility to be set either case-sensitive
> or case-insensitive. localSQL is case-sensitive but the use of upper()
> or lower() allows the programmer to get round this.
>
> To make your search case-insensitive remember that you need to make both
> the contents of the field and the search value the same case.
>
> Form.DAILYLOG2.sql = [select * from DAILYLOG where upper(Keyevent) like
> '%] + upper(Vkeyevent) + [%' or upper(History) like '%]
> +upper(Vkeyevent) + [%']
>
> Instead of building a new SELECT statement each time you need to search
> for a different keyevent value you could use a parameter driven query.
> To display a different set of records simply pass a new parameter to the
> query and requery(). A little example form is attached. This only
> searches on a single field but a second field can be added in the same
> way as with the "built" SELECT statement.
>
> Mervyn.
>
>
>
>
>
>
>
>
>
>
>
> ** END HEADER -- do not remove this line
> //
> // Generated on 2022-10-07
> //
> parameter bModal
> local f
> f = new fish_likeForm()
> if (bModal)
> f.mdi = false // ensure not MDI
> f.readModal()
> else
> f.open()
> endif
>
> class fish_likeForm of FORM
> with (this)
> height = 21.0909
> left = 18.7143
> top = 0.1818
> width = 112.2857
> text = ""
> endwith
>
> this.DBASESAMPLES1 = new DATABASE(this)
> with (this.DBASESAMPLES1)
> left = 3.0
> width = 11.0
> height = 1.0
> databaseName = "DBASESAMPLES"
> active = true
> endwith
>
> this.FISH1 = new QUERY(this)
> with (this.FISH1)
> left = 21.0
> width = 3.0
> height = 1.0
> database = form.dbasesamples1
> sql = "select * from FISH.DBF where upper(name) like upper(:name)"
> params["name"] = "%"
> active = true
> endwith
>
> this.GRID1 = new GRID(this)
> with (this.GRID1)
> dataLink = form.fish1.rowset
> height = 13.2727
> left = 2.8571
> top = 4.1818
> width = 104.1429
> endwith
>
> this.PUSHBUTTON1 = new PUSHBUTTON(this)
> with (this.PUSHBUTTON1)
> onClick = class::PUSHBUTTON1_ONCLICK
> height = 1.8182
> left = 8.8571
> top = 18.5455
> width = 15.2857
> text = "Records containing"
> endwith
>
> this.PUSHBUTTON2 = new PUSHBUTTON(this)
> with (this.PUSHBUTTON2)
> onClick = class::PUSHBUTTON2_ONCLICK
> height = 1.8182
> left = 54.1429
> top = 18.5455
> width = 15.2857
> text = "All records"
> endwith
>
> this.ENTRYFIELD1 = new ENTRYFIELD(this)
> with (this.ENTRYFIELD1)
> height = 1.0
> left = 26.0
> top = 19.0
> width = 18.0
> value = "blUE"
> endwith
>
> this.rowset = this.fish1.rowset
>
> function PUSHBUTTON1_onClick()
> form.fish1.params['name'] = '%'+form.entryfield1.value+'%'
> form.fish1.requery()
> return
>
> function PUSHBUTTON2_onClick()
> form.fish1.params['name'] = '%'
> form.fish1.requery()
> return
>
> endclass
>
|
|