Access 裡面的資料欄位關聯與delphi中的關連管理可以互通嗎? |
答題得分者是:flyup
|
coolman
一般會員 發表:11 回覆:17 積分:17 註冊:2002-12-05 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
flyup
資深會員 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
MS Access的多表聯查
Access資料庫屬於多表集合資料庫(一個資料庫中包含多個資料表),所以,對兩個Access資料庫進行查詢的方法。例如:我們有RSDA.mdb和ZFGjj.mdb兩個資料庫,RSDA中包含人事檔案、在職職工目錄和離職職工目錄等資料表,ZFGjj通過公共字段"用戶號"與RSDA相連。如果我們從ZFGjj中提取一個用戶號,需要從RSDA中得到擁有此用戶號的職工姓名,這時就必須用到TQuery的多表查詢。
第一步 在ODBC中增加兩個資料源"ZFGjj"和
"RSDA"。
第二步 在BDE資料庫引擎中添加兩個資料庫列名"ZFGjj"和"RSDA"。
第三步 在表單中增加兩個DataBase元件"DataBase1"和"DataBase2",在AliasName屬性中分別選擇"ZFGjj"和"RSDA",DataBaseName屬性中分別鍵入"ZFGjj"和"RSDA",最後將KeepConnection和Connected屬性都設為"True"。
現在可以輸入相應的程式碼了:
Begin
For I:=1 To 10 Do
Begin
Query1.Close;
Query1.DataBaseName:='';
Query1.Sq1.Clear;
Query1.Sq1.Add('Select A.七月,B.個人賬號,B.用戶號,C.姓名From":ZFGjj:個人匯激部門表"A,":ZFGjj:住房公積金明細表"B,":RSDA:在職職工目錄"C Where(A.用戶號=B.封存=:ib)');{在同一行輸入}
Query1.Prepare;
Query1.Params[0].DataType.=ftInteger;
Query1.Params[1].DataType.=ftBoolean;
Query1.Params[0].Asinteger:=ia[I];
Query1.Params[1].Asboolean:=ib;
Query1.Open;
End;
End;
程式碼中SQL語句必須在一行內輸入,不能分行。SQL語句中使用了動態參數"ia"和"ib",Delphi會自動按參數出現的順序將它們添加在Query1的Params屬性中並分配索引號分別為0和1,參數"ia"和"ib"應在程序開始時聲明其類型並賦值。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |