declare XXX cursor for (select),如果select语句是变量怎么办??

stop__ 2007-03-24 05:42:41
declare c1 cursor for
select * from test;
通常
select * from test;是固定的
但是现在我的
select语句是变动的,比如要根据某个变量加个where 子句,该怎么办??
...全文
1800 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mingchen23 2007-09-22
  • 打赏
  • 举报
回复
晕``不够分结贴```不好意思啊``kucool()
kucool 2007-03-26
  • 打赏
  • 举报
回复
string Stringvar, Sqlstatement
int Intvar
Sqlstatement = "SELECT emp_id FROM employee"
PREPARE SQLSA FROM :Sqlstatement ;
DESCRIBE SQLSA INTO SQLDA ;
DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
OPEN DYNAMIC my_cursor USING DESCRIPTOR SQLDA ;
FETCH my_cursor USING DESCRIPTOR SQLDA ;
//当FETCH 语句执行成功时动态描述区SQLDA 中包含了结果集的
//第一行数据反复执行FETCH 语句即可得到其余数据
// SQLDA.NumOutputs 中包含了输出参数的个数
// SQLDA.OutParmType 数组中包含了各参数的数据类型
//例如TypeInteger!, 或 TypeString!等
//使用CHOOSE CASE 语句针对不同的输出参数类型调用不同的对象函数
//得到相应参数的值
CHOOSE CASE SQLDA.OutParmType[1]
CASE TypeString!
Stringvar = GetDynamicString(SQLDA, 1)
CASE TypeInteger!
Intvar = GetDynamicNumber(SQLDA, 1)
END CHOOSE
CLOSE my_cursor;
stop__ 2007-03-26
  • 打赏
  • 举报
回复
也就是说参数的个数是不定的。
stop__ 2007-03-26
  • 打赏
  • 举报
回复
//用exec()执行
exec仅仅能执行没有返回结果的。
//拼装sql 语句字符串
select 语句是变动的,比如
参数type=1,sql是select * from test
参数type=2,sql是select * from test where type=2
这个怎么执行?

楠峰之南 2007-03-26
  • 打赏
  • 举报
回复
同意楼上的
用exec()执行
lmby 2007-03-24
  • 打赏
  • 举报
回复
拼装sql 语句字符串

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧