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

dbgrid內的column,分別由二個不同table資料,讀入顯示

尚未結案
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-04 14:27:52 IP:61.59.xxx.xxx 未訂閱
dbgrid內的column,分別由二個不同table資料,讀入顯示 上述問題,可以用dbgrid嗎? 還是用其的grid 要如何設定, 或是用程式碼控制
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-04 14:34:43 IP:147.8.xxx.xxx 未訂閱
The standard DBGrid has only 1 DataSource property. So probably:    1) use SQL to join the tables, or 2) create a memory table and fill it yourself, or 3) search for other data aware grid 
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-04 14:36:47 IP:211.21.xxx.xxx 未訂閱
引言: dbgrid內的column,分別由二個不同table資料,讀入顯示 上述問題,可以用dbgrid嗎? 還是用其的grid 要如何設定, 或是用程式碼控制
使用DBGrid:可利用SQL語法join或union達成 使用StringGird:自行下程式碼將二個資料寫入 ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
seedbcc
高階會員


發表:232
回覆:272
積分:105
註冊:2003-12-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-04 14:48:50 IP:61.59.xxx.xxx 未訂閱
第一個table2已經由另一個table1關連找出記錄 又要藉由table2內的二個欄位 找table3的欄位 但是二個table(table2.table3)有關連 有何種寫法 如何動態產生table? join及union的寫法 如何寫?
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-04 15:09:05 IP:211.21.xxx.xxx 未訂閱
引言: 第一個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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-04 15:22:51 IP:61.59.xxx.xxx 未訂閱
照你的寫法 那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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-05 08:47:01 IP:61.59.xxx.xxx 未訂閱
help me 二個table產生一個動態table寫入一個dbgrid
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-05 10:28:48 IP:203.66.xxx.xxx 未訂閱
引言: help me 二個table產生一個動態table寫入一個dbgrid
seedbcc 您好: 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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-05 11:06:04 IP:61.59.xxx.xxx 未訂閱
是要將join的語法 設在DataSource.DataSet 嗎? join語法如何寫 可否舉例 你說的動作 順序為可否在排一次
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-03-05 13:55:25 IP:203.66.xxx.xxx 未訂閱
引言: 是要將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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-03-07 00:54:28 IP:203.204.xxx.xxx 未訂閱
引言: 是要將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值
系統時間:2024-07-06 4:16:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!