>>>vp_studentRule = [( Student.cid <> 'ZZZZZZ')]
>>>
>>>in the command window before validating, the DBC validates without error.>>select .. >> from table1 ; >> join table2 on (table1.fld = table2.fld) and (table1.codeX = ?param) >>... >>>
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
&& 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