当前位置: 代码迷 >> PB >> 初学者!讲数据导入数据库,并判重
  详细解决方案

初学者!讲数据导入数据库,并判重

热度:156   发布时间:2016-04-29 09:24:42.0
菜鸟求救!!!讲数据导入数据库,并判重。
做一个图书管理系统,现要把数据导入数据库中“图书信息”的表中,表的主键是“书号”
由于导入书号相同的话,要更改数据库中该书的库存。我的代码是这样:
一直没实现导入和去重的功能,如果后面加上dw_1update()的话,主键相同的导入就发生错误了。
该怎么办?高手请详细……我才学这个。
integer n,m1,m2,current_row,i,is_num,n1 
string s_sn 
dw_1.settransobject(sqlca)
n1=dw_1.rowcount()
dw_1.insertrow(0) 
dw_1.accepttext() 
for i = 1 to n1
is_num=0
s_sn=dw_1.getitemstring(i,"书名") 
n=dw_1.GetItemNumber(i,"数量")
select count(书名) into :is_num from 图书信息 where 书名=:s_sn using sqlca; 
select 图书信息.数量,图书信息.库存 into :m1 :m2 from 图书信息 where 图书信息.书名=:s_sn using sqlca;
if is_num>0 then

m1=m1+n
m2=m2+n
update 图书信息
set 图书信息.数量=: m1, 图书信息.库存=: m2
where 图书信息.书名=:s_sn;

  else 
MessageBox('xitongtishi','hai')
  dw_1.scrolltorow(i) 
update 图书信息
set 图书信息.库存=: n
where 图书信息.书名=:s_sn;

  end if
next

------解决方案--------------------
else后面应该是Insert而不是update了

或者是循环找重复的书名的行,在更新库存后delete该行。最后剩下的就是不重复书名的数据了,update就可以了
------解决方案--------------------
dw_1.insertrow(0)
这句干什么
  相关解决方案