Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Can this be simplified?
Message
From
22/11/2018 18:58:24
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Miscellaneous
Thread ID:
01663691
Message ID:
01663715
Views:
57
>>>Hi,
>>>
>>>I have many places in my app where I use the following expression in the WHERE clause of the SQL Select. It works but what bothers me is that the expression has DTOC() and then CTOD(). I convert a date to a character and then convert the character back to date. Can it be simplified? Here is the expression:
>>>
>>>"MYTABLE.DATE_FLD >= CTOD('" + DTOC( dDateValue ) + "')"
>>>
>>>
>>>TIA
>>
>>What's wrong with
>>
>>  MYTABLE.DATE_FLD >= dDateValue
>>
>>
>>Just make sure that dDateValue variable is in scope.
>
>But I have to have this expression in the SQL Select expression. Here is an example (simplified):
>
>cWhereExpr = "MYTABLE.DATE_FLD >= CTOD('" + DTOC( dDateValue ) + "')"
>cSqlSelect = " select * from mytable where " + cWhereExpr
>
I wrote a function that converts dates to SQL query format

The function, called sqldate, looks like this:

PARAMETERS pd_date

LOCAL lc_date

IF TYPE("pd_date") = "C"
pd_date = CTOD(pd_date)
ENDIF

lc_date = ALLTRIM(STR(YEAR(pd_date))) + "-" + ;
PADL(ALLTRIM(STR(MONTH(pd_date))), 2, "0") + "-" + ;
PADL(ALLTRIM(STR(DAY(pd_date))), 2, "0")

RETURN lc_date


Then I can write:

lc_querydate = sqldate(dDateValue)


cSqlSelect = " select * from mytable where MYTABLE.DATE_FLD >= ?lc_querydate "
Anyone who does not go overboard- deserves to.
Malcolm Forbes, Sr.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform