首页 > 数据库 > Oracle > 正文

VFP中调用Oracle的存储过程

2024-08-29 13:32:22
字体:
来源:转载
供稿:网友

  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

   结果是:

idgz
13050
32500
25000

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

   disconnect(nhand)

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表