ailmheqin 发表于 2007-7-17 12:15

在線等幫助謝謝

Date l_rq<BR>dw_2.AcceptText()<BR>String l_card,l_money,l_row<BR>l_rq = dw_2.GetItemDate(1,'rq')<BR>l_card = dw_2.GetItemString(1,'bankcardno')<BR>l_money = dw_2.GetItemString(1,'money')<BR>SELECT bankcardno INTO :l_row FROM vip_active1 WHERE bankcardno = :l_card ;<BR>IF SQLCA.SQLCODE=0 THEN<BR> MessageBox('提示','該卡號存在')<BR>    Return<BR> ELSE<BR>   INSERT INTO vip_active1 VALUES(:l_card,:l_money,to_date(:l_rq));<BR>   COMMIT;<BR>   MessageBox('提示','保存成功')<BR>END IF<BR><BR>這個語句不判斷重復的卡號~~我用相同的卡號進行保存還是可以保存成功

sam2080 发表于 2007-7-17 13:14

可以这样改改<BR>法一:<BR>Date l_rq<BR>dw_2.AcceptText()<BR>String l_card,l_money --,l_row<BR>Long   ll_count = 0<BR>--如果数据窗可能 有多条数据的话,必须进行循环判断<BR>l_rq = dw_2.GetItemDate(1,'rq')<BR>l_card = dw_2.GetItemString(1,'bankcardno')<BR>l_money = dw_2.GetItemString(1,'money')<BR>--SELECT bankcardno INTO :l_row FROM vip_active1 WHERE bankcardno = :l_card ;<BR>Select count(*) Into :ll_count From vip_active1 Where bankcardno = :l_card;<BR>--IF SQLCA.SQLCODE=0 THEN<BR>If ll_count &gt; 0 Then<BR>MessageBox('提示','該卡號存在')<BR>    Return<BR>ELSE<BR>   INSERT INTO vip_active1 VALUES(:l_card,:l_money,to_date(:l_rq));<BR>   COMMIT;<BR>   MessageBox('提示','保存成功')<BR>END IF<BR><BR>法二:<BR>修改下数据结构,把bankcardno改为不可重复的字段

千金散尽 发表于 2007-7-17 14:18

<P>Select count(*) Into :ll_count From vip_active1 Where bankcardno = :l_card;<BR>--IF SQLCA.SQLCODE=0 THEN<BR>If ll_count &gt; 0 Then<BR>update vip_active1 <BR>set l_money = '总和'<BR>where bankcardno = :l_card;<BR>ELSE<BR>   INSERT INTO vip_active1 VALUES(:l_card,:l_money,to_date(:l_rq));<BR>   COMMIT;<BR>   MessageBox('提示','保存成功')<BR>END IF<BR></P>

ailmheqin 发表于 2007-7-17 16:24

<P>ok了謝謝啊~<BR></P>

ugly927846 发表于 2007-7-17 20:19

厉害

页: [1]

编程论坛