vfp由于其通俗、易用,深受廣大開發(fā)人員的歡迎,但其安全性與穩(wěn)定性卻不十分完善。而oracle在此方面的優(yōu)點是有口皆碑的,兩者結(jié)合,能開發(fā)出高效、安全和穩(wěn)定的應(yīng)用系統(tǒng)。有關(guān)在vfp中調(diào)用oracle存儲過程方法的資料較少,下面就此舉一簡單例子,希望起到拋磚引玉的作用。 此方法適用于用vfp作前端開發(fā)工具、oracle作后端數(shù)據(jù)庫的c/s開發(fā)方法。
在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端),假設(shè)已建立好與oracle的鏈接′vfplink′(具體步驟可以參閱vfp的幫助文檔):
打開鏈接:
nhand=sqlconnect(′vfplink′)
&&nhand為返回的鏈接句柄
調(diào)用oracle的存儲過程p—update—gzb:
此存儲過程有兩個參數(shù),分別是id與gz, 我們設(shè)要更新id為2的員工的gz為5000,則可以執(zhí)行:
sqlexec(nhand , ′{call p—update—gzb(2,5000)}′)
如果執(zhí)行成功,則返回1,失敗則返回-1。我們可以執(zhí)行以下命令驗證存儲過程是否成功執(zhí)行了:
sqlexec(nhand,′select * from gzb′)
brow
結(jié)果是:
| id | gz |
| 1 | 3050 |
| 3 | 2500 |
| 2 | 5000 |
可見,oracle的存儲過程p—update—gzb已經(jīng)成功執(zhí)行了,最后,別忘了斷開連接:
disconnect(nhand)
以上例子在vfp6.0、oracle 7.3.3 環(huán)境下運行通過。
新聞熱點
疑難解答
圖片精選