Pb调用存储过程不成功

wb15906069675 2019-11-28 06:36:54
Pb调用存储过程不成功,但是直接执行成功的吗。原因是这个存储过程里面有动态的检索:EXECUTE(‘select *from table’).
这个要怎么处理?求大神解答一下。
...全文
261 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
洛阳大湖 2019-12-19
  • 打赏
  • 举报
回复
可以用datawindow使用存储过程,多省事呀。
SaviorZero 2019-12-11
  • 打赏
  • 举报
回复
prepare sqlsa from "execute 存储过程名称";
execute sqlsa
commit;
pb8 2019-11-30
  • 打赏
  • 举报
回复
用PB的动态SQL或语法动态创建SQL都可以实现你的需求,动态DW参考数据窗口的create语法,动态SQL如下图所示 STRING lsString,lsSQL,lsTable,lsColumn INT liInt DATETIME liTime LsSQL=”SELECT*FROM base WHERE code like?” PREPARE SQLSA FROM lsSQL; DESCRIB SQLSA INTO SQLDA;∥SQLDA中含有输入参数的描述 DECLARE cursor_base DYNAMIC CURSOR FOR SQLSA; SetDynamicparm(SQLDA,1,”32%”)∥传递参数值 OPEN DYNAMIC cursor_base USING DESCRIPTOR SQLDA; FETCH cursor_base USING DESCRIPTOR SQLDA; DO WHILE SALCA.SQLCODE=0  FOR liInt=1 TO SQLDA.NumOutPuts  CHOOSE CASE SQLDA.OutParmType[liInt]  CASE Typestring! lsString=GetDynamicString(SQLDA,liInt) ∥处理该字符型的字段 CASE TypeDateTime LsDateTime=GetDynamicDateTime(SQLDA,liInt ∥处理该日期型的字段 ∥处理其他类型的字段 END CHOOSE NEXT ∥将一条记录的所有字段取完后作相应的处理 FETCH cursor_base USING DESCRIPTOR SQLDA; LOOP CLOSE cursor_base;
WMERP 2019-11-30
  • 打赏
  • 举报
回复
用动态dw语句生成是一样的
wb15906069675 2019-11-28
  • 打赏
  • 举报
回复
引用 1 楼 pb8 的回复:
你写这段代码,是准备做什么?

在存储过程里面进行动态的行转列,业务上需要这么做。
pb8 2019-11-28
  • 打赏
  • 举报
回复
你写这段代码,是准备做什么?

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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