>>>>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
>>
>
>If you're passing cSqlSelect into SQLEXEC() then:
>
>cWhereExpr = "MYTABLE.DATE_FLD >= ?dDateValue"
>cSqlSelect = " select * from mytable where " + cWhereExpr
>...
>nRetVal = SQLEXEC(nCon, cSqlSelect, "csrResult")
>
>As Borislav stated, make sure that dDateValue is in scope when the SQLEXEC() is executed.
>
>If cSqlSelect is going be macro-expanded into a statement within VFP then Borislav's suggestion should work.
>
>&cSqlSelect.
>* above expands to: select * from mytable where MYTABLE.DATE_FLD >= dDateValue
>
>
>As Borislav stated, make sure that dDateValue is in scope when the macro expansion takes place.
Thank you.
"The creative process is nothing but a series of crises." Isaac Bashevis Singer
"My experience is that as soon as people are old enough to know better, they don't know anything at all." Oscar Wilde
"If a nation values anything more than freedom, it will lose its freedom; and the irony of it is that if it is comfort or money that it values more, it will lose that too." W.Somerset Maugham