dbgrid內的column,分別由二個不同table資料,讀入顯示 |
尚未結案
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 第一個table2已經由另一個table1關連找出記錄 又要藉由table2內的二個欄位 找table3的欄位 但是二個table(table2.table3)有關連 有何種寫法 如何動態產生table? join及union的寫法 如何寫?您可能要把實際的Table的Data Dictionary告訴大家,這樣可以比較容易幫您… 小弟舉個例子: Select Table1.*, Table2.*, Table3.* From Table1, Table2, Table3 Where Table1.Field = Table2.Field and Table2.Field1 = Table3.Field1 and Table2.Field2 = Table3.Field2 …大概是這樣子,將這一段SQL語法交給TQuery執行,由DBGrid連上TQuery即可… ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
照你的寫法
那dbgird 要如何對應到上述的table
一個dbgrid不是只對應一個table
而且dbgrid的column只能選擇一個table裡 面的filed table1的欄位名稱
------
NGC0 NGC1 NGITEM1
其中NGC1是NGITEM1的代碼
TABLE2
------
NGC0 NGC1 NGC2 NGITEM2
其中NGC2是NGITEM2的代碼 TABLE3
---------
NGC0 NGC1 NGC2 NGC3 NGITEM3
其中NGC3是NGITEM3的代碼 先將TABLE1的NGITEM1加入COMBOBOX,在COMBOBOX選擇後
藉由TABLE1 的NGC0及NGC1 關連找到TABLE2的NGC2及NGITEM2(顯示的欄位)
再藉由 TABLE2的NGC0及NGC1及NGC2找到
TABLE3的NGC3及NGITEM3(顯示的欄位)
最後在DBGIRD要顯示NGITEM2及NGITEM3
NGITEM2 對應一個至數個NGITEM3 顯示在同一列的COLUMN 不知道這個問題
問的夠清楚了嗎??
|
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: help me 二個table產生一個動態table寫入一個dbgridseedbcc 您好: channel 是把 Table1~3 都 join 在一起,只要邏輯符合您的需求.. 拉一個 TDataSource 元件,將 DataSource.DataSet 設定為您下 SQL command 的 TQuery 元件,再將 DBGrid 內的 DataSource 設定為 您拉的 TDataSource 元件即可顯示.. 如果三個 Table join 在一起不能符合您的需求.. 那要先利用 TQuery 由 Table1,Table2 找出關聯的鍵值.. 再利用找出來的值將 Table2,Table3 join 在一起... 最後再利用 TDBGrid 顯示出來.. Sorry,表達可能不太好,我與前面幾位先進表達的是相似的意思.. 您可以參考看看.. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- 發表人 - SouthWind 於 2004/03/05 10:30:35 發表人 - SouthWind 於 2004/03/05 13:57:34 |
seedbcc
高階會員 發表:232 回覆:272 積分:105 註冊:2003-12-10 發送簡訊給我 |
|
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: 是要將join的語法 設在DataSource.DataSet 嗎? join語法如何寫 可否舉例 你說的動作 順序為可否在排一次seedbcc 您好: 假設已經拉一個 TQuery 元件 => Query1:TQuery; 拉了一個 TDataSource 元件 => DataSource1:TDataSource; 拉了一個 TDBGrid 元件 => DBGrid1:TDBGrid; join Table 如下 (下 SQL command,同義於 LEFT JOIN 語法) (也可以在設計模式時指定) DataSource1.DataSet := Query1; DBGrid1.DataSource := DataSource1; (以下,借 channel 的 SQL command) Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('Select Table1.*, Table2.*, Table3.* From Table1, Table2, Table3 Where Table1.Field = Table2.Field and Table2.Field1 = Table3.Field1 and Table2.Field2 = Table3.Field2'); Query1.Open;希望對您有幫助.. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- |
spencerkuo
一般會員 發表:21 回覆:34 積分:11 註冊:2003-08-15 發送簡訊給我 |
引言: 是要將join的語法 設在DataSource.DataSet 嗎? join語法如何寫 可否舉例 你說的動作 順序為可否在排一次以mssql & oracle 的寫法應該是 select table1.field1, table2.field1 from table1, table2 where table1.field = table2.field union select field1, field2 from table 註解 第一個sql 語法 與第二個sql語法 所選擇出來的欄位type必須要依樣, 所選擇出來的欄位數必須要依樣 例如 第一個sql選擇出來的欄位有 4個 那第二個sql也需選擇 4個欄位 如果第二個sql沒有那麼多欄位 那麼必須對應到第一個sql 欄位 空白欄位就填入 null值 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |