網上對該問題的帖子很多,但是經常不是很全面,筆者在使用時也遇到了很多實際問題,比如引數不存在啊、型別沒有引用啊等等。下面我盡量細緻地來通過例子實現一下,如果還有不正確的地方,希望得到高手指點,有興趣的可以和我一同**。
首先,我們使用一種簡單的方式,即通過控制項的方式來定義儲存過程和資料來源。
新建乙個單元,命名為:datamconn,在加入乙個ado單元下的adostoredproc,這裡命名為adosptempabove ,再加入data access單元下的乙個datasource,這裡命名為datasourceabove,設定datasourceabove的dataset屬性為 adosptempabove,當然這個屬性也可以在程式中指定。
下面,可以在另乙個單元中新增乙個datagrid,這裡的命名為dgabove。下面的**加了詳細注釋。
with datamconn.adosptempabove do
begin
procedurename := 'getabove'; //指定儲存過程名稱
parameters.clear; //清除原有引數
//以下建立了兩個新的引數,關於如何傳遞表名做為引數請參我在 資料庫 分類的高階應用中寫的文章。
parameters.createparameter(
'@tablename',ftstring,pdinput,20,0);
parameters.createparameter(
'@strdate',ftstring,pdinput,20,0);
//以下為引數賦值
parameters.parambyname(
'@tablename').value := temptablename;
parameters.parambyname(
'@strdate').value := strdate;
tryopen; //返回結果集用open,否則用eexcproc;
except
begin
showmessage('開啟表錯誤');
exit;
end;
end;
//如果沒有在控制項屬性中設定datasourceabove的dataset屬性,可以在這裡設定:
:= datamconn.adosptempabove
dgabove.datasource := datamconn.datasourceabove;
end;
DELPHI儲存過程呼叫
首先,我們使用一種簡單的方式,即通過控制項的方式來定義儲存過程和資料來源。新建乙個單元,命名為 datamconn,在加入乙個ado單元下的adostoredproc,這裡命名為adosptempabove 再加入data access單元下的乙個datasource,這裡命名為datasource...
DELPHI如何呼叫儲存過程
第一步建立儲存過程 create proc myabc a int b int,c int output asset c a b 在sql中使用查詢分析器執行 declare a int,b int,c int set a 250 set b 40 exec myabc a,b,c output 注...
DELPHI如何呼叫儲存過程
第一步建立儲存過程 create proc myabc a int b int,c int output asset c a b 在sql中使用查詢分析器執行 declare a int,b int,c int set a 250 set b 40 exec myabc a,b,c output 注...