Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Can this be simplified?
Message
De
22/11/2018 18:58:24
Bill Fitzgerald (En ligne)
Woodbury Systems Group
Hamilton, New Jersey, États-Unis
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
01663691
Message ID:
01663715
Vues:
58
>>>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.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform