注册 登录
编程论坛 PowerBuilder

pb select 语句问题

slash1984 发布于 2007-06-28 17:23, 5149 次点击

我想实现实现这样的功能
select aa into :aa from aa where...
其中where后面的条件是动态的,可能在一个变量中,比如vs_filter中
但是 sql='select aa into :aa from aa where'+vs_filter
execute immediate:sql;
也是不正确的,请问大虾们,怎么解决?

9 回复
#2
sam20802007-06-29 12:17
你的方法好象不行吧,可以考虑结合数据窗datawindow或者datastore来实现
1、写好SQL语句select aa from aa where .....就不用写into了
2、把该语句设置为datawindow或者datastore的语法
3、取datawindow或者datastore的行数

其他不知道有没有更简单的方法,各位多多提意见
#3
ugly9278462007-06-29 19:47
应该可以的啊
#4
slash19842007-07-03 08:39

晕,问题仍然没有解决

#5
路過2007-07-03 09:09
sql='select aa from aa where'+vs_filter
execute immediate:sql;
#6
sam20802007-07-04 16:21
楼上,他语句里有into的语法,不能这样实现
#7
千金散尽2007-07-04 22:12
sql='select aa from aa where'+vs_filter
execute immediate:sql;
最权威的答案,五楼的
#8
sam20802007-07-05 10:00

#9
slash19842007-07-06 08:27

这个我知道,关键是我想把查到的数据写到一个变量里,怎么办,用into :aa又不正确,大家怎么不明白我的意思。

#10
路過2007-07-06 15:45


string sql,ls_filter,ls_end,ls_code
ls_filter = "dor_code = '001'"

//下句的sql缺點:只能返回一筆數據。
sql ="select ratem.dor_nm from ratem where "+ls_filter+" "

DECLARE CUR_PERWK DYNAMIC CURSOR FOR SQLSA ;
PREPARE SQLSA FROM :sql ;
OPEN DYNAMIC CUR_PERWK ;
FETCH CUR_PERWK INTO :ls_end ;


//處理數據
do while sqlca.sqlcode =0

INSERT INTO "test"
( "name",
"number",
"month",
"no" )
VALUES ( :ls_end,
66,
'',
'' ) ;

FETCH CUR_PERWK INTO :ls_end ;
loop;
CLOSE CUR_PERWK ;

if sqlca.sqlcode =0 then
commit;
MESSAGEBOX("提示",string(ls_end))
else
rollback;
messagebox("提示","錯誤~為:"+sqlca.sqlerrtext)
end if

1