急!400分求救触发器问题!!

li_zhifu 2003-06-20 04:29:13
http://expert.csdn.net/Expert/TopicView1.asp?id=1939139
哪位大虾解决了,两贴同时给分,共400分
...全文
107 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitetiger8 2003-06-23
  • 打赏
  • 举报
回复
学习
whitetiger8 2003-06-23
  • 打赏
  • 举报
回复
呵呵,解决就好...祝贺..
星星 2003-06-23
  • 打赏
  • 举报
回复
SyBase无能为力!
li_zhifu 2003-06-23
  • 打赏
  • 举报
回复
--解决了,代码如下,请哪位高手给解释一下为何这样就可以了,而上面的就不行
alter trigger wei.tia_gft_yhgeda_temp after insert on
wei.GFT_YHGEDA_TEMP
referencing new as new_i
for each row begin
if new_i.c_state = 0 then
insert into GFT_BiaoDetail values(new_i.c_gebianhao,(select GFT_RANQIBIAO.c_no from GFT_RANQIBIAO where
GFT_RANQIBIAO.c_biaoxh = new_i.c_biaoxh and GFT_RANQIBIAO.c_biaocd = new_i.c_biaocd))
end if
end
Delphi_Li 2003-06-21
  • 打赏
  • 举报
回复
老大,要不你把所有要插入GFT_biaodetail的数据都存储在临时变量中,然后进行插入!!!
blueshu 2003-06-21
  • 打赏
  • 举报
回复
sql server或许我也能帮上你
呵呵
li_zhifu 2003-06-20
  • 打赏
  • 举报
回复
我用的是Sybase
li_zhifu 2003-06-20
  • 打赏
  • 举报
回复
Oracle的语法和别的不太一样
Delphi_Li 2003-06-20
  • 打赏
  • 举报
回复
老大,或者使用游标!!!
if new_ins.c_state = 0 then
c_Cur In( select c_no from GFT_RANQIBIAO where c_biaoxh = new_ins.c_biaoxh and c_biaocd = new_ins.c_biaocd ) Loop
insert into GFT_biaodetail values(new_ins.c_gebianhao,c_Cur.c_no)
End Loop
end if


写法上可能有错误!!!这是Oracle的写法,我不知道你使用的是什么数据库,所以我只能照猫画虎了!!!
Delphi_Li 2003-06-20
  • 打赏
  • 举报
回复
不会吧???

我在Oracle中作了一个类似的实验没有发生错误!!!

为使么要使用referencing new as new_ins

直接使用New.XXXX不行吗???
li_zhifu 2003-06-20
  • 打赏
  • 举报
回复
我试过这样做,可是这样就会把referencing new as new_ins
这句滤掉,我也不知是怎么回事
Delphi_Li 2003-06-20
  • 打赏
  • 举报
回复
原文:
alter trigger wei.tia_gft_yhgeda_temp after insert on
wei.GFT_YHGEDA_TEMP
referencing new as new_ins
for each row
begin
if new_ins.c_state = 0 then
select c_no from GFT_RANQIBIAO where c_biaoxh = new_ins.c_biaoxh and c_biaocd = new_ins.c_biaocd;
insert into GFT_biaodetail values(new_ins.c_gebianhao,GFT_RANQIBIAO.c_no)
end if
end

错误:
insert into GFT_biaodetail values(new_ins.c_gebianhao,GFT_RANQIBIAO.c_no)
^^^^^^^^^^^^^^^^^
end if
解决:
你应该把前面Select的C_No保存在一个变量中,然后在后面的Insert中使用该变量!!!

2,507

社区成员

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

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