有關ADOCommand元件的Execute方法問題請教 |
答題得分者是:Justmade
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
請教各位前輩﹒ 小弟在利用ADOCommand元件的Execute方法取得資料集并指定給ADODataSet元件﹐如果是如下連接﹕
ADOConnection1.ConnectionString 已經完成連線字串設定﹐測試正常 ADOCommand1.Connect := ADOConnection1
ADOCommand1.CommandType := cmdTable
ADOCommand1.CommandText := 客戶(Table Name) ADODataSet1 無屬性設定 DataSource1.DataSet := ADODataSet1 DBGrid1.DataSource1 := DataSource1 而后在Form中加一個Button﹐其OnClick事件中寫入﹕
ADODataSet1.Recordset := ADOCommand1.Execute; 當Run時﹐按下Button1﹐DBGrid中就會正常連接﹐并顯示客戶資料表的內容﹒ 但當小弟將ADOConnection1元件移除掉﹐然后在ADOCommand元件中直接設定連線字串﹐這時候再Run的時候﹐就會出現這樣的錯誤信息﹕
Dataset does not support bookmarks, which are require for multi-Record data Controls. 請教各位前輩﹐這是什么原因造成的﹐ADOCommand元件不是也可以直接使用連線字串進行連線的嗎﹖ 謝謝﹗ 努力,相信會獲得美麗!
忻晟
------
忻晟 |
hagar
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
首先,如我之前所說,ADOCommand 不是用來讀取資料的。雖然你可以用他來讀取並將讀回的資料放到另一個 ADODataSet 中,但我完全看不到這有任何好處。若有好處的話希望提出指教一下。 第二,使用 ADOConnection 及 直接用 ADODataSet / ADOCommand 的 ConnectionString 來連線是有分別的。最初我以為若使用 ConnectionString ADO 也會在內部建立一個 Connection 來連接但後來我查看源碼發現其實他們是用不同的方法來連接的,查看中亦發現有些 TADOConnection 支援的功能是直接使用 ConnectionString 不支援的(主要是發現一些 Exception 說要 ADOConnection 才能做)。由於我自己不用 ADO,所以也沒深究。 綜合上述兩點,ADOCommand 若使用 ConnectionString 來連線及執行非回傳指令應是沒問題的。處理回傳指令方便,因於會涉及兩個元件 (ADOCommand / ADODataSet) ,若他們使用同一個 ADOConnection 問題可能比較少,但若你用 ADOCommand 的內置 ConnectionString 來 Connect 的話,看來 ADODataSet 的 Connection 要倚重 ADOCommand 的 Connection 而變成不能支援其中一些功能了如你說的 Bookmark 功能。 結論是,最好號用 ADOCommand 來回傳資料,否則只是自尋煩惱。
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |