打印本文 打印本文  关闭窗口 关闭窗口  
VFP中调用Oracle的存储过程
作者:佚名  文章来源:不详  点击数  更新时间:2008/4/18 14:51:40  文章录入:杜斌  责任编辑:杜斌

  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 环境下运行通过。
打印本文 打印本文  关闭窗口 关闭窗口