Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Method Call from within a select statement returns
Message
From
23/06/2006 10:41:28
 
 
To
23/06/2006 10:39:34
Hilmar Zonneveld
Independent Consultant
Cochabamba, Bolivia
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
01131155
Message ID:
01131163
Views:
15
>Since you are selecting data from the same table, it seems safer to pass the criterion as a parameter:

I would say it's the ONLY way. Better safe than sorry! :-)

>
>select ... ThisForm.yGetAging(vin_duedate) as vin_aging ...
>
>* The method
>lparameters tdDueDate
>do case
>case tdDueDate >= .ydDate
>  ...
>
>
>>I have a select statement that calls a method to return a value:
>>
>>Following is a stripped down version to get the gist.
>>
>>   select vin_ref, thisform.yGetAging()as vin_aging
>>      from scvndino
>>
>>*yGetAging Method*
>>with thisform
>>   do case	
>>      case vin_duedate  >= .ydDate
>>         return 'Current'
>>      case between(vin_duedate,.ydDate-10,.ydDate - 1)
>>	 return '1 - 10'
>>      case between(vin_duedate,.ydDate-20,.ydDate - 11)
>>	 return '11 - 20'
>>      case between(vin_duedate,.ydDate-30,.ydDate - 21)
>>	 return '21 - 30'
>>      case between(vin_duedate,.ydDate-60,.ydDate - 31)
>>	 return '31 - 60'
>>      case between(vin_duedate,.ydDate-90,.ydDate - 61)
>>	 return '61 - 90'
>>      case between(vin_duedate,.ydDate-120,.ydDate - 91)
>>	 return '91- 120'
>>      otherwise
>>	 return '121+'
>>   endcase
>>endwith
>>
>>
>>
>>Prior to VFP 9 this worked fine. I am finding now that the record pointer in the scvndino table is not on the correct record anymore in the method. If the select statement is going through a hundred records this method returns the results for the first record in the table all 100 times.
>>
>>Sending vin_duedate as a parameter to the method and replacing "vin_duedate" with this parameter DOES work. My concern is that I have code like this all over the place. Is there something else I'm missing?
Previous
Reply
Map
View

Click here to load this message in the networking platform