存储过程中如何使用域?(50分)

  • 主题发起人 主题发起人 microwave
  • 开始时间 开始时间
M

microwave

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在存储过程中参数可否使用域?为何我下面的代码不能通过,
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE INSERT_CUSTOMER
(
IID INTEGER,
INAME DNAME,
IAREA DAREA,
IADDR DADDR,
ITEL DTEL
)
RETURNS
(
RID INTEGER
)
AS
BEGIN EXIT; END ^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
其中 DNAME DAREA 等是已定义的域,

而改成下面这样后才可能通过,为什么?
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE INSERT_CUSTOMER
(
IID INTEGER,
INAME CHAR(8),
IAREA CHAR(2),
IADDR CHAR(50),
ITEL CHAR(15)
)
RETURNS
(
RID INTEGER
)
AS
BEGIN EXIT; END ^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
 
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE INSERT_CUSTOMER
(
IID INTEGER,
INAME DNAME,
IAREA DAREA,
IADDR DADDR,
ITEL DTEL
)
RETURNS
(
RID INTEGER
)
AS
BEGIN EXIT; END ^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
其中 DNAME DAREA 等是已定义的域,

而改成下面这样后才可能通过,为什么?
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;
/* Stored procedures */
CREATE PROCEDURE INSERT_CUSTOMER
(
IID INTEGER,
INAME CHAR(8),
IAREA CHAR(2),
IADDR CHAR(50),
ITEL CHAR(15)
)
RETURNS
(
RID INTEGER
)
AS
BEGIN EXIT; END ^
SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;
不要第一行,就能通过,我试过了,你用的应该是Intrbase
 
噢,是interbase ,为何有第一行就不能通过?
 
COMMIT WORK;
是提交事务,还没开始做就提交事了,这么行
 
我去掉了第一行:SET AUTODDL OFF;
可为何还是一样的错误?
 
INAME DNAME,
IAREA DAREA,
IADDR DADDR,
ITEL DTEL
没有 DAREA,DADDR,DTEL这种数据类型
 
dname,darea....是定义了的域啊,为何不能用?域是数据类型的别名啊,
 
你在哪里定义?
 
在 IBS 中定义的,这个问题我已经问了CSDN的BCB版主 TR@SOE,IB中的确不支持在SP中使用域
 
不支持,就不能运行。还有什么疑问?发分吧[:D]
 
谢谢 dopro,[:D]
 
后退
顶部