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

如何以三階層透過Com+來做到資料庫的存取

尚未結案
duop2
一般會員


發表:5
回覆:1
積分:1
註冊:2004-08-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-23 20:30:14 IP:192.192.xxx.xxx 未訂閱
各位大大們你們好, 小弟我目前想要做的是使用三階層透過Com 來做到資料庫的存取, 不過由於小弟實在是個新到不能再新的肉腳, 所以我連在自己電腦裡連Access都做不到, 而我大至的做法是只採用了ADOConnection與ADODataSet而已, 利用這個object我可以做到連線與下SQL指令, 不過後來我想要取值時,卻總是只能取回第一筆資料而已, Code如下: If not ADODataSet1.Eof then Begin Memo1.text := ADODataSet1.fieldbyname('Name').AsString; end; 由於我只是用Memo來顯示,所以不知道會不會是沒換行的關係, 假設我想要把所有Select出來的資料要顯示出來, 請問各位大大,我必需要使用到哪object? 以及該下哪些指令才能夠把所有的資料全部show出來呢? 另外,我趴了很多文,想問問說 什麼時候我該使用ADODataSet? 什麼時候我該使用ADOCommand? 什麼時候我該使用ADOQuery? 以及他們的利弊為何? 還有當我要做到3-tier時,我又該採用哪些會較好? 麻煩各位大大指點了,謝謝!
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-23 21:52:58 IP:218.160.xxx.xxx 未訂閱
建議你可以先看李維的一本書 delphi5.x-ADO 你的問題在這本書都有答案 只要等你更了解資料庫以後 你就自然曉得 什麼時候我該使用ADODataSet? 什麼時候我該使用ADOCommand? 什麼時候我該使用ADOQuery? 以及他們的利弊為何? 還有當我要做到3-tier時,我又該採用哪些會較好? 這些問題了 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
duop2
一般會員


發表:5
回覆:1
積分:1
註冊:2004-08-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-25 00:09:43 IP:218.162.xxx.xxx 未訂閱
報告版大, 我找了一整天這本書, 不論書局或舊書攤都找不到, 因為這才書已經四年了, 而且書商早就沒有再版了, 也就是已經絕版了, 我只有在某大學圖書館有看到, 不過沒辦法外借, 非常遺憾! 所以主要還是想請各位大大們給我點意見吧! 謝謝!
mirage
初階會員


發表:40
回覆:101
積分:28
註冊:2004-01-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-25 03:22:30 IP:218.162.xxx.xxx 未訂閱
您好: 有個比較辛苦的做法,但一定有效: 搜尋本站的:ADO, 站內有很多範例及遇到問題的解決方法,其實看書學與看範例,一樣可以了解,不了解的再發問,相信這樣比較好. 但多層次架構並不一定要用ado,您可以用dbexpress,也可用替代元件等等, ado只是其中1種元件而已,由何種元件開發是由您自己決定, 例:要從高雄到台北的方法有很多種,座火車只是其中一種吧!還有很多種方式可以到台北的,如游泳.走路.座飛機......等. 如由dbexpress開發,有本書還有在賣"高效率資料庫程式設計"碁峰出版,李維大師著,裡面交您如何使用dbexpress元件,但沒講到實作多層次架構,實作可在本站內找到很多教學,以上希望對您有幫助. 一步一腳印,祝您成功.
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-25 09:15:49 IP:202.62.xxx.xxx 未訂閱
引言: 各位大大們你們好, 小弟我目前想要做的是使用三階層透過Com 來做到資料庫的存取, 不過由於小弟實在是個新到不能再新的肉腳, 所以我連在自己電腦裡連Access都做不到, 而我大至的做法是只採用了ADOConnection與ADODataSet而已, 利用這個object我可以做到連線與下SQL指令, 不過後來我想要取值時,卻總是只能取回第一筆資料而已, Code如下: If not ADODataSet1.Eof then Begin Memo1.text := ADODataSet1.fieldbyname('Name').AsString; end; 由於我只是用Memo來顯示,所以不知道會不會是沒換行的關係, 假設我想要把所有Select出來的資料要顯示出來, 請問各位大大,我必需要使用到哪object? 以及該下哪些指令才能夠把所有的資料全部show出來呢? 另外,我趴了很多文,想問問說 什麼時候我該使用ADODataSet? 什麼時候我該使用ADOCommand? 什麼時候我該使用ADOQuery? 以及他們的利弊為何? 還有當我要做到3-tier時,我又該採用哪些會較好? 麻煩各位大大指點了,謝謝!
您好﹗
首先﹐您貼出的程式碼的問題是出在沒有資料錄指針的移動動作﹐所以取回的資
料只有第一筆了﹐改成如下試試﹕
begin
ADODataSet1.First;
While Not ADODataSet1.Eof do
  Memo1.Lines.Add(ADODataSet1.fieldbyname('Name').AsString);
  ADODataSet1.Next;
end;
您是使用ADODataSet元件﹐故對資料的擷取可使用SQL語法﹐取出所有資
料的方法如下﹕
begin
  ADODataSet1.Close;
  ADODataSet1.SQL.Clear;
  ADODataSet1.SQL.Add('Select * From 資料表名稱');
  ADODataSet1.Open;
end;
//您可使用一個DBGrid元件﹐通過DataSource連接上此ADODataSet﹐就可簡單看
出其程式碼后的取回的資料了
對于ADO資料集元件﹐提供您一些基本的使用原則如下﹕
1.ADODataSet支援有資料回傳的SQL語法(如Select)﹐其較常用于對于資料的
擷取﹐但不适于無資料回傳的SQL語法(如Insert, Delete, Update等)
2.ADOCommand支援無資料回傳的SQL語法(如Insert, Delete, Update等)﹐其
常用于對資料庫中資料做SQL語法修改的時机﹐相比較于ADOQuery﹐對無資料回
傳的SQL語法﹐其效率較好
3.ADOQuery支援所有的SQL語法(包括有資料回傳的SQL語法和無資料回傳的SQL
語法)﹐執行SQL時對于不同的SQL語法下達的執行命令不同﹐對于有資料回傳的
SQL語法(如Select)﹐其對應的執行命令為Open﹔對于無資料回傳的SQL語法
(如Insert, Delete, Update等)﹐其對應的執行命令為ExecSQL    該使用何種資料集元件是個見仁見智的問題(好像很多書中都有寫過類似這樣的
話﹐呵呵)﹐各種元件皆有其优劣面﹐重要的我們選擇在何種時機選用何種較有
效率的資料集元件﹐多做一些Test﹐經驗累積就是最好的方法﹒
以上個人意見﹐參考看看﹗ ========================= 我是您的朋友﹐有您真好﹗ ========================= 發表人 - cashxin2002 於 2004/11/25 09:20:52
------
忻晟
系統時間:2024-05-18 12:43:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!