一个参数视图如下:
SELECT L_cansh.bianh, L_cansh.minch, L_cansh.lib;
FROM ;
L_cansh;
WHERE L_cansh.lib = ?lc_m1 ;
ORDER BY L_cansh.minch
当lc_m1=C时返回内容如下:
bianh minch lib
1012 "焊接面" "C"
1023 "无字符" "C"
1011 "元件面" "C"
请问:当lc_m1为何值时,可以返回L_cansh表中的所有内容?
或者说以上视图应该如何写,才能按要求返回部分内容或全部内容?
核心问题是:如何解决同一参数的多次引用问题?
根据执行查询前参数是否已经存在,分两种情况讨论:
一、参数在执行查询前存在:
这种情况下最简单,不必担心参数的重复引用问题,如:
SELECT ... WHERE ISNULL(?lc_ml)=.T. OR L_cansh.lib=?lc_m1 ...
二、参数在执行查询前不存在,查询时自动弹出对话框要求用户输入
这种情况下重复引用会导致多次输入提示,就象是不同的查询参数
也许可以用自定义函数的办法解决,但无法在视图设计器中调用自定义函数
不用视图设计器建立视图的情况下未经测试。