首先,我們使用一種簡單的方式,即通過控制項的方式來定義預存程序和資料來源。建立一個單元,命名為: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;