调用存储过程和函数!!!!在线等待中.........

海洋‘s 2002-05-25 01:11:01
***************************函数内容:
FUNCTION inp_fun_dbsh1(v_jhid IN VARCHAR2,v_report OUT VARCHAR2)
--返回0,有错误,错误内容见report
--返回1,无错误,report报告全部正确,可以提交。
RETURN NUMBER IS
BEGIN
IF substr(v_jhid,1,1) = '港' THEN
v_report := '数据表“AC01”,主关键字“1,1”,字段“顶界深度,孔隙度”录入错误,请改正';
return 0;
ELSE
v_report := '全部数据录入正确,可以向成果库转移';
RETURN 1;
END IF;
END;
这个函数保存在数据库中,请问我在应用程序中的“开始审核”按钮的Click事件中如何调用他
...全文
84 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
海洋‘s 2002-05-26
  • 打赏
  • 举报
回复
问题已经解决,谢谢大家。
swjtu95 2002-05-25
  • 打赏
  • 举报
回复
多看看帮助:
embedded SQL
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
大家继续啊
jackygan 2002-05-25
  • 打赏
  • 举报
回复
asa 7 的语法,ms sql server以及oracle差不多的:
假定表单为:
sys_sequence (table_name varchar(40) not null,cur_sequence numeric(15) not null,attribute varchar(2));
存储过程:

create procedure dba.sys_get_sequence(@as_table_name varchar(40))
as
begin
declare @next_sequence numeric(15)
select @next_sequence=cur_sequence from sys_sequence where sys_sequence.table_name=@as_table_name
if @next_sequence is null
begin
insert into sys_sequence(table_name,cur_sequence,seq_type) values(@as_table_name,1,'A')
select @next_sequence=1
select @next_sequence
end
else
begin
select @next_sequence=@next_sequence+1
update sys_sequence set cur_sequence=@next_sequence where sys_sequence.table_name=@as_table_name
select @next_sequence
end
end

这个存储过程可以在PB或Sybase Central中创建,你也可以加入事务控制来保证唯一性。
创建完毕后,分配权限:grant execute on sys_get_sequence to public;然后就可以在程序中调用了:
PB中,创建一个全局函数:
long gf_get_sequence(string as_table_name)
Decimal ld_seq_id
DECLARE get_seq_id procedure for sys_get_sequence :as_seq_name;
EXECUTE get_seq_id;
FETCH get_seq_id INTO :ld_seq_id ;
Close get_seq_id ;
Return ld_seq_id



存储过程的语法你稍微改一下就可以了。

海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
关键就是如何执行一个存储过程,我是这么写的:
Declare inp_fun_jhid Procedure FOR
inp_fun_dbsh1('港38',i,str)

EXECUTE inp_fun_jhid;
snowarea 2002-05-25
  • 打赏
  • 举报
回复
{ objectname.} { type } { calltype } { when } functionname ( { argumentlist } )
objectname是对象名;type取值为FUNCTION或EVENT,用于指明访问函数还是事件,缺省值为FUNCTION;calltype用于指明PowerBuilder 查找函数的时机,有效取值为:n STATIC(缺省值):编译时查找函数,若不存在,产生编译错误n DYNAMIC:程序运行时查找函数,若不存在,产生运行错误when用于指明函数或事件是立即执行呢还是当前程序段执行完毕后执行,取值为:TRIGGER(缺省值):立即执行POST:当前程序段执行完毕后执行functionname指明调用的函数或事件名称argumentlist给出函数或事件的参数例如,想把输入焦点移动到单行编辑框sle_name上,程序中写上语句:sle_name.SetFocus()即可。想立即执行按钮cb_name的单击事件处理程序,那么写上语句:cb_name .EVENT TRIGGER Clicked()
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
看来大家真的很忙啊,都快要急死人了.....
myclife 2002-05-25
  • 打赏
  • 举报
回复
我在用QQ帮你找人呢。
海洋‘s 2002-05-25
  • 打赏
  • 举报
回复
大家给看看啊

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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