一个有关循环插入的问题

macong 2009-01-05 04:13:48
想把筛选出来的多条数据插入到另一个数据表中,大家帮我看看这样的循环怎么不行
llcount=dw_1.getrow()
for i =1 to llcount
select max(id) into:lid from table_b;
if isnull(lid) then lid=1
id=string (lid+1)
insert into table_b(id,userid,mineno,name,useraddr,year,usemonth,prjid1,waterreal,paytotal,operid,opertime)
values(:id,:luserid,:lmineno,:lname,:luseraddr,:lyear,:lusemonth,:lprjid1,:lwaterreal,:lpaytotal*(-1),:loperid,:lopertime);
可是这样就不循环,总是插入第一条记录,请问怎么回事
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyf32145 2009-01-06
  • 打赏
  • 举报
回复
想把筛选出来的多条数据插入到另一个数据表中,大家帮我看看这样的循环怎么不行

select max(id) into:lid from table_b;

-------------
问题出在这里,在所有的循环里,你取的都是同一个ID!
在程序里写select只会返回一条记录,除非加where,每次取一条不同的数据!
macong 2009-01-05
  • 打赏
  • 举报
回复
有commit的
sixty3 2009-01-05
  • 打赏
  • 举报
回复
insert后要commit:的
liubocy 2009-01-05
  • 打赏
  • 举报
回复
select max(id) into:lid from table_b;
if isnull(lid) then lid=1
放在循环外

id=string (lid+1)
改成
id=string (lid + i)
macong 2009-01-05
  • 打赏
  • 举报
回复
仍插入的是一条记录
macong 2009-01-05
  • 打赏
  • 举报
回复
仍插入的是一条记录
weijiawei1130 2009-01-05
  • 打赏
  • 举报
回复
llcount=dw_1.getrow() 获取的肯定是一行
llcount=dw_1.rowcount()获取DW全部行
spring_cj 2009-01-05
  • 打赏
  • 举报
回复


llcount=dw_1.rowcount()

752

社区成员

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

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