如何一次操控二個以上的table |
答題得分者是:paul
|
c905165
中階會員 發表:50 回覆:120 積分:54 註冊:2002-09-29 發送簡訊給我 |
|
paul
初階會員 發表:8 回覆:82 積分:28 註冊:2002-04-14 發送簡訊給我 |
可新增一個 Data Modules 在其上放上
一個 database 或 ADOConnection 把資料庫連上去,可設定是否不用每次輸入資料庫登入密碼
再將您常用的 dataset 和 datsource 放在上面,各 dataset 的關連性也可在其上設定 以後您用引用時只要含入(uses)該 Data Modules 即可參考到其上的 dataset
和 datasource 和其相關的關連性設定 但根據經驗,在 data modules 上放的 dataset 和 datasource 不要放入太多,放入太多會有找不到或發生紊亂的現象,所以放在上面的原則為各dataset欄位的設定(如中文名稱)或者為大部份form都會用到的查詢Query,那些只是某個form專用的 dataset則放在各別的form內,這樣維護上會較好處理.
|
c905165
中階會員 發表:50 回覆:120 積分:54 註冊:2002-09-29 發送簡訊給我 |
很高興得到您的回言,至少已經得到一個頭緒。
因為我已經有了Kylix2的三本原廠Guide,和一些市售的Kylix和delphi的書籍,但是卻還是找不到相關的具體使用方法(可見書的品質,天下文章一大抄卻沒有抄到讀者想要的部份),如今得到您的指示ADOConnection為方向,剛才已經在delphi上試拉了這個物件出來,但是用法似乎和過去用的multi-tire配套物件(共五個),在用法上有許多不同,感覺上不知道如何使用。是否能夠說明具體一點,或是給我指示要買何本書有最好的範例和說明。再次感謝。
引言: 可新增一個 Data Modules 在其上放上 一個 database 或 ADOConnection 把資料庫連上去,可設定是否不用每次輸入資料庫登入密碼 再將您常用的 dataset 和 datsource 放在上面,各 dataset 的關連性也可在其上設定 以後您用引用時只要含入(uses)該 Data Modules 即可參考到其上的 dataset 和 datasource 和其相關的關連性設定 但根據經驗,在 data modules 上放的 dataset 和 datasource 不要放入太多,放入太多會有找不到或發生紊亂的現象,所以放在上面的原則為各dataset欄位的設定(如中文名稱)或者為大部份form都會用到的查詢Query,那些只是某個form專用的 dataset則放在各別的form內,這樣維護上會較好處理.
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩 |
c905165
中階會員 發表:50 回覆:120 積分:54 註冊:2002-09-29 發送簡訊給我 |
對了,大致講一下我的製作情況,使您更了解我的狀況。因為在製作專題,寫程式遇到這些問題。
就是我使用了一些data control,比如說dbtext,dblabel,dbedit,dbtext.....還有一些,而這一些分別代表著資料庫的某一些欄位,比如說:學生學號、姓名、修課課表、老師姓名、受傷原因、掛號時間.......等等。
而這些欄位因為正規化使得分開在不同的表格,但是因為設計的介面上要整合在一起,總不可能一個介面查一個表格,叫使用者自己腦中作組合吧。所以在列出資料時,我們自己要去做整合,至於如果是SQL的語法select id,name,hurt_reason from stmast,hurt where ......,在SQL上是已經完全沒有問題了,請放心。而且過去也曾經使用過 vb 存取 access 的經驗,只是目前要用的環境是 kylix 存取 mysql,而kylix才剛接觸,所以不知道如何使用。
提供以上線索,希望更容易得到更多的建議,謝謝。
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩 |
paul
初階會員 發表:8 回覆:82 積分:28 註冊:2002-04-14 發送簡訊給我 |
|
c905165
中階會員 發表:50 回覆:120 積分:54 註冊:2002-09-29 發送簡訊給我 |
其實用delphi也是一樣,因為我能夠將delphi的程式轉到kylix的環境下執行。
這個範例正是我要的,而且相當的符合,您的程式執行也正常。就是二個關聯的表格要在介面上展現出來。
您的程式我已經充分的展開來看了,可是還是有一些問題:
還是有一些問題想要請教一下:怎麼找不到 DataModule2.DataSource1 呢?還有其他像客戶和訂貨資料所連的 datasource 怎麼看不到?而且展開之後,也連接到ADOConnection,也找不到。
例如,如果拉了SQLConnection或Dataset 等等的元件,都會顯示在上面,至少也找得到。可是我都找不到。
如果我拉一個ADOConnection1,它也會顯示在表單上。
哦----現在看到了,原來另外開一個DataModule2,就放在裡面啊,原來如此, I see。
現在的問題又來了,找不到列出資料的語法,就是將資料列在 DBGrid 上的語法,或者是要怎麼樣列出來。
再來是,ADOConnection要連到資料庫的選項似乎沒有mySQL,那要怎麼辦?
還有,這一種連法和用dbExpress裡的 SQLConnection連法的作用、目的、用法和其他的操作方式的細節有什麼不一樣?
我現在手上幾本delphi的書都沒有介紹到ADO之類的書,也不知道要從何著手。
能不能再說明一下,上面的情況是如何產生的。
能不能介紹書是有關於此的。再次感謝您!!
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩 |
c905165
中階會員 發表:50 回覆:120 積分:54 註冊:2002-09-29 發送簡訊給我 |
用delphi跑完您給的程式以後,本來信心滿滿,
以為kylix3enterprise一定沒有問題,想不到卻在kylix3enterprise找不到ADO的物件,
這下可真的不知道要怎麼辦了。
最後,終於已經使用TSQLConnection的方式,將二個表格弄上來了,但是卻無法像您的程式一樣,選上面的DBGrid,下面的DBGrid會跟著動,那是怎麼弄的呢?
可以用 TSQLConnection 和 TSQLDataset 做講解嗎? 再一次謝謝您。 發表人 - c905165 於 2002/10/01 23:25:32
------
有困難就是能力不足,有麻煩就是方法不對... 劣者總是遇到困難,也時常出現麻煩 |
paul
初階會員 發表:8 回覆:82 積分:28 註冊:2002-04-14 發送簡訊給我 |
先前我做的範例,若您觀念通的話,不一定是用 TDatabase 或是用 TADOConnect, 因元件的不同而有不同的用法,在 BDE 用 TDatabase元件,在 ADO 用 TADOConnect,在其他元件組當然是用不同的元件,所以要多看點說明,多試試不同的場合用不同的元件. 至於 Master 和 Detail 連絡互動有兩種作法:
1.Query用法
MasterQry <---> MasterQDS
DetailQry <---> DetailQDS
把 DetailQry 的 DataSource 設成 DetailQDS
和 DetailQry 的 SQL 指令設為 Select * from Detail where key=:key
注意 key 就是資料表的主鍵
再 MasterQry.Open DetailQry.Open 就可以了,自己多試試即可了解!
2.Table用法
MasterTbl <---> MasterDS
DetailTbl <---> DetailDS
把 DetailTbl 的 MasterSource 設為 MasterDS
和 DetailTbl 的 MasterField 設為 關連的 key
再 MasterTbl.Open DetailTbl.Open 就可以了. 以上是最基本的DM做法,實際操作時,仍是自己加入程式碼,如
1.先新增 Master 再新增 Detail,在DetailNewRecord 要自己加上
Detail.FieldByName('key').value:=Master.FieldByName('key').value;
2.刪除 Master記錄 時要先刪除 Detail記錄
等等
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |