萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> VFP中調用Oracle的存儲過程

VFP中調用Oracle的存儲過程

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 環境下運行通過。

copyright © 萬盛學電腦網 all rights reserved