取出關聯之資料 |
尚未結案
|
Paicaso
中階會員 發表:140 回覆:124 積分:52 註冊:2002-09-04 發送簡訊給我 |
我需要逐步將資料輸入到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 發送簡訊給我 |
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
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |