Illegal cursor operation attempt????

li_zhifu 2003-06-20 03:57:39
Sybase SQL Anywhere Server

表1
Create Table GFT_YHGEDA_TEMP
(
I_LIUSHUIH int Not NULL default autoincrement,
--ID
C_GEBIANHAO char(7),
--个表编号
C_BIAOHAO varchar(10),
--出厂编号
C_BIAOXH varchar(20),
--表型号
C_BIAOCD varchar(20),
--表生产厂家
C_BIAOCCRQ varchar(10),
--表出厂日期
C_YONGHUQX varchar(20),
--个表所在区县
C_STATE char check (C_STATE in ('0','1')),
--标记,0指新增,1指删除;对删除来说,有意义的仅有C_GEBIANHAO、C_STATE
primary key (I_LIUSHUIH)
)

表2
Create Table GFT_BiaoDetail
(
c_Gebianhao char(7) not null,
c_no char(4),
--编号
primary key (c_Gebianhao),
)

create table gft_ranqibiao
(
c_no char(4),
--编号
c_biaojg varchar(20),
--表结构
c_biaogg varchar(20),
--表规格
i_biaows integer,
--表位数
c_biaoll varchar(20),
--表流量
c_biaoxh varchar(20),
--表型号
c_biaocd varchar(20),
--表产地
--c_biaosxh varchar(20),
--二次仪表型号
--c_biaosbh varchar(20),
--二次仪表编号
primary key (c_no),
--每一记录对应一种表,表型号与生产厂家确定一种表
)


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

请问在向GFT_YHGEDA_TEMP中加入数据时
insert into gft_yhgeda_temp (c_gebianhao,c_biaoxh,c_biaocd,c_state) values ('9999901','LUXZ-20B','天信',0)
为什么会报错
“Illegal cursor operation attempt”?
去掉对应GFT_YHGEDA_TEMP的触发器就没问题了,我知道问题肯定是出在触发器代码上,请各位大虾帮看一下
...全文
54 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zhang21cnboy 2003-06-23
你前面的时候,条件查询出来的结果是多个!

执行插入操作的话,当然会错误!
  • 打赏
  • 举报
回复
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
  • 打赏
  • 举报
回复
blueshu 2003-06-23
up
  • 打赏
  • 举报
回复
sowine 2003-06-21

我真的不懂。

不过根据电脑提示及你的提示,是不是数据库内部的指针出问题?--猜想
  • 打赏
  • 举报
回复
hhytsoft 2003-06-20
终于看到有人用Sybase数据库的人,可惜这各问题我不会
  • 打赏
  • 举报
回复
Delphi_Li 2003-06-20
Up!!!
  • 打赏
  • 举报
回复
li_zhifu 2003-06-20
从字面理解应该是“非法的游标操作”,关键是怎么解决?
  • 打赏
  • 举报
回复
相关推荐
建立一个数据库名为jdglxt create database jdglxt; on ( name='酒店管理_主',filename='d:\新建文件夹\jdglxt.mdf', size=5MB,maxsize=10MB,filegrowth=1MB ), ( name='酒店管理_辅',filename='d:\新建文件夹\jdglxt.ndf', size=5MB,maxsize=10MB,filegrowth=1MB ) 5.3建立表 打开jdglxt数据库,建立如下表; 5.3.1管理员表user_info create table user_info ( u_name varchar(20) not null primary key, u_permission varchar(10)not null, u_psw varchar(16) default '', ) 5.3.2客房表room create table room ( r_no int not null primary key, r_type varchar(20) not null, r_price int not null, r_booked varchar(20) default '空' not null, ) 5.3.3顾客表customer create table customer ( c_no varchar(20) primary key, c_name varchar(20) not null, c_pay int null, c_booktime datetime, c_not text null ) 5.4插入测试数据 5.4.1插入管理员信息 Insert into user_info(u_name,u_permission) values('admin','高级') insert into user_info(u_name,u_permission) values('user','普通') 5.4.2插入客房信息 insert into room(r_no,r_type,r_price) values(1001,'豪华',388) insert into room(r_no,r_type,r_price) values(1002,'普通',188) insert into room(r_no,r_type,r_price) values(1003,'豪华',388) insert into room(r_no,r_type,r_price) values(1004,'普通',188) insert into room(r_no,r_type,r_price) values(2001,'豪华',388) insert into room(r_no,r_type,r_price) values(2002,'普通',188) insert into room(r_no,r_type,r_price) values(2003,'豪华',388) 5.4.3插入顾客信息 insert into customer(c_name,c_no,c_pay,c_booktime) values('张三','1234567891011',188,'2011-11-11') insert into customer(c_name,c_no,c_pay,c_booktime) values('李四','1234567891012',388,'2011-11-14') insert into customer(c_name,c_no,c_pay,c_booktime) values('王五','1234567891013',188,'2011-11-7') insert into customer(c_name,c_no,c_pay,c_booktime) values('毛毛','1234567891014',388,'2011-11-6') insert into customer(c_name,c_no,c_pay,c_booktime) values('海哥','1234567891015',188,'2011-11-10') insert into customer(c_name,c_no,c_pay,c_booktime) values('小林','1234567891016',388,'2011-11-6') insert into customer(c_name,c_no,c_pay,c_booktime) values('小白','1234567891017',188,'2011-11-11') insert into customer(c_name,c_no,c_pay,c_booktime) values('小阳','1234567891018',388,'2011-11-15')
发帖
数据库相关

2473

社区成员

Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
帖子事件
创建了帖子
2003-06-20 03:57
社区公告
暂无公告