一個Query ,查2個不同的access資料庫的問題... |
答題得分者是:syntax
|
firesu
中階會員 發表:26 回覆:28 積分:55 註冊:2004-12-27 發送簡訊給我 |
http://www.9freebsd.com/server/p199/J19924517.shtml
照這的例子做..要查詢2個access,Query的DataBaseName:='';.... . 當Query.open時會出現DataBase Login的視窗要你輸入user name 跟password 這個畫面 這個畫面有方法讓它不出現嗎...? 因為query要不出現這個畫面,Query必須連一個TDataBase , LoginPrompt屬性設false.. 剛好又跟Query的DataBaseName:='' 有衝突... 編輯記錄
firesu 重新編輯於 2007-10-02 16:02:01, 註解 改標 題‧
|
ace33022
一般會員 發表:2 回覆:41 積分:23 註冊:2004-05-14 發送簡訊給我 |
|
firesu
中階會員 發表:26 回覆:28 積分:55 註冊:2004-12-27 發送簡訊給我 |
範例中用2個TDataBase分別連接2個不同的mdb
TDataBase1..AliasName=ODBC1, DataBaseName=DB1, LoginPrompt=False TDataBase2..AliasName=ODBC2, DataBaseName=DB2, LoginPrompt=False Query1的DataBaseName='' Query1.SQL.Clear Query1.SQL.ADD('select a.cusno,b.saleno from ":DB1:cust" a,":DB2:sale" b where a.cusno=b.cusno'); Query1.Open; 因為Query1的DataBaseName是空白,所以才跑出輸入username password視窗
編輯記錄
firesu 重新編輯於 2007-10-04 12:06:24, 註解 無‧
|
ace33022
一般會員 發表:2 回覆:41 積分:23 註冊:2004-05-14 發送簡訊給我 |
Sorry... 一開始沒看清楚你要的方式。 這種方法倒沒用過,找個時間試試.... 有解再上來回 ===================引 用 firesu 文 章=================== 範例中用2個TDataBase分別連接2個不同的mdb TDataBase1..AliasName=ODBC1, DataBaseName=DB1, LoginPrompt=False TDataBase2..AliasName=ODBC2, DataBaseName=DB2, LoginPrompt=False Query1的DataBaseName='' Query1.SQL.Clear Query1.SQL.ADD('select a.cusno,b.saleno from ":DB1:cust" a,":DB2:sale" b where a.cusno=b.cusno'); Query1.Open; 因為Query1的DataBaseName是空白,所以才跑出輸入username password視窗 |
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
應該是沒有所謂「衝突」,這件事
設計本來就是這樣,所以你不是很清楚每項元件的角色喔!(HELP 說的滿清楚的,建議多加利用) 原來是:DB 實際路徑 --> Alias --> TQuery (assinged as DatabaseName) --> TDataSource (assigned as DataSet) --> T資料感知元件 (assigned as DataSource) 變成是:DB 實際路徑 --> Alias --> TDatabase (assigned as AliasName) --> TQuery (assinged as DatabaseName, and choose the TDatavase.DatabaseName) --> TDataSource (assigned as DataSet) --> T資料感知元件 (assigned as DataSource) TDataBase1.DatabaseName := 你要的名稱 TDataBase1.AliasName := 實際的資料庫別名 其他設定 不想程式內變動的話,請使用兩組 TDataBase1 & 2 然後 TQuery.DataBaseName --> 不要選「實際的資料庫別名」,改選自己設定的 TDataBase???.DatabaseName 這樣就會使用所選的 TDataBase,也不用寫在 Query1.SQL.ADD('select a.cusno,b.saleno from ":DB1:cust" a,":DB2:sale" b where a.cusno=b.cusno'); 內 「Query1的DataBaseName是空白,所以才跑出輸入username password視窗」,如果是空白,那請問,所查詢的資料庫是哪一個?應該是非空白,且該資料庫有支援控管,才會跳出來問吧!,所以使用 TDatabase ,並設定好帳號密碼等資訊,讓程式幫你回答,就不會再問了 如果不想在程式內指定 SQL,換來換去的話,也可以直接使用兩組 TQuery,不是嗎? 所以沒有衝突,沒有規定一個資料庫的別名,只能有一個, 反過來。如果別名一樣,那 AliasName 也就可省去不設囉 Delphi 說明: (多自己動手看) Use DatabaseName to specify the name of the database to use with a database component. If DatabaseName is the same as an existing Borland Database Engine (BDE) alias, then the AliasName and DriverName properties need not be set. If DatabaseName does not match an existing BDE alias, then either the application must also supply a valid alias in the AliasName property in addition to the DatabaseName, or it must supply the DriverName and Params properties. ===================引 用 firesu 文 章=================== http://www.9freebsd.com/server/p199/J19924517.shtml 照這的例子做..要查詢2個access,Query的DataBaseName:='';.... . 當Query.open時會出現DataBase Login的視窗要你輸入user name 跟password 這個畫面 這個畫面有方法讓它不出現嗎...? 因為query要不出現這個畫面,Query必須連一個TDataBase , LoginPrompt屬性設false.. 剛好又跟Query的DataBaseName:='' 有衝突... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |