Anywhere数据库动态SQL返回值

lim2009net 2009-07-26 11:43:31
在PB中写有:
String ls_sql,ls_max//定义两个变量
ls_sql = "select Max(字段) From 表格 where ..."//表跟字段是变量 所以用了动态Sql
execute immediate :ls_sql using sqlca;//连接的是anywhere数据库
我想把这个SQL的返回值 赋给变量ls_max,请问要怎么写啊?
...全文
80 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshilitao5 2009-08-05
  • 打赏
  • 举报
回复
哈哈 这个简单
lim2009net 2009-07-28
  • 打赏
  • 举报
回复
謝謝各位, 四樓<xys_777>您的回答是我想要的.
永生天地 2009-07-28
  • 打赏
  • 举报
回复
这句忘了加冒号
PREPARE SQLSA FROM :ls_sql ;
永生天地 2009-07-28
  • 打赏
  • 举报
回复
楼上几位说的不错,我给写个用sql语句实现的办法吧。
用第3类动态sql语句即可实现:
long ll_max
String ls_tablename,ls_column,ls_sql

ls_tablename = "Department"
ls_column = 'id'
ls_sql="select max("+ls_column+") from "+ls_tablename+" where 1=1 "

DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ;
PREPARE SQLSA FROM ls_sql ;
OPEN DYNAMIC my_cursor ;
FETCH my_cursor INTO :ll_max;
CLOSE my_cursor;
jlwei888 2009-07-28
  • 打赏
  • 举报
回复
可以用动态的DW,来取返回值!
execute immediate 是没有结果集的!
eviler 2009-07-28
  • 打赏
  • 举报
回复
这样的问题,直接使用 动态 datastore 方便的很 ,这个动态datastore可以写一个通用的 ,传入sql ,直接返回 datastore可以使用的 ,然后的操作 我相信你比我还熟
phonixman 2009-07-28
  • 打赏
  • 举报
回复
若表不是很多,可以考虑直接在pb脚本中select max(字段) to :ls_max

1,075

社区成员

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

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