線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1343
推到 Plurk!
推到 Facebook!

關於會傳回多個資料集的TADOStoredProc的處理

尚未結案
tewcc
一般會員


發表:3
回覆:4
積分:1
註冊:2003-07-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-30 18:07:12 IP:211.23.xxx.xxx 未訂閱
我在程式中剛好有用到一個會傳回多個資料集的TADOStoredProc元件,我想用該元件為來源,將各資料集的資料顯示在一個DBGrid元件裡,查說明檔說可以用該元件的nextrecordset方法,然後將它指定給一個TADODataSet的recordset,如下行所示: var i:integer; begin ADODataSet.RecordSet:=ADOStoredProc.NextRecordSet(i); end; 但用後會出現似下面的錯誤訊息: 'ADODataSet:Recordset is not open' 本想這樣做後,可以將DBGRID的DataSource指向該DataSet元件.但看來不行請問是怎回事?該怎麼解決呢?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-30 18:49:12 IP:203.95.xxx.xxx 未訂閱
hi, 試過是沒有問題的, 若你是要切換到下一個 recordset 的話, 也可以使用原來的 adostoredproc 元件, 這個你的 datasource 也可以不用再改, 語法如下: ADOStoredProc1.Recordset := ADOStoredProc1.NextRecordset(a);
tewcc
一般會員


發表:3
回覆:4
積分:1
註冊:2003-07-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-31 08:50:22 IP:211.23.xxx.xxx 未訂閱
多謝,看來可能是我的預存程序的問題,我再試看看了...
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-31 09:15:11 IP:203.95.xxx.xxx 未訂閱
或許你可以先試著直接組出兩組 recordset 回來看會不會有問題, 若是沒有的話, 應該就是 stored procedure 的問題了, 如: select * from tablea where sid=200 select * from tablea where sid=205 將 stored procedure 內寫這兩行, 就是回傳兩組 recordset 的最簡單的型態了, 若沒有問題的話, 請再詳細檢查一下你的 stored procedure 內容是否有誤. 或是 post 上來讓大家幫你一起看看!
tewcc
一般會員


發表:3
回覆:4
積分:1
註冊:2003-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-07-31 11:40:39 IP:211.23.xxx.xxx 未訂閱
後來有用了您所提的方法試了,簡單的組出幾個資料集是可以的.看來應是預存程序的寫法問題,雖然在主機上直接跑這個預存程序沒問題.至於stored proc內容因為我己經改寫了很多,幾乎和之前不一樣了,且現在看來應也沒問題了,所以就不貼了,無論如何還是多謝了...
系統時間:2024-11-23 8:04:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!