線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1444
推到 Plurk!
推到 Facebook!

TDataSource 無法作用 ?

答題得分者是:sryang
canvas
一般會員


發表:6
回覆:21
積分:10
註冊:2004-01-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-27 09:03:49 IP:220.132.xxx.xxx 訂閱
請大家幫一下忙:

我開了兩個 Form (Form1, Form2), Form1 為資料維護表單, 因為欄位太多, 只好又開了 Form2, 然後我在 Form2 上拉了一個 DataSource, 命名為 ds, 在 Form2 開啟之前先將 Form2 的 ds 給指定到 Form1 表單中欄位的 DataSource 上去.

問題來了, 在 Insert 時 Form2 欄位無法輸入, Edit 時沒有原來的東西, 也無法 KeyIn 資料, 但有時候是正常, 不知道哪邊出了錯 ?

我的環境如下:

FireBirdSQL 2.0.1
Windows XP SP2
ODBC
Delphi 6
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-27 17:07:42 IP:61.67.xxx.xxx 未訂閱
嗯,看不懂,請po重點程式或畫面讓我們看一下或許能了解!
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-27 21:00:53 IP:124.10.xxx.xxx 訂閱
欄位太多用 PageControl 分頁也可以吧
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
canvas
一般會員


發表:6
回覆:21
積分:10
註冊:2004-01-25

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-09-27 22:25:27 IP:220.132.xxx.xxx 訂閱
我用 PageControl 來分隔 Master-Detail, 至於會開另一個 Form, 是因為 Detail 欄位太多, 又有關聯性...So..只好另開一個 Form 來 KeyIn 資料

===================引 用 sryang 文 章===================
欄位太多用 PageControl 分頁也可以吧
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-09-27 23:43:25 IP:61.67.xxx.xxx 未訂閱
哦! 懂了

1.請問你的form1, form2 開啟的先後順序
2.form1, form2 是如何呼叫的,是由另一個form 來create嗎? 或是由 form1 create form2 的
3.你試著將 datasource 放在form1 上,fomr2引 用form1 的 datasource
canvas
一般會員


發表:6
回覆:21
積分:10
註冊:2004-01-25

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-09-28 04:24:48 IP:220.132.xxx.xxx 訂閱
1. Form1 先開, 按 Button 開 Form2.ShowModal
2. Form1 為 MDIChild , Form2 由 APPLICATION 來 create
3. 我試過兩種方式:
1) 在 Form2 放一個 TDataSource 元件(DS), Form2 上所有的TDBEDIT 元件的 DataSource 都指向它,
在呼叫 Form2.ShowModal 前, 先將 Form1 的 DataSource 給指過去(不是用 Assign, 而是直接等號給 DS)
結果完全不行, 不給輸入(dsInsert, dsEdit 狀下)
2) 另一種方法, 我在 Form2 的 TDBEDIT 元件指回 FORM1 與 FORM1 的 TDBEDIT 共用 DataSource, 結果
有時也無法輸入, 必須要關掉整個 Application 重新進入才行

===================引 用 P.D. 文 章===================
哦! 懂了

1.請問你的form1, form2 開啟的先後順序
2.form1, form2 是如何呼叫的,是由另一個form 來create嗎? 或是由 form1 create form2 的
3.你試著將 datasource 放在form1 上,fomr2引 用form1 的 datasource
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-09-28 09:42:43 IP:59.125.xxx.xxx 訂閱
你的第一種方式稍微修改一下就可以了
Form2.DataSource1.DataSet := Form1.DataSource1.DataSet;
Form2.ShowModal;

===================引 用 canvas 文 章===================
1. Form1 先開, 按 Button 開 Form2.ShowModal
2. Form1 為 MDIChild , Form2 由 APPLICATION 來 create
3. 我試過兩種方式:
1) 在 Form2 放一個 TDataSource 元件(DS), Form2 上所有的TDBEDIT 元件的 DataSource 都指向它,
在呼叫 Form2.ShowModal 前, 先將 Form1 的 DataSource 給指過去(不是用 Assign, 而是直接等號給 DS)
結果完全不行, 不給輸入(dsInsert, dsEdit 狀下)
2) 另一種方法, 我在 Form2 的 TDBEDIT 元件指回 FORM1 與 FORM1 的 TDBEDIT 共用 DataSource, 結果
有時也無法輸入, 必須要關掉整個 Application 重新進入才行
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
canvas
一般會員


發表:6
回覆:21
積分:10
註冊:2004-01-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-09-28 17:34:23 IP:220.132.xxx.xxx 訂閱
呃..好像是耶..謝謝啦
===================引 用 sryang 文 章===================
你的第一種方式稍微修改一下就可以了
Form2.DataSource1.DataSet := Form1.DataSource1.DataSet;
Form2.ShowModal;

系統時間:2024-11-24 15:30:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!