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

求教ADO資料庫關聯的作法!

答題得分者是:Mickey
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-25 20:44:03 IP:61.218.xxx.xxx 未訂閱
有兩個MS-Access資料檔,檔名是FA和FB,操作FA時,FB的紀錄指標要跟著動,關聯的欄位是SN ADOTable2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\FA.MDB;Persist Security Info=False'; ADOTable2.TableName:='data'; ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\FB.MDB;Persist Security Info=False'; ADOQuery1.SQL.ADD('select * from data A inner join (select * from data in ".\FA.MDB") B on A.SN=B.SN'); ADOQuery1.ExecSQL; 找了許久,試了再試,還是不行,敬請賜教,謝謝!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-25 20:54:36 IP:218.32.xxx.xxx 未訂閱
你好 手邊沒有 Delphi 環境... 試試 1. 增加一個 DataSource (Name is "DataSurce1"), DataSet := ADOTable2 2. ADOQuery1.DataSource := DataSource1 3. ADOQuery1.SQL.Text := 'select * from data where SN=:SN'
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-25 21:07:06 IP:61.218.xxx.xxx 未訂閱
感謝您的熱心與愛心,經過您的幫忙,程式: ADOTable2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\BOARD.MDB;Persist Security Info=False'; ADOTable2.TableName:='data'; ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\BOARDTALK.MDB;Persist Security Info=False'; DataSource1.DataSet:=ADOTable2; ADOQuery1.DataSource:=DataSource1; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Text := 'select * from data where SN=:SN'; ADOQuery1.ExecSQL; DBGrid1.DataSource:=DataSource1; 在移動DBGrid時,仍無法取得ADOQuery1.FieldByName('欄位').AsString的資料,謝謝您!
timhuang
尊榮會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-25 21:11:25 IP:220.132.xxx.xxx 未訂閱
Hi, ADOQuery1 應為 Open 而非 ExecSQL, 因為是開啟一個查詢, 而非執行 insert, delete, update !!
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-25 21:17:55 IP:61.218.xxx.xxx 未訂閱
謝謝回應! ADOQuery1.ExecSQL 改成 ADOQuery1.open 還是一樣! 在DBGrid1DblClick 無法抓取ADOQuery1.FieldByName('欄位').AsString的資料!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-25 21:54:03 IP:218.32.xxx.xxx 未訂閱
引言: 無法抓取ADOQuery1.FieldByName('欄位').AsString的資料!
不是很了改... Error ? Data 錯 ? 方便貼上 DBGrid1.OnDblClick 的 Source Code 嗎 ?
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-25 21:58:21 IP:61.218.xxx.xxx 未訂閱
謝謝回應! 移動DBGrid就會移動資料庫ADOTable2的紀錄指標 也會移動關聯資料庫ADOQuery1的紀錄指標,是嗎? procedure TForm1.DBGrid1DblClick(Sender: TObject); begin caption:=ADOQuery1.FieldByName('sd').AsString; end;
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-25 22:05:17 IP:218.32.xxx.xxx 未訂閱
試試看:
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.Open;
  caption:=ADOQuery1.FieldByName('sd').AsString;
end; 
pcernet
初階會員


發表:69
回覆:113
積分:41
註冊:2002-11-29

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-05-25 22:39:14 IP:61.218.xxx.xxx 未訂閱
真的很感謝您,對ADOQuery的認識也更多了,謝謝您的熱心!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-05-25 22:43:12 IP:218.32.xxx.xxx 未訂閱
賣安捏共...緣~~~
系統時間:2024-07-03 15:11:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!