程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi存儲過程調用

Delphi存儲過程調用

編輯:Delphi

 網上對該問題的帖子很多,但是經常不是很全面,筆者在使用時也遇到了很多實際問題,比如參數不存在啊、類型沒有引用啊等等。下面我盡量細致地來通過例子實現一下,如果還有不正確的地方,希望得到高手指點,

  首先,我們使用一種簡單的方式,即通過控件的方式來定義存儲過程和數據源。

  新建一個單元,命名為: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;
      try
        Open;   //返回結果集用open,否則用EexcProc;
      except
       begin
         ShowMessage('打開表錯誤');
         Exit;
       end;
      end;
    //如果沒有在控件屬性中設置DataSourceAbove的DataSet屬性,可以在這裡設置:
    //DataSourceAbove.DatSet := DataMConn.ADOSPTempAbove 
    dgAbove.DataSource := DataMConn.DataSourceAbove;
  end;


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved