Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Adding Custom View Parameter?
Message
From
08/09/2008 14:28:04
 
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Vista
Network:
Windows 2008 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01345719
Message ID:
01345865
Views:
24
>>>Ok, if I do the line:
>>>
>>>vp_studentRule = [( Student.cid <> 'ZZZZZZ')]
>>>
>>>in the command window before validating, the DBC validates without error.
>>>So, where does this need to be defined, if adding the line to the top of the view PRG is not working?
>>>Thanks for your continued help,
>>>Amanda
>>
>>Amanda,
>>
>>It's something I found out.
>>
>>Normally view parameters do not have to be defined if you use them with NODATA
>>
>>There are two exceptions to this - why I don't know
>>
>>parameters used in
>>(1) macro subsitution - a la &?param
>>
>>(2) parameters used in JOIN
>>eg
>>
>>select   ..
>>  from table1 ;
>>      join table2 on (table1.fld = table2.fld) and (table1.codeX = ?param)
>>...
>>
>
>Interesting. Going back to the question - do you see a way to somehow have the default parameter value saved with a view?
>
>It looks like in Amanda's case she needs to remember to set this parameter in Command Window before running validation program. Unless there is a way to do so in Stonefield.


I was just about to update - and I found out I had already gotten a reply

For documentation purposes (when I build doc about a view)
I do this
=View_ParameterList(m.ViewName, TRUE)
use (m.ViewName) again in 0 alias doctable nodata
=View_ParameterList(m.ViewName, FALSE)
It sets public parameters - I know - but it's for a couple of seconds anyway

The Parameterlist of the view has to be defined





&& StringToArray() = sort of alines()




*-------------------------------------
function View_ParameterList(ViewName, ParametersSet)

local Success
Success = TRUE

local i, aa[1], bb[1], pl, ParameterName, ParameterType

do case
case !indbc(m.ViewName, 'View')
Success = FALSE

otherwise
pl = dbgetprop(m.ViewName, 'View', 'ParameterList')

endcase

do case
case !m.Success

case empty(m.pl)

otherwise
for i = 1 to StringToArray(m.pl, @aa, ';')

do case
case StringToArray(aa[m.i], @bb) <> 2
assert FALSE

otherwise
ParameterName = bb[1]
ParameterType = strtran(bb[2], ['])

do case
case !m.ParametersSet
release (m.ParameterName)

otherwise
public (m.ParameterName)

do case
case inlist(m.ParameterType, T_CHARACTER)
store [TRUE] to (m.ParameterName)

case inlist(m.ParameterType, T_DATE)
store {} to (m.ParameterName)

case inlist(m.ParameterType, T_DATETIME)
store {/ / :} to (m.ParameterName)

case inlist(m.ParameterType, T_NUMERIC, T_FLOAT, T_DOUBLE)
store 0.00 to (m.ParameterName)

case inlist(m.ParameterType, T_CURRENCY)
store $0 to (m.ParameterName)

case inlist(m.ParameterType, T_INTEGER)
store 0 to (m.ParameterName)

case inlist(m.ParameterType, T_LOGICAL)
store FALSE to (m.ParameterName)

otherwise
assert FALSE

endcase

endcase
endcase
endfor
endcase

return m.Success

endfunc
*--------------------------------------------------------------------------
Gregory
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform