今天在blog中瞎逛的時候看見「
雨寒 」寫的一篇關於delphi中如何呼叫儲存過程的文章。寫的很詳細。崇拜之餘就找起了他文章中的毛病(同行相輕啊,鄙視自己一下)。發現他的文章中沒有提到對於具有返回值的儲存過程的呼叫方法。覺得應該寫上,於是馬上動手。
對於儲存過程的呼叫使用的控制項正如「雨寒」所說的那樣使用tadostoredproc控制項。
建立方法和連線都很簡單。
storpro:=tadostoredproc.create(nil);
然後定義儲存過程的名字和輸入引數:
storpro.procedurename:=proname;
storpro.parameters.clear;
storpro.close;
storpro.parameters.createparameter('as_gh', ftstring, pdinput , 10, null);
storpro.parameters.createparameter('as_in', ftstring, pdinput , 100, null);
storpro.parameters.createparameter('as_out', ftstring, pdoutput , 255, null);
大家可能看到函式createparameter中的第3個引數,pdinput 就是用來定義此引數是輸入引數函式輸出引數。具體的引數函式是:儲存過程引數名稱、型別、輸入輸出引數型別、長度還有就是最後乙個引數delphi幫助中說是value: olevariant,不過我沒有用過。一般我賦值為null。
上面的過程是定義這個儲存過程的引數。在呼叫的時候自然需要給引數賦值。
賦值過程為(其中workid和dataid是事先定義好的兩個變數):
storpro.parameters[0].value :=workid;
storpro.parameters[1].value :=dataid;
賦值完成後執行此儲存過程:
storpro.prepared:=true;
storpro.execproc;
好了儲存過程呼叫以後,我們希望得到這次儲存過程返回的引數'as_out'的值。
fxh7622:=storpro.parameters.parambyname('as_out').value;
這個時候儲存過程返回的值就儲存在了fxh7622裡面。
其實獲得儲存過程的返回值比較簡單,希望對大家有幫助。
fxh7622
Delphi下呼叫有返回值的儲存過程
對於儲存過程的呼叫使用的控制項tadostoredproc。建立方法和連線都很簡單。storpro tadostoredproc.create nil 然後定義儲存過程的名字和輸入引數 storpro.procedurename proname storpro.parameters.clear st...
有返回值的函式呼叫
有返回值的sql儲存過程 sqlconnection sqlconn new sqlconnection conn sqlcommand cmd new sqlcommand cmd connection sqlconn cmd commandtext categoriestest3 cmd com...
有返回值和無返回值函式
前面在定義函式時,有些函式使用了return語句,有些函式沒有使用return語句,使用return語句與不使用return語句有什麼區別呢?由前面的章節我們知道,若定義函式時沒有使用return語句,則預設返回乙個none。要返回乙個none,可以只寫乙個return,但要返回具體的數值,就需要在...