VFP中调用Oracle的存储过程

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

VFP由于其通俗、易用,深受广大开发人员的欢迎,但其安全性与稳定性却不十分完善。而Oracle在此方面的优点是有口皆碑的,两者结合,能开发出高效、安全和稳定的应用系统。有关在VFP中调用Oracle存储过程方法的资料较少,下面就此举一简单例子,希望起到抛砖引玉的作用。此方法适用于用VFP作前端开发工具、Oracle作后端数据库的C/S开发方法。

在Oracle端,建有如下表和存储过程:

表gzb如下:

SQL〉select * from gzb; ID

GZ

1

3050

3

2500

2

4000.8

存储过程如下:

create or replace procedure p_update―gzb (p―id in number, p―gz in number) as

begin

update gzb set gz=p―gz where id=p―id;

commit;

end;

在前端(VFP端),假设已建立好与Oracle的链接′vfplink′(具体步骤可以参阅VFP的帮助文档):

打开链接:

nhand=sqlconnect(′vfplink′)

&&nhand为返回的链接句柄

调用Oracle的存储过程p―update―gzb:

此存储过程有两个参数,分别是id与gz, 我们设要更新id为2的员工的gz为5000,则可以执行:

sqlexec(nhand , ″{call p―update―gzb(2,5000)}″)

如果执行成功,则返回1,失败则返回-1。我们可以执行以下命令验证存储过程是否成功执行了:

sqlexec(nhand,′select * from gzb′)

brow

结果是:

ID

GZ

1

3050

3

2500

2

5000

可见,Oracle的存储过程p―update―gzb已经成功执行了,最后,别忘了断开连接:

disconnect(nhand)

以上例子在VFP6.0、Oracle 7.3.3 环境下运行通过。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航