全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1864
推到 Plurk!
推到 Facebook!

Delphi中多庫關聯查詢

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-25 12:09:47 IP:61.221.xxx.xxx 未訂閱
此為轉貼資料 Delphi中多庫關聯查詢 作者: delhpi技術網 評價: 上站日期: 2002-01-02 內容說明: 來源: -------------------------------------------------------------------------------- 在我們對資料庫進行操作時,經常用到TTable控制項,但TTable只能同時對一個資料表進行操作,而TQuery控制項不僅具有TTable的多數功能,而且同時可對多個資料表進行操作。不僅如此,TQuery控制項還有更強大的資料庫查詢功能,可以同時對多個不同結構的資料庫進行關聯查詢,被查詢的資料庫可以是ODBC支援的任何一種類型,當然電腦中必須先安裝ODBC和BDC(Delphi的資料庫引擎),現舉例說明。 一、連接Paradox和dBASE進行異庫查詢 例如:Master.db和Customer.dbf分別?Paradox和dBASE的資料庫,它們有一個公共欄位CustNo。這時可輸入如下代碼: Query1.Close; Query1.DataBaseName:=′′; Query1.SQL.Clear; Query1.SQL.Add(′Select * from 〃Master.db〃 A,〃Customer.dbf 〃 B Where A.CustNo=B.CustNo′); {在同一行內輸入} Query1.Open; 注意:進行多庫聯查時,TQuery控制項的DataBaseName屬性必須先置空,單引號內不包含任何字元;A和B分別是Master.db和Customer.dbf的別名(引用別名可減少代碼長度)。 二、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”應在程式開始時聲明其類型並賦值。
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-11-22 15:36:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!