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

取出關聯之資料

尚未結案
Paicaso
中階會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-09 21:11:38 IP:61.59.xxx.xxx 未訂閱
我需要逐步將資料輸入到StringGrid,並取出對應值 但如果所輸入之項目剛好符合另一資料表中所限定之條件,必須重新取出其新值 我不知該如何做,所以想請教各位先進 例如: 假設輸入之結果並不符合資料表B中之組合條件,則取出值以資料表A之值為準 如:輸入值 結果 A001 5 A002 6 A003 11 如果輸入項目剛好符合資料表B所規範之項目則取出值則以資料表B之值為準 如:輸入值 結果(原值) 新值 A001 5 ---> 8 A002 6 ---> 9 B001 7 ---> 3 ---------------------------------------------------------------------------- 資料表A 編號 值 -------- ---------- A001 5 A002 6 A003 11 B001 7 B002 12 B003 4 資料表B 代碼 編號 值 -------- ---------- ---------- 001 A001 8 001 A002 9 001 B001 3 002 A001 2 002 B003 14
Paicaso
中階會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-09 23:26:28 IP:61.59.xxx.xxx 未訂閱
1.在輸入之StringGrid要確認是否符合資料表B中之條件,納在每次輸入完一筆時,便要從頭再確認一次,這樣會影響速度很多 2.再資料表B中,因為同一代碼有對應多筆,但我用此法只能找出最後一筆,其方法應該有誤,不知如何將符合之資料完整取出 我取出資料表B之方法 2.我應該在資料表中亦增加一與資料表B相對應之代碼欄位,但是如上述範例中,編號A001有可能是隸屬於二種代碼系列 所以應該也不可行, 3.再資料表B中,因為同一代碼有對應多筆,但我用此法只能找出最後一筆,其方法應該有誤, 因為該方法會出取代碼為001之A001編號,但實際上亦有代碼為002之A001編號,又同上述第二點中,在資料表A中去設定與資料表B相對應之代碼欄位 又不可行,不知如何將符合之資料完整取出 我取出資料表B之方法 Query1 := TQUERY.Create(APPLICATION.Owner); Query1.DatabaseName := 'Product'; Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM DATA_B '); Query1.SQL.Add('WHERE P_no = ''' STR1 ''' '); //STR1為輸入之編號 //Query1.SQL.Add(' AND P_index = ''' STR2 ''' '); //STR2為該編號對應出之代碼 Query1.CLOSE; Query1.OPEN; IF Query1.Eof = FALSE THEN Begin N_val := Query1.FieldByName('P_val').AsInteger; //新值 End; 或是該如由資料表B中得知同一代碼之編號有哪幾項才是正確, Query1.SQL.Add(' Where P_index = ''' STR2 ''' '); //STR2為該編號對應出之代碼 Query1.CLOSE; Query1.OPEN; IF Query1.Eof = FALSE THEN Begin N_val := Query1.FieldByName('P_val').AsInteger; //新值 End; 但這樣不是只有取出第一個項目而已,我搞不太懂,可否請先進朋友們,給小弟指點,Thanks
系統時間:2024-06-26 22:13:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!