VFP中调用Oracle的存储过程
2007-05-13 12:30:25 来源:WEB开发网核心提示:VFP由于其通俗、易用,深受广大开发人员的欢迎,VFP中调用Oracle的存储过程,但其安全性与稳定性却不十分完善,而Oracle在此方面的优点是有口皆碑的,Oracle的存储过程p—update—gzb已经成功执行了,最后,两者结合,能开发出高效、安全和稳定的应用系统
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 环境下运行通过。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接