怎么将带有retrieval arguments的DW, 获取全部的记录
如何将带有retrieval arguments的DW, 获取全部的记录
带有retrieval arguments的DW, 想获取不带参数时的全部记录,请问可以么?
------解决思路----------------------
如果没用过动态SQL,可以考虑一下用动态SQL进行替换,然后进行操作。
PowerBuilder If the current SELECT statement for dw_emp retrieves no rows, the following statements replace it with the syntax in NewSyn: string OldSyn, NewSyn
OldSyn:旧SQL
NewSyn:行SQL
OldSyn = &
'SELECT employee.EMP_Name FROM employee' &
+ 'WHERE salary < 70000'
NewSyn = 'SELECT employee.EMP_Name FROM employee' ‘
IF dw_emp.Retrieve( ) = 0 THEN
dw_emp.SetSQLSelect(NewSyn)
dw_emp.Retrieve()
END IF
------解决思路----------------------
如果参数类型为string,你的sql可以为
select 1 from table where name like :as_1
dw_1.retrieve('%')这样可以检索全部数据
或者动态创建一个数据窗口,把where条件去掉
------解决思路----------------------
一、上面说的都可以;
二、如果不想弄成动态拼接,条件也相对复杂,可以加个条件,int isall
where (原有条件) or (1=:isall)
需要其他参数有效时,isall=0
如果其他参数失效时,isall=1
带有retrieval arguments的DW, 想获取不带参数时的全部记录,请问可以么?
------解决思路----------------------
如果没用过动态SQL,可以考虑一下用动态SQL进行替换,然后进行操作。
PowerBuilder If the current SELECT statement for dw_emp retrieves no rows, the following statements replace it with the syntax in NewSyn: string OldSyn, NewSyn
OldSyn:旧SQL
NewSyn:行SQL
OldSyn = &
'SELECT employee.EMP_Name FROM employee' &
+ 'WHERE salary < 70000'
NewSyn = 'SELECT employee.EMP_Name FROM employee' ‘
IF dw_emp.Retrieve( ) = 0 THEN
dw_emp.SetSQLSelect(NewSyn)
dw_emp.Retrieve()
END IF
------解决思路----------------------
如果参数类型为string,你的sql可以为
select 1 from table where name like :as_1
dw_1.retrieve('%')这样可以检索全部数据
或者动态创建一个数据窗口,把where条件去掉
------解决思路----------------------
一、上面说的都可以;
二、如果不想弄成动态拼接,条件也相对复杂,可以加个条件,int isall
where (原有条件) or (1=:isall)
需要其他参数有效时,isall=0
如果其他参数失效时,isall=1