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

DataControl的問題

尚未結案
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-24 01:58:57 IP:211.74.xxx.xxx 未訂閱
我分別有以下二資料元件 資料1:DBGrid1,DataSource1,Query1,DBCheckBox1 資料2:DataSource2,Query2,DBCheckBox2 因資料2會隨著資料1變動,故在資料1的DataSource1之onDataChange加入 id := Query1.FieldByName('no').AsString; Query2.SQL.Clear; Query2.SQL.Add('Select * from DATA2 '); Query2.SQL.Add('Where no = ''' id ''' '); Query2.SQL.Add('order by no'); Query2.Close; Query2.Open; 目地以取出DATA2之DBCheckBox2值,但卻無法取出,2;當然亦無法寫入 而DBCheckBox1沒問題
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-24 02:03:04 IP:211.74.xxx.xxx 未訂閱
補充: 原本我用Standard支元件做,但在onDataChange需一筆一筆取出與許入比較麻煩,故響改成用DataControl. 用Standard元件時都可以 在資料1的DataSource1之onDataChange id := Query1.FieldByName('no').AsString; Query2.SQL.Clear; Query2.SQL.Add('Select * from DATA2 '); Query2.SQL.Add('Where no = ''' id ''' '); Query2.SQL.Add('order by no'); Query2.Close; Query2.Open; DBCheckBox2.Checked := Query2.FieldByName('A1').AsBoolean; .....
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-24 07:09:50 IP:202.39.xxx.xxx 未訂閱
在 Query2 的 Fields Editor 加入您要的 Field 然後在該 Field 的 OnValidate 事件中 取得 NewValue 與 OldValue 不知這樣可不可以?
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-24 07:40:22 IP:61.219.xxx.xxx 未訂閱
1. onDataChange被驅動的機會很多, 修改Query1任何一field之值均會驅動onDataChange, 因此最好加個
if Field=nil then begin
  id := Query1.FieldByName('no').AsString;  
  ...
end;
2. 無法取出, 錯誤訊息為何? 3.DBCheckBox2.Checked := Query2.FieldByName('A1').AsBoolean; 這個是不需要的, 因為DBCheckbox2是DataAware Control, 只要DataSource接上就會自行更新, 此行相當於要修改資料, 而你又未進Edit Mode 所以會錯誤
T.J.B
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-24 10:15:12 IP:61.220.xxx.xxx 未訂閱
引言: 我分別有以下二資料元件 資料1:DBGrid1,DataSource1,Query1,DBCheckBox1 資料2:DataSource2,Query2,DBCheckBox2 因資料2會隨著資料1變動,故在資料1的DataSource1之onDataChange加入 id := Query1.FieldByName('no').AsString; Query2.Open;<--放到這 Query2.SQL.Clear; Query2.SQL.Add('Select * from DATA2 '); Query2.SQL.Add('Where no = ''' id ''' '); Query2.SQL.Add('order by no'); Query2.Close; 目地以取出DATA2之DBCheckBox2值,但卻無法取出,2;當然亦無法寫入 而DBCheckBox1沒問題
天行健 君子當自強不息~~@.@ 發表人 - T.J.B 於 2003/02/24 10:16:04
------
天行健
君子當自強不息~~@.@
系統時間:2024-05-19 15:56:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!